From 3aaf9da86fee0973a4ccb8f828c455daa7e496e8 Mon Sep 17 00:00:00 2001 From: Rodrigo Antunes Date: Tue, 27 Aug 2024 15:15:11 -0300 Subject: [PATCH] [10.0.x] NO-ISSUE: Fixes for the release Jenkins and Github workflow jobs (#2092) * Fix Skip tests parameter * Add missing function * Fix publish-jitexecutor-native-rc github workflow * Fix jit-executor-rc workflow * Fix jit-executor-rc workflow * Remove jit-executor-native workflow job trigger * Do not import GPG KEY for pull requests * Do not import GPG KEY for pull requests --- .ci/jenkins/Jenkinsfile.deploy | 9 +- .../publish-jitexecutor-native-rc.yml | 228 ++++++++++++++++-- 2 files changed, 219 insertions(+), 18 deletions(-) diff --git a/.ci/jenkins/Jenkinsfile.deploy b/.ci/jenkins/Jenkinsfile.deploy index d8fdabb2f3..58e0c532bb 100644 --- a/.ci/jenkins/Jenkinsfile.deploy +++ b/.ci/jenkins/Jenkinsfile.deploy @@ -112,7 +112,10 @@ pipeline { def mavenCommand = getMavenCommand().withProperty('maven.test.failure.ignore', true) .withOptions(env.BUILD_MVN_OPTS_CURRENT ? [ env.BUILD_MVN_OPTS_CURRENT ] : []) .withOptions(env.KOGITO_APPS_BUILD_MVN_OPTS ? [ env.KOGITO_APPS_BUILD_MVN_OPTS ] : []) - .skipTests(skipTests) + + if (params.SKIP_TESTS) { + mavenCommand.skipTests() + } if (isRelease()) { releaseUtils.gpgImportKeyFromStringWithoutPassword(getReleaseGpgSignKeyCredsId()) @@ -256,6 +259,10 @@ String getGitAuthorCredsId() { return env.GIT_AUTHOR_CREDS_ID } +String getGitAuthorPushCredsId() { + return env.GIT_AUTHOR_PUSH_CREDS_ID +} + String getBuildBranch() { return params.BUILD_BRANCH_NAME } diff --git a/.github/workflows/publish-jitexecutor-native-rc.yml b/.github/workflows/publish-jitexecutor-native-rc.yml index a5cb5a12d8..e6893a814a 100644 --- a/.github/workflows/publish-jitexecutor-native-rc.yml +++ b/.github/workflows/publish-jitexecutor-native-rc.yml @@ -10,6 +10,12 @@ on: release_candidate_version: description: "Release candidate version" required: true + drools_repository: + description: "Drools repository" + required: true + kogito_runtimes_repository: + description: "Kogito runtimes repository" + required: true jobs: build_jitexecutor_native: @@ -28,10 +34,9 @@ jobs: echo "REF=${{github.event.pull_request.head.ref}}" >> "$GITHUB_OUTPUT" echo "PROJECT_VERSION=999-SNAPSHOT" >> "$GITHUB_OUTPUT" else - VERSION="${{ github.event.inputs.release_candidate_version }}" echo "REPOSITORY=apache/incubator-kie-kogito-apps" >> "$GITHUB_OUTPUT" - echo "REF=${VERSION//-SNAPSHOT/}" >> "$GITHUB_OUTPUT" - echo "PROJECT_VERSION=$VERSION" >> "$GITHUB_OUTPUT" + echo "REF=${{ github.ref_name }}" >> "$GITHUB_OUTPUT" + echo "PROJECT_VERSION=${{ github.event.inputs.release_candidate_version }}" >> "$GITHUB_OUTPUT" fi shell: bash @@ -51,21 +56,200 @@ jobs: maven-version: 3.9.6 - name: Import GPG key - uses: crazy-max/ghaction-import-gpg@v6 + if: github.event_name != 'pull_request' + uses: crazy-max/ghaction-import-gpg@111c56156bcc6918c056dbef52164cfa583dc549 with: gpg_private_key: ${{ secrets.GPG_KEY }} + - name: Setup maven settings (Linux and MacOS) + if: (runner.os == 'Linux' || runner.os == 'macOS') + env: + WORKDIR_PATH: ${{ github.workspace }} + DROOLS_REPO: ${{ github.event.inputs.drools_repository }} + KOGITO_RUNTIMES_REPO: ${{ github.event.inputs.kogito_runtimes_repository }} + run: | + mkdir -p ${WORKDIR_PATH}/.m2 + echo " + + + apache.releases.https + ${{ secrets.NEXUS_STAGE_DEPLOYER_USER }} + ${{ secrets.NEXUS_STAGE_DEPLOYER_PW }} + + + apache.snapshots.https + ${{ secrets.NEXUS_USER }} + ${{ secrets.NEXUS_PW }} + + + + + additional_repos + + + apache-kie-drools-staging-repository + Apache KIE Drools Staging Repository + ${DROOLS_REPO} + default + + true + never + + + false + never + + + + apache-kie-kogito-runtimes-staging-repository + Apache KIE Kogito Runtimes Staging Repository + ${KOGITO_RUNTIMES_REPO} + default + + true + never + + + false + never + + + + + + apache-kie-kogito-runtimes-staging-repository + Apache KIE Kogito Runtimes Staging Repository + ${KOGITO_RUNTIMES_REPO} + + true + never + + + false + never + + + + apache-kie-drools-staging-repository + Apache KIE Drools Staging Repository + ${DROOLS_REPO} + + true + never + + + false + never + + + + + + + additional_repos + + " > ${WORKDIR_PATH}/.m2/settings.xml + + - name: Setup maven settings (Windows) + if: runner.os == 'Windows' + env: + WORKDIR_PATH: ${{ github.workspace }} + DROOLS_REPO: ${{ github.event.inputs.drools_repository }} + KOGITO_RUNTIMES_REPO: ${{ github.event.inputs.kogito_runtimes_repository }} + shell: pwsh + run: | + New-Item -Name ".m2" -Path "$env:WORKDIR_PATH" -ItemType Directory + $contentToAdd = @" + + + + apache.releases.https + ${{ secrets.NEXUS_STAGE_DEPLOYER_USER }} + ${{ secrets.NEXUS_STAGE_DEPLOYER_PW }} + + + apache.snapshots.https + ${{ secrets.NEXUS_USER }} + ${{ secrets.NEXUS_PW }} + + + + + additional_repos + + + apache-kie-kogito-runtimes-staging-repository + Apache KIE Kogito Runtimes Staging Repository + $env:KOGITO_RUNTIMES_REPO + default + + true + never + + + false + never + + + + apache-kie-drools-staging-repository + Apache KIE Drools Staging Repository + $env:DROOLS_REPO + default + + true + never + + + false + never + + + + + + apache-kie-kogito-runtimes-staging-repository + Apache KIE Kogito Runtimes Staging Repository + $env:KOGITO_RUNTIMES_REPO + + true + never + + + false + never + + + + apache-kie-drools-staging-repository + Apache KIE Drools Staging Repository + $env:DROOLS_REPO + + true + never + + + false + never + + + + + + + additional_repos + + + "@ + Add-Content "$env:WORKDIR_PATH\.m2\settings.xml" $contentToAdd + - name: "Set up JDK 17" uses: actions/setup-java@v4 with: java-version: "17" distribution: "temurin" - server-id: apache.releases.https - server-username: ${{ secrets.NEXUS_STAGE_DEPLOYER_USER }} - server-password: ${{ secrets.NEXUS_STAGE_DEPLOYER_PW }} - gpg-private-key: ${{ secrets.GPG_KEY }} - gpg-passphrase: "" - + overwrite-settings: false + - name: "Setup Linux" if: runner.os == 'Linux' run: | @@ -115,16 +299,20 @@ jobs: - name: "Update versions (Linux and macOS)" if: (runner.os == 'Linux' || runner.os == 'macOS') && github.event_name != 'pull_request' shell: bash + env: + SETTINGS_FILE_PATH: ${{ github.workspace }}/.m2/settings.xml run: | - mvn -B -fae -ntp -N -e versions:update-parent -DparentVersion="[${{ steps.version.outputs.PROJECT_VERSION }}]" -DallowSnapshots=true -DgenerateBackupPoms=false - mvn -B -fae -ntp -N -e versions:update-child-modules -DallowSnapshots=true -DgenerateBackupPoms=false + mvn -B -fae -ntp -N -e versions:update-parent -DparentVersion="[${{ steps.version.outputs.PROJECT_VERSION }}]" -DallowSnapshots=true -DgenerateBackupPoms=false -s ${SETTINGS_FILE_PATH} + mvn -B -fae -ntp -N -e versions:update-child-modules -DallowSnapshots=true -DgenerateBackupPoms=false -s ${SETTINGS_FILE_PATH} - name: "Update versions Windows" if: runner.os == 'Windows' && github.event_name != 'pull_request' shell: pwsh + env: + SETTINGS_FILE_PATH: ${{ github.workspace }}\.m2\settings.xml run: | - mvn -B -fae -ntp -N -e versions:update-parent -DparentVersion="[${{ steps.version.outputs.PROJECT_VERSION }}]" -DallowSnapshots=true -DgenerateBackupPoms=false - mvn -B -fae -ntp -N -e versions:update-child-modules -DallowSnapshots=true -DgenerateBackupPoms=false + mvn -B -fae -ntp -N -e versions:update-parent -DparentVersion="[${{ steps.version.outputs.PROJECT_VERSION }}]" -DallowSnapshots=true -DgenerateBackupPoms=false -s $env:SETTINGS_FILE_PATH + mvn -B -fae -ntp -N -e versions:update-child-modules -DallowSnapshots=true -DgenerateBackupPoms=false -s $env:SETTINGS_FILE_PATH - name: "Build macOS" if: runner.os == 'macOS' && github.event_name == 'pull_request' @@ -135,8 +323,10 @@ jobs: - name: "Build and publish macOS" if: runner.os == 'macOS' && github.event_name != 'pull_request' shell: bash + env: + SETTINGS_FILE_PATH: ${{ github.workspace }}/.m2/settings.xml run: | - mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-darwin -am -Pjitexecutor-native -Prelease + mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-darwin -am -Pjitexecutor-native -Papache-release -s ${SETTINGS_FILE_PATH} - name: "Build Linux" if: runner.os == 'Linux' && github.event_name == 'pull_request' @@ -147,8 +337,10 @@ jobs: - name: "Build and Publish Linux" if: runner.os == 'Linux' && github.event_name != 'pull_request' shell: bash + env: + SETTINGS_FILE_PATH: ${{ github.workspace }}/.m2/settings.xml run: | - mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-linux -am -Pjitexecutor-native -Prelease + mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-linux -am -Pjitexecutor-native -Papache-release -s ${SETTINGS_FILE_PATH} - name: "Build Windows" if: runner.os == 'Windows' && github.event_name == 'pull_request' @@ -159,8 +351,10 @@ jobs: - name: "Build and Publish Windows" if: runner.os == 'Windows' && github.event_name != 'pull_request' shell: pwsh + env: + SETTINGS_FILE_PATH: ${{ github.workspace }}\.m2\settings.xml run: | - mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-win32 -am -Pjitexecutor-native -Prelease + mvn clean deploy -B -ntp -DdeployAtEnd -DskipTests -pl jitexecutor-native/jitexecutor-native-win32 -am -Pjitexecutor-native -Papache-release -s $env:SETTINGS_FILE_PATH - name: "Upload JIT Executor binary" uses: actions/upload-artifact@v4