Full Release #26
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: Full Release | |
on: | |
milestone: | |
types: | |
- closed | |
env: | |
artifactId: gaffer2 | |
MAVEN_OPTS: -Dmaven.wagon.http.retryHandler.count=3 -Dmaven.wagon.httpconnectionManager.ttlSeconds=25 | |
jobs: | |
create-release-tag: | |
runs-on: ubuntu-latest | |
outputs: | |
branch_name: ${{ steps.branch.outputs.branch_name }} | |
steps: | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '8' | |
- name: Checkout master | |
uses: actions/checkout@v4 | |
with: | |
ref: master | |
token: ${{ secrets.ADMIN_GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up Github credentials | |
run: | | |
git config user.name github-actions[bot] | |
git config user.email 41898282+github-actions[bot]@users.noreply.github.com | |
- name: Set release version | |
run: echo "RELEASE_VERSION=$(echo ${{ github.event.milestone.title }} | cut -c 2-)" >> $GITHUB_ENV | |
- name: Set branch name | |
run: echo "BRANCH_NAME=$(git branch -a | grep $RELEASE_VERSION | tail -n 1 | cut -c 18-)" >> $GITHUB_ENV | |
- name: Output branch name | |
id: branch | |
run: echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT | |
- name: Fail if branch output missing (no branch found) | |
if: ${{ !steps.branch.outputs.branch_name }} | |
run: exit 1 | |
- name: Merge release into master | |
run: | | |
git checkout ${{ env.BRANCH_NAME }} | |
git checkout master | |
git merge ${{ env.BRANCH_NAME }} | |
- name: Push changes | |
run: | | |
git tag $artifactId-$RELEASE_VERSION | |
git push origin $artifactId-$RELEASE_VERSION | |
git push | |
update-develop: | |
runs-on: ubuntu-latest | |
needs: | |
- create-release-tag | |
steps: | |
- name: Checkout develop | |
uses: actions/checkout@v4 | |
with: | |
ref: develop | |
token: ${{ secrets.ADMIN_GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up Github credentials | |
run: | | |
git config user.name github-actions[bot] | |
git config user.email 41898282+github-actions[bot]@users.noreply.github.com | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '8' | |
- name: Merge release into develop | |
run: | | |
git checkout ${{ needs.create-release-tag.outputs.branch_name }} | |
git checkout develop | |
git merge ${{ needs.create-release-tag.outputs.branch_name }} --strategy-option theirs | |
- name: Update develop branch | |
run: | | |
git checkout develop | |
mvn release:update-versions -B | |
NEW_GAFFER_VERSION=$(mvn -q help:evaluate -DforceStdout -Dexpression=pom.version) | |
sed -i'' -e "s/^gaffer.version=.*/gaffer.version=$NEW_GAFFER_VERSION/" rest-api/common-rest/src/main/resources/version.properties | |
git commit -a -m "prepare for next development iteration" | |
git push | |
update-github-releases: | |
runs-on: ubuntu-latest | |
needs: | |
- create-release-tag | |
steps: | |
- name: Checkout Master | |
uses: actions/checkout@v4 | |
with: | |
ref: master | |
- name: Create Release Notes | |
uses: docker://decathlon/release-notes-generator-action:2.1.0 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set version | |
run: echo "RELEASE_VERSION=$(echo ${{ github.event.milestone.title }} | cut -c 2-)" >> $GITHUB_ENV | |
- name: Upload notes | |
uses: softprops/action-gh-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ env.artifactId }}-${{ env.RELEASE_VERSION }} | |
name: Gaffer ${{ env.RELEASE_VERSION }} | |
body_path: release_file.md | |
generate-javadoc: | |
runs-on: ubuntu-latest | |
needs: | |
- create-release-tag | |
steps: | |
- name: Checkout Master | |
uses: actions/checkout@v4 | |
with: | |
ref: master | |
token: ${{ secrets.ADMIN_GITHUB_TOKEN }} | |
- name: Set up Github credentials | |
run: | | |
git config user.name github-actions[bot] | |
git config user.email 41898282+github-actions[bot]@users.noreply.github.com | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: Set version | |
run: echo "RELEASE_VERSION=$(echo ${{ github.event.milestone.title }} | cut -c 2-)" >> $GITHUB_ENV | |
- name: Upload Javadoc | |
run: | | |
git remote set-branches --add origin gh-pages | |
git pull | |
mvn -q clean install -Pquick -Dskip.jar-with-dependencies=true -Dshaded.jar.phase=true | |
mvn -q javadoc:aggregate | |
git checkout gh-pages | |
rm -rf uk | |
rm -rf jquery | |
rm -rf resources | |
mv target/site/apidocs/* . | |
git add . | |
git commit -a -m "Updated javadoc - $RELEASE_VERSION" | |
git push | |
release-to-nexus: | |
runs-on: ubuntu-latest | |
needs: | |
- create-release-tag | |
steps: | |
- name: Setup JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '8' | |
- name: Checkout release | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ needs.create-release-tag.outputs.branch_name }} | |
- name: Decode CodeSigning key | |
env: | |
CODE_SIGNING_KEY: ${{ secrets.CODE_SIGNING_KEY }} | |
CODE_SIGNING_IV: ${{ secrets.CODE_SIGNING_IV }} | |
run: openssl aes-256-cbc -K "$CODE_SIGNING_KEY" -iv "$CODE_SIGNING_IV" -in cd/codesigning.asc.enc -out cd/codesigning.asc -d | |
- name: Import CodeSigning key | |
run: gpg --batch --fast-import cd/codesigning.asc | |
- name: Release to Nexus | |
env: | |
GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }} | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
OSS_NEXUS_USERNAME: ${{ secrets.OSS_NEXUS_USERNAME }} | |
OSS_NEXUS_PASSWORD: ${{ secrets.OSS_NEXUS_PASSWORD }} | |
run: mvn deploy -P quick,ossrh-release --settings cd/mvnsettings.xml -B |