diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml
new file mode 100644
index 00000000..3d61f165
--- /dev/null
+++ b/.github/workflows/prepare-release.yml
@@ -0,0 +1,18 @@
+name: SmallRye 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: smallrye/.github/.github/workflows/prepare-release.yml@main
+ secrets: inherit
diff --git a/.github/workflows/publish-tck.yml b/.github/workflows/publish-tck.yml
new file mode 100644
index 00000000..6fedf440
--- /dev/null
+++ b/.github/workflows/publish-tck.yml
@@ -0,0 +1,41 @@
+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: [ 11, 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: smallrye-jwt-${{inputs.version}}-tck-results-java-${{matrix.java}}.zip
+ run: |
+ mvn -B formatter:validate verify --file pom.xml
+ cd testsuite/tck/target
+ zip -r $ZIP_NAME surefire-reports/
+ gh release upload ${{inputs.version}} $ZIP_NAME
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f451df81..bd025dd0 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,65 +1,36 @@
name: SmallRye 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
+ # Needed for the publish-* workflows
+ contents: write
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
jobs:
- release:
- runs-on: ubuntu-latest
- name: release
- if: ${{github.event.pull_request.merged == true}}
- env:
- GITHUB_TOKEN: ${{secrets.RELEASE_TOKEN}}
-
- 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@v2
- with:
- token: ${{secrets.RELEASE_TOKEN}}
-
- - uses: actions/setup-java@v1
- with:
- java-version: 11
- server-id: 'oss.sonatype'
- server-username: 'MAVEN_DEPLOY_USERNAME'
- server-password: 'MAVEN_DEPLOY_TOKEN'
- gpg-private-key: ${{secrets.MAVEN_GPG_PRIVATE_KEY}}
- gpg-passphrase: 'MAVEN_GPG_PASSPHRASE'
-
- - name: maven release ${{steps.metadata.outputs.current-version}}
- env:
- MAVEN_DEPLOY_USERNAME: ${{secrets.MAVEN_DEPLOY_USERNAME}}
- MAVEN_DEPLOY_TOKEN: ${{secrets.MAVEN_DEPLOY_TOKEN}}
- MAVEN_GPG_PASSPHRASE: ${{secrets.MAVEN_GPG_PASSPHRASE}}
- run: |
- java -version
- git config --global user.name "SmallRye CI"
- git config --global user.email "smallrye@googlegroups.com"
- git checkout -b release
- mvn -B release:prepare -Prelease,coverage -DreleaseVersion=${{steps.metadata.outputs.current-version}} -DdevelopmentVersion=${{steps.metadata.outputs.next-version}}
- git checkout ${{github.base_ref}}
- git rebase release
- mvn -B release:perform -Prelease
- git push
- git push --tags
-
- - uses: actions/upload-artifact@v2
- name: tck-report
- with:
- name: tck-report
- path: testsuite/tck/target/surefire-reports
-
- - uses: radcortez/milestone-release-action@main
- name: milestone release
- with:
- github-token: ${{secrets.GITHUB_TOKEN}}
- milestone-title: ${{steps.metadata.outputs.current-version}}
+ perform-release:
+ name: Perform Release
+ uses: smallrye/.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}}
diff --git a/.github/workflows/pre-release.yml b/.github/workflows/review-release.yml
similarity index 96%
rename from .github/workflows/pre-release.yml
rename to .github/workflows/review-release.yml
index 343d47e8..b6645f0e 100644
--- a/.github/workflows/pre-release.yml
+++ b/.github/workflows/review-release.yml
@@ -1,4 +1,4 @@
-name: SmallRye Pre Release
+name: SmallRye Review Release
on:
pull_request:
diff --git a/.github/workflows/update-milestone.yml b/.github/workflows/update-milestone.yml
new file mode 100644
index 00000000..5a1f3354
--- /dev/null
+++ b/.github/workflows/update-milestone.yml
@@ -0,0 +1,17 @@
+name: Update Milestone
+
+on:
+ pull_request_target:
+ types: [closed]
+
+jobs:
+ update:
+ runs-on: ubuntu-latest
+ name: update-milestone
+ if: ${{github.event.pull_request.merged == true}}
+
+ steps:
+ - uses: radcortez/milestone-set-action@main
+ name: milestone set
+ with:
+ github-token: ${{secrets.GITHUB_TOKEN}}
diff --git a/pom.xml b/pom.xml
index 083f2051..812a5ba7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,6 @@
implementation
- testsuite
@@ -180,6 +179,18 @@
+
+ unpublished
+
+
+ performRelease
+ !true
+
+
+
+ testsuite
+
+
coverage