Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release workflow #13291

Merged
merged 4 commits into from
Dec 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/actions/pre-release/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,8 @@ echo "Pushing release version and recreating v${release_version} tag"
git add gradle.properties
git add grails-core/src/test/groovy/grails/util/GrailsUtilTests.java
git commit -m "[skip ci] Release v${release_version}"
git push origin :refs/tags/v${release_version}
git tag -fa v${release_version} -m "Release v${release_version}"
git push origin v${release_version}
git push origin v${release_version} --force

echo "Closing again the release after updating the tag"
release_url=`cat $GITHUB_EVENT_PATH | jq '.release.url' | sed -e 's/^"\(.*\)"$/\1/g'`
Expand Down
84 changes: 51 additions & 33 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@ on:
types: [published]
permissions: {}
jobs:
release:
publish:
permissions:
contents: write # to create release
issues: write # to modify milestones

runs-on: ubuntu-latest
strategy:
matrix:
java: ['11']
outputs:
release_version: ${{ steps.release_version.outputs.value }}
target_branch: ${{ steps.extract_branch.outputs.value }}
env:
GIT_USER_NAME: puneetbehl
GIT_USER_EMAIL: [email protected]
Expand All @@ -21,27 +20,27 @@ jobs:
uses: actions/checkout@v4
with:
token: ${{ secrets.GH_TOKEN }}
- uses: gradle/wrapper-validation-action@v1
- name: Set up JDK
uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: ${{ matrix.java }}
java-version: '11'
- name: Extract Target Branch
id: extract_branch
run: |
echo "Determining Target Branch"
TARGET_BRANCH=`cat $GITHUB_EVENT_PATH | jq '.release.target_commitish' | sed -e 's/^"\(.*\)"$/\1/g'`
echo $TARGET_BRANCH
echo ::set-output name=value::${TARGET_BRANCH}
echo "value=${TARGET_BRANCH}" >> $GITHUB_OUTPUT
- name: Set the current release version
id: release_version
run: echo "release_version=${GITHUB_REF:11}" >> $GITHUB_OUTPUT
run: echo "value=${GITHUB_REF:11}" >> $GITHUB_OUTPUT
- name: Run pre-release
uses: ./.github/actions/pre-release
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Run Assemble
if: success()
id: assemble
uses: gradle/gradle-build-action@v2
with:
Expand All @@ -50,13 +49,28 @@ jobs:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
- name: Upload Distribution
if: success()
uses: actions/upload-artifact@v3
with:
name: grails-${{ steps.release_version.outputs.value }}.zip
path: build/distributions/grails-${{ steps.release_version.outputs.value }}.zip
- name: Upload artifacts to the Github release
if: success()
id: upload_artifact
uses: Roang-zero1/github-upload-release-artifacts-action@master
with:
args: build/distributions/grails-${{ steps.release_version.outputs.value }}.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate secring file
if: success() && false
env:
SECRING_FILE: ${{ secrets.SECRING_FILE }}
run: echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg
- name: Publish to Sonatype OSSRH
id: publish
if: steps.assemble.outcome == 'success'
if: success() && false
uses: gradle/gradle-build-action@v2
env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
Expand All @@ -71,48 +85,52 @@ jobs:
SECRING_FILE: ${{ secrets.SECRING_FILE }}
with:
arguments: -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg publishToSonatype closeAndReleaseSonatypeStagingRepository
- name: Export Gradle Properties
uses: micronaut-projects/github-actions/export-gradle-properties@master
- name: Run post-release
if: steps.publish.outcome == 'success'
if: success()
uses: ./.github/actions/post-release
with:
token: ${{ secrets.GITHUB_TOKEN }}
env:
SNAPSHOT_SUFFIX: -SNAPSHOT
- name: Upload artifacts to the Github release
id: upload_artifact
if: steps.publish.outcome == 'success'
uses: Roang-zero1/github-upload-release-artifacts-action@master
with:
args: build/distributions/grails-${{ steps.release_version.outputs.release_version }}.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create Message for the Grails Documentation Release
if: steps.publish.outcome == 'success'
id: grails_docs_release_message
docs:
needs: publish
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Prepare Input
id: prep_inputs
run: |
echo "value={\"grails_version\":\"$RELEASE_VERSION\"}" >> $GITHUB_OUTPUT
env:
RELEASE_VERSION: ${{ steps.release_version.outputs.release_version }}
RELEASE_VERSION: ${{ needs.publish.outputs.release_version }}
- name: Invoke grails-doc release workflow
if: steps.publish.outcome == 'success'
id: grails_doc
uses: benc-uk/[email protected]
with:
workflow: Release
repo: grails/grails-doc
ref: ${{ steps.extract_branch.outputs.value }}
ref: ${{ needs.publish.outputs.target_branch }}
token: ${{ secrets.GH_TOKEN }}
inputs: ${{ steps.grails_docs_release_message.outputs.value }}
inputs: ${{ steps.prep_inputs.outputs.value }}
website:
needs: publish
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Prepare Input
id: prep_inputs
run: |
echo "value={\"grails_version\":\"$RELEASE_VERSION\"}" >> $GITHUB_OUTPUT
env:
RELEASE_VERSION: ${{ needs.publish.outputs.release_version }}
- name: Invoke grails-static-website release workflow
if: steps.publish.outcome == 'success'
if: success()
id: grails_static_website
uses: benc-uk/[email protected]
with:
workflow: Release
repo: grails/grails-static-website
ref: master
token: ${{ secrets.GH_TOKEN }}
inputs: ${{ steps.grails_docs_release_message.outputs.value }}

inputs: ${{ steps.prep_inputs.outputs.value }}
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
projectVersion=6.1.2-SNAPSHOT
projectVersion=6.1.1-SNAPSHOT
antVersion=1.10.14
aspectjVersion=1.9.21
asyncVersion=5.0.0
Expand Down
Loading