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..97754657 --- /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-config-${{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 e69de29b..bd025dd0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -0,0 +1,36 @@ +name: SmallRye Release +run-name: Perform ${{github.event.inputs.tag || github.ref_name}} Release +on: + 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: + 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/review-release.yml b/.github/workflows/review-release.yml new file mode 100644 index 00000000..b6645f0e --- /dev/null +++ b/.github/workflows/review-release.yml @@ -0,0 +1,31 @@ +name: SmallRye Review Release + +on: + pull_request: + paths: + - '.github/project.yml' + +jobs: + release: + runs-on: ubuntu-latest + name: pre release + + 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' + + - name: Validate version + if: contains(steps.metadata.outputs.current-version, 'SNAPSHOT') + run: | + echo '::error::Cannot release a SNAPSHOT version.' + exit 1 + + - uses: radcortez/milestone-review-action@main + name: milestone review + with: + github-token: ${{secrets.GITHUB_TOKEN}} + milestone-title: ${{steps.metadata.outputs.current-version}} 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/README.adoc b/README.adoc index 1ad22508..30ee4cbb 100644 --- a/README.adoc +++ b/README.adoc @@ -1,9 +1,7 @@ :microprofile-metrics: https://github.com/eclipse/microprofile-metrics/ -:ci: https://github.com/smallrye/smallrye-metrics/actions?query=workflow%3A%22SmallRye+Build%22 -:sonar: https://sonarcloud.io/dashboard?id=smallrye_smallrye-metrics +:ci: https://github.com/smallrye/smallrye-metrics/actions/workflows/build.yml/ -image:https://github.com/smallrye/smallrye-metrics/workflows/SmallRye%20Build/badge.svg?branch=main[link={ci}] -image:https://sonarcloud.io/api/project_badges/measure?project=smallrye_smallrye-metrics&metric=alert_status["Quality Gate Status", link={sonar}] +image:https://github.com/smallrye/smallrye-metrics/actions/workflows/build.yml/badge.svg?branch=main[link={ci}] image:https://img.shields.io/github/license/smallrye/smallrye-metrics.svg["License", link="http://www.apache.org/licenses/LICENSE-2.0"] image:https://img.shields.io/maven-central/v/io.smallrye/smallrye-metrics?color=green[] diff --git a/pom.xml b/pom.xml index d8ecddbf..e7430911 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,6 @@ implementation - testsuite api @@ -141,6 +140,18 @@ + + unpublished + + + performRelease + !true + + + + testsuite + + release