diff --git a/.github/workflows/release-worker.yml b/.github/workflows/release-worker.yml new file mode 100644 index 00000000..2619e04a --- /dev/null +++ b/.github/workflows/release-worker.yml @@ -0,0 +1,119 @@ +name: Release Worker + +on: + workflow_dispatch: + inputs: + build-zoo-handler: + description: 'Build Zoo Handler Payload' + required: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 1.8 + - uses: jvalkeal/setup-maven@v1 + with: + maven-version: 3.6.3 + - uses: jfrog/setup-jfrog-cli@v1 + with: + version: 1.46.4 + env: + JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }} + - uses: actions/cache@v2 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-m2- + + # target deploy repos + - name: Configure JFrog Cli + run: | + jfrog rt mvnc \ + --server-id-deploy=repo.spring.io \ + --repo-deploy-releases=libs-staging-local \ + --repo-deploy-snapshots=libs-staging-local + echo JFROG_CLI_BUILD_NAME=spring-cloud-deployer-kubernetes-main-release >> $GITHUB_ENV + echo JFROG_CLI_BUILD_NUMBER=$GITHUB_RUN_NUMBER >> $GITHUB_ENV + + # zoo extract and ensure + - name: Extract Zoo Context Properties + uses: jvalkeal/build-zoo-handler@v0.0.4 + with: + dispatch-handler-extract-context-properties: true + ensure-env: | + BUILD_ZOO_HANDLER_spring_cloud_dataflow_build_version + BUILD_ZOO_HANDLER_spring_cloud_deployer_version + + # build and publish to configured target + - name: Build and Publish + run: | + jfrog rt mvn build-helper:parse-version versions:set \ + -gs .github/settings.xml \ + -Pstagingrelease \ + -DprocessAllModules=true \ + -DgenerateBackupPoms=false \ + -Dartifactory.publish.artifacts=false \ + -DnewVersion='${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}' \ + -B + echo BUILD_ZOO_HANDLER_spring_cloud_deployer_kubernetes_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV + jfrog rt mvn versions:update-parent \ + -gs .github/settings.xml \ + -Pstagingrelease \ + -DgenerateBackupPoms=false \ + -DparentVersion='['${BUILD_ZOO_HANDLER_spring_cloud_deployer_version}']' \ + -B + jfrog rt mvn versions:set-property \ + -gs .github/settings.xml \ + -Pstagingrelease \ + -DgenerateBackupPoms=false \ + -Dproperty=spring-cloud-deployer.version \ + -DnewVersion=${BUILD_ZOO_HANDLER_spring_cloud_deployer_version} \ + -B + jfrog rt build-clean + jfrog rt mvn clean install \ + -gs .github/settings.xml \ + -P-spring,stagingrelease \ + -DskipTests -U -B + jfrog rt build-publish + echo BUILD_ZOO_HANDLER_spring_cloud_deployer_kubernetes_buildname=spring-cloud-deployer-kubernetes-main-release >> $GITHUB_ENV + echo BUILD_ZOO_HANDLER_spring_cloud_deployer_kubernetes_buildnumber=$GITHUB_RUN_NUMBER >> $GITHUB_ENV + + # zoo tag + - name: Tag Release + uses: jvalkeal/build-zoo-handler@v0.0.4 + with: + tag-release-branch: ${{ env.BUILD_ZOO_HANDLER_spring_cloud_deployer_kubernetes_version }} + tag-release-tag: ${{ env.BUILD_ZOO_HANDLER_spring_cloud_deployer_kubernetes_version }} + tag-release-tag-prefix: v + + # zoo success + - name: Notify Build Success Zoo Handler Controller + uses: jvalkeal/build-zoo-handler@v0.0.4 + with: + dispatch-handler-token: ${{ secrets.SCDF_ACCESS_TOKEN }} + dispatch-handler-client-payload-data: > + { + "event": "build-succeed" + } + + # zoo failure + - name: Notify Build Failure Zoo Handler Controller + if: ${{ failure() }} + uses: jvalkeal/build-zoo-handler@v0.0.4 + with: + dispatch-handler-token: ${{ secrets.SCDF_ACCESS_TOKEN }} + dispatch-handler-client-payload-data: > + { + "event": "build-failed", + "message": "spring-cloud-deployer-kubernetes failed" + } + # clean m2 cache + - name: Clean cache + run: | + find ~/.m2/repository -type d -name '*SNAPSHOT' | xargs rm -fr