Release #211
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
workflow_dispatch: | |
branches: | |
- master | |
inputs: | |
incrementLevel: | |
description: 'Version level to increment' | |
required: true | |
type: choice | |
options: | |
- incrementPatch | |
- incrementMinor | |
- incrementMajor | |
default: 'incrementPatch' | |
# schedule: TODO: align release schedule with CLI | |
# - cron: '0 9 * * 2' # every Tuesday at 9 am UTC | |
jobs: | |
release: | |
name: release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Sources | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-java@v4 | |
name: Setup Java | |
with: | |
distribution: 'temurin' # See 'Supported distributions' for available options | |
java-version: '17' | |
- name: Setup Gradle Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} | |
restore-keys: ${{ runner.os }}-gradle | |
- name: Test | |
env: | |
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} | |
SNYK_ORG_NAME: ${{ secrets.SNYK_ORG_NAME }} | |
run: | | |
./gradlew test verifyPlugin clean | |
git clean -d --force | |
git reset --hard | |
- name: Create Tag | |
id: createTag | |
if: ${{ !env.ACT }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# for cron run we have empty `inputs.incrementLevel` | |
# see if-then-else alternatives https://stackoverflow.com/questions/60916931/github-action-does-the-if-have-an-else | |
run: | | |
if [[ '${{ inputs.incrementLevel }}' != '' ]]; then | |
./gradlew release -Prelease.versionIncrementer=${{ inputs.incrementLevel }} | |
else | |
./gradlew release | |
fi | |
echo "::set-output name=tagName::$(./gradlew cV -q -Prelease.quiet)" | |
- name: Create Tag - Dry Run | |
id: createTagDry | |
if: ${{ env.ACT }} | |
run: | | |
./gradlew release -Prelease.dryRun | |
echo "::set-output name=tagName::$(./gradlew cV -q -Prelease.quiet)" | |
- name: Extract release notes | |
id: extract-release-notes | |
uses: ffurrer2/extract-release-notes@v1 | |
- name: Create release | |
if: ${{ !env.ACT }} | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: "v${{ steps.createTag.outputs.tagName }}" | |
release_name: "v${{ steps.createTag.outputs.tagName }}" | |
draft: false | |
prerelease: false | |
body: "${{ steps.extract-release-notes.outputs.release_notes }}" | |
- name: Publish Plugin | |
if: ${{ !env.ACT }} | |
env: | |
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }} | |
ORG_GRADLE_PROJECT_amplitudeExperimentApiKey: ${{ secrets.AMPLITUDE_EXPERIMENT_API_KEY }} | |
ORG_GRADLE_PROJECT_environment: "PRODUCTION" | |
ORG_GRADLE_PROJECT_iterativelyEnvironment: "PRODUCTION" | |
ORG_GRADLE_PROJECT_segmentWriteKey: ${{ secrets.SEGMENT_WRITE_KEY }} | |
run: ./gradlew publishPlugin | |
# - name: Create Sentry release | |
# uses: getsentry/action-release@v1 | |
# if: ${{ !env.ACT }} | |
# env: | |
# SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
# SENTRY_ORG: ${{ secrets.SENTRY_ORG }} | |
# SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} |