-
Notifications
You must be signed in to change notification settings - Fork 88
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
231 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
name: Release new version | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
push: | ||
description: 'Push artifacts to Central and commits to the repository' | ||
required: true | ||
default: true | ||
type: 'boolean' | ||
|
||
jobs: | ||
release: | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
packages: write | ||
env: | ||
STAGED_REPOSITORY: target/checkout/target/staging-deploy | ||
|
||
steps: | ||
- name: Check if release is running from master | ||
run: | | ||
if [ "${GITHUB_REF}" != "refs/heads/master" ]; then | ||
echo "Release is only allowed from master branch" | ||
exit 1 | ||
fi | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Install java | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: '17' | ||
distribution: 'temurin' | ||
gpg-private-key: ${{ secrets.JRELEASER_GPG_SECRET_KEY }} | ||
gpg-passphrase: MAVEN_GPG_PASSPHRASE | ||
cache: 'maven' | ||
|
||
- name: Configure git | ||
run: | | ||
git config user.name "Airlift Release" | ||
git config user.email "[email protected]" | ||
- name: Lock branch before release | ||
uses: github/lock@v2 | ||
id: release-lock | ||
with: | ||
mode: 'lock' | ||
|
||
- name: Run mvn release:prepare | ||
env: | ||
MAVEN_GPG_PASSPHRASE: ${{ secrets.JRELEASER_GPG_PASSPHRASE }} | ||
run: | | ||
./mvnw -B release:prepare -Poss-release,oss-stage | ||
- name: Determine release version | ||
run: | | ||
export VERSION=$(grep 'scm.tag=' release.properties | cut -d'=' -f2) | ||
echo "VERSION=${VERSION}" >> $GITHUB_ENV | ||
echo "Releasing version: ${VERSION}" | ||
- name: Run mvn release:perform to local staging | ||
env: | ||
MAVEN_GPG_PASSPHRASE: ${{ secrets.JRELEASER_GPG_PASSPHRASE }} | ||
run: | | ||
./mvnw -B release:perform -Poss-release,oss-stage | ||
- name: Display git status and history | ||
run: | | ||
git status | ||
git log --oneline -n 2 | ||
- name: List locally staged artifacts | ||
run: | | ||
find ${{ env.STAGED_REPOSITORY }} -type f | ||
- name: Run JReleaser | ||
uses: jreleaser/release-action@v2 | ||
env: | ||
JRELEASER_PROJECT_VERSION: ${{ env.VERSION }} | ||
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
JRELEASER_GPG_PUBLIC_KEY: ${{ vars.JRELEASER_GPG_PUBLIC_KEY }} | ||
JRELEASER_GPG_SECRET_KEY: ${{ secrets.JRELEASER_GPG_SECRET_KEY }} | ||
JRELEASER_GPG_PASSPHRASE: ${{ secrets.JRELEASER_GPG_PASSPHRASE }} | ||
JRELEASER_NEXUS2_MAVEN_CENTRAL_USERNAME: ${{ secrets.JRELEASER_NEXUS2_MAVEN_CENTRAL_USERNAME }} | ||
JRELEASER_NEXUS2_MAVEN_CENTRAL_TOKEN: ${{ secrets.JRELEASER_NEXUS2_MAVEN_CENTRAL_TOKEN }} | ||
JRELEASER_NEXUS2_END_STAGE: ${{ inputs.push && 'RELEASE' || 'CLOSE' }} | ||
JRELEASER_SKIP_RELEASE: ${{ inputs.push && 'false' || 'true' }} | ||
with: | ||
setup-java: false | ||
|
||
- name: Push git changes | ||
if: ${{ inputs.push }} | ||
run: | | ||
git status | ||
git push origin master | ||
- name: Unlock branch after a release | ||
uses: github/lock@v2 | ||
id: release-unlock | ||
with: | ||
mode: 'unlock' | ||
|
||
- name: Upload JReleaser logs | ||
if: always() | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: jreleaser-logs | ||
path: | | ||
out/jreleaser/trace.log | ||
out/jreleaser/output.properties |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# Hooks that will run on the CI to generate the summary of the steps | ||
hooks: | ||
condition: '"{{ Env.CI }}" == true' | ||
script: | ||
before: | ||
- filter: | ||
includes: ['session'] | ||
run: | | ||
echo "### {{command}}" >> $GITHUB_STEP_SUMMARY | ||
echo "| Step | Outcome |" >> $GITHUB_STEP_SUMMARY | ||
echo "| ---- | ------- |" >> $GITHUB_STEP_SUMMARY | ||
success: | ||
- filter: | ||
excludes: ['session'] | ||
run: 'echo "| {{event.name}} | :white_check_mark: |" >> $GITHUB_STEP_SUMMARY' | ||
- filter: | ||
includes: ['session'] | ||
run: echo "" >> $GITHUB_STEP_SUMMARY | ||
failure: | ||
- filter: | ||
excludes: ['session'] | ||
run: 'echo "| {{event.name}} | :x: |" >> $GITHUB_STEP_SUMMARY' | ||
- filter: | ||
includes: ['session'] | ||
run: | | ||
echo "" >> $GITHUB_STEP_SUMMARY | ||
echo "### Failure" >> $GITHUB_STEP_SUMMARY | ||
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY | ||
echo "{{event.stacktrace}}\`\`\`" >> $GITHUB_STEP_SUMMARY | ||
echo "" >> $GITHUB_STEP_SUMMARY | ||
# Project configuration | ||
project: | ||
name: airbase | ||
description: Base POM for Airlift | ||
license: Apache-2 | ||
java: | ||
groupId: io.airlift | ||
multiProject: true | ||
|
||
# Ordered as defined in the https://jreleaser.org/guide/latest/concepts/workflow.html#_full_release | ||
signing: | ||
active: ALWAYS | ||
armored: true | ||
|
||
# Deploy to OSSRH | ||
deploy: | ||
maven: | ||
pomchecker: | ||
failOnWarning: false # We don't want to fail the build on warnings | ||
failOnError: false # We don't want to fail the build on errors | ||
nexus2: | ||
maven-central: | ||
active: ALWAYS | ||
url: https://oss.sonatype.org/service/local | ||
snapshotUrl: https://oss.sonatype.org/content/repositories/snapshots/ | ||
javadocJar: false # Not every module has javadoc (packaging) | ||
closeRepository: true | ||
releaseRepository: true | ||
stagingRepositories: | ||
- target/checkout/target/staging-deploy | ||
|
||
# Release to Github | ||
release: | ||
github: | ||
owner: airlift | ||
overwrite: true # if tag already exists, overwrite it | ||
skipTag: true # created by the release plugin | ||
branch: master | ||
uploadAssets: NEVER | ||
tagName: '{{projectVersion}}' | ||
files: false | ||
draft: false | ||
releaseNotes: | ||
enabled: true | ||
configurationFile: .github/release.yml |
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