Skip to content

Commit

Permalink
Split and Reuse the Release workflow (#194)
Browse files Browse the repository at this point in the history
* Split and Reuse the Release workflow

* Updated release files

---------

Co-authored-by: Roberto Cortez <[email protected]>
  • Loading branch information
gastaldi and radcortez authored Dec 6, 2024
1 parent 7b27eb8 commit afd23d2
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 108 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ jobs:
- name: Build with Maven
run: |
mvn -version
mvn formatter:validate verify --file pom.xml
mvn -B formatter:validate verify --file pom.xml
31 changes: 0 additions & 31 deletions .github/workflows/pre-release.yml

This file was deleted.

18 changes: 18 additions & 0 deletions .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Quarkiverse Prepare Release

on:
pull_request:
types: [ closed ]
paths:
- '.github/project.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
prepare-release:
name: Prepare Release
if: ${{ github.event.pull_request.merged == true}}
uses: quarkiverse/.github/.github/workflows/prepare-release.yml@main
secrets: inherit
43 changes: 43 additions & 0 deletions .github/workflows/publish-tck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Publish TCK

on:
workflow_call:
inputs:
version:
required: true
description: Tag version to perform release
type: string

jobs:
publish-tck:
name: Publish TCK
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 17, 21 ]

steps:
- uses: actions/checkout@v4
name: checkout ${{inputs.version}}
with:
ref: ${{inputs.version}}

- uses: actions/setup-java@v4
name: set up jdk ${{matrix.java}}
with:
distribution: 'temurin'
java-version: ${{matrix.java}}
cache: 'maven'
cache-dependency-path: '**/pom.xml'

- name: generate tck report for jdk ${{matrix.java}}
env:
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}
ZIP_NAME: quarkiverse-microprofile-${{inputs.version}}-tck-results-java-${{matrix.java}}.zip
run: |
mvn -B formatter:validate verify --file pom.xml
cd tck
mvn surefire-report:report-only
cd target
zip -r $ZIP_NAME *
gh release upload ${{inputs.version}} $ZIP_NAME
103 changes: 27 additions & 76 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,84 +1,35 @@
name: Quarkiverse Release

run-name: Perform ${{github.event.inputs.tag || github.ref_name}} Release
on:
pull_request:
types: [closed]
paths:
- '.github/project.yml'
push:
tags:
- '*'
workflow_dispatch:
inputs:
tag:
description: 'Tag to release'
required: true

permissions:
attestations: write
id-token: write
contents: write

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

defaults:
run:
shell: bash

jobs:
release:
runs-on: ubuntu-latest
name: release
if: ${{github.event.pull_request.merged == true}}

steps:
- uses: radcortez/project-metadata-action@main
name: Retrieve project metadata
id: metadata
with:
github-token: ${{secrets.GITHUB_TOKEN}}
metadata-file-path: '.github/project.yml'

- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
cache: 'maven'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

- name: Configure Git author
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
- name: Maven release ${{steps.metadata.outputs.current-version}}
run: |
mvn -B release:prepare -Prelease -DreleaseVersion=${{steps.metadata.outputs.current-version}} -DdevelopmentVersion=${{steps.metadata.outputs.next-version}}
mvn -B release:perform -Darguments=-DperformRelease -DperformRelease -Prelease
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}

- name: Push changes to ${{github.base_ref}} branch
run: |
git push
git push origin ${{steps.metadata.outputs.current-version}}
- uses: radcortez/milestone-release-action@main
name: milestone release
with:
github-token: ${{secrets.GITHUB_TOKEN}}
milestone-title: ${{steps.metadata.outputs.current-version}}
milestone-next: ${{steps.metadata.outputs.next-version}}

- name: generate tck report
run: |
cd target/checkout/tck
mvn surefire-report:report-only
mv target/tck-results.html $GITHUB_WORKSPACE
- uses: meeDamian/[email protected]
name: upload tck asset to release
with:
token: ${{secrets.GITHUB_TOKEN}}
tag: ${{steps.metadata.outputs.current-version}}
allow_override: true
gzip: false
files: tck-results.html
perform-release:
name: Perform Release
uses: quarkiverse/.github/.github/workflows/perform-release.yml@main
secrets: inherit
with:
version: ${{github.event.inputs.tag || github.ref_name}}

publish-tck:
name: Publish TCK Report
uses: ./.github/workflows/publish-tck.yml
secrets: inherit
with:
version: ${{github.event.inputs.tag || github.ref_name}}
16 changes: 16 additions & 0 deletions .github/workflows/review-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Quarkiverse Review Release

on:
pull_request:
paths:
- '.github/project.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
pre-release:
name: Pre-Release
uses: quarkiverse/.github/.github/workflows/pre-release.yml@main
secrets: inherit

0 comments on commit afd23d2

Please sign in to comment.