diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 000000000..7775ccf97 --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,48 @@ +name: Publish Docs + +on: + workflow_call: + inputs: + version: + required: true + description: Tag version to perform release + type: string + +permissions: + contents: write + +jobs: + publish-docs: + name: Publish Docs + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + name: checkout ${{inputs.version}} + with: + ref: ${{inputs.version}} + + - name: git author + run: | + git config --global user.name "SmallRye CI" + git config --global user.email "smallrye@googlegroups.com" + + - uses: actions/setup-python@v5 + with: + python-version: '3.9' + + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 11 + + - name: docs release ${{inputs.version}} + run: | + cd documentation + mvn package + pipx install pipenv + pipenv install + git fetch origin gh-pages --depth=1 + pipenv run mike deploy --config-file=mkdocs.yaml --push --update-aliases "${PROJECT_VERSION}" Latest + env: + PROJECT_VERSION: ${{inputs.version}} diff --git a/.github/workflows/publish-tck.yml b/.github/workflows/publish-tck.yml new file mode 100644 index 000000000..977546574 --- /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-perform.yml b/.github/workflows/release-perform.yml new file mode 100644 index 000000000..dd0ce0c62 --- /dev/null +++ b/.github/workflows/release-perform.yml @@ -0,0 +1,43 @@ +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-docs: + name: Publish Docs + uses: ./.github/workflows/publish-docs.yml + 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/release-prepare.yml b/.github/workflows/release-prepare.yml new file mode 100644 index 000000000..3d61f1651 --- /dev/null +++ b/.github/workflows/release-prepare.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/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 8245eef6a..000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,93 +0,0 @@ -name: SmallRye Release - -on: - pull_request: - types: [closed] - paths: - - '.github/project.yml' - -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@v4 - with: - token: ${{secrets.RELEASE_TOKEN}} - - - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - 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' - - - uses: actions/setup-python@v5 - with: - python-version: '3.9' - - - 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 - - - name: docs release ${{steps.metadata.outputs.current-version}} - run: | - git checkout -b ${{steps.metadata.outputs.current-version}} ${{steps.metadata.outputs.current-version}} - cd documentation - mvn package - VERSION=${1:-"$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)"} - pipx install pipenv - pipenv install - git fetch origin gh-pages --depth=1 - git config --global user.name "SmallRye CI" - git config --global user.email "smallrye@googlegroups.com" - pipenv run mike deploy --config-file=mkdocs.yaml --push --update-aliases "${VERSION}" Latest - - - 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 - mvn surefire-report:report - mv testsuite/tck/target/tck-results.html $GITHUB_WORKSPACE - - - uses: meeDamian/github-release@2.0 - 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 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 343d47e84..b6645f0ee 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: