diff --git a/.github/workflows/release-generation.yaml b/.github/workflows/release-generation.yaml new file mode 100644 index 00000000..534dcc90 --- /dev/null +++ b/.github/workflows/release-generation.yaml @@ -0,0 +1,141 @@ +name: "Release - Generation" + +on: + # release: + # types: [created] + push: + branches: + - distro-255-aa-fix-release-workflow + +env: + # Example: 8.4+gen1 + RELEASE_NAME: 8.4+gen7 + +jobs: + release_script: + runs-on: ubuntu-latest + name: Build release script + steps: + - uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: "1.20" + + - name: Build + working-directory: ./release-notes-fetcher + run: go build + + - name: Generate token for Camunda GitHub org + id: generate-camunda-github-token + uses: tibdex/github-app-token@v1 + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Generate token for Camunda Cloud GitHub org + id: generate-camunda-cloud-github-token + uses: tibdex/github-app-token@v1 + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + repository: camunda-cloud/identity + + - name: Set vars + run: | + CAMUNDA_VERSION="$(echo ${RELEASE_NAME} | awk -F '+' '{print $1}')" + CONFIG_FILE="release-notes-fetcher/config/release-notes-fetcher-camunda-${CAMUNDA_VERSION}.yaml" + export GLOBAL_GITREF="$(yq '.gitRef.global' ${CONFIG_FILE})" + + # Generate env var from git ref for all apps. + # This will generate env vars like "ZEEBE_GITREF". + yq '.gitRef | omit(["global"]) | keys' "${CONFIG_FILE}" | sed 's/- //g' | + while read APP_NAME; do + APP_REF="$(APP_NAME=${APP_NAME} yq '.gitRef.[env(APP_NAME)] // env(GLOBAL_GITREF)' ${CONFIG_FILE})" + echo "${APP_NAME^^}_GITREF=${APP_REF}" >> "${GITHUB_ENV}" + done + + - name: Run release notes script + working-directory: ./release-notes-fetcher + run: set -o pipefail; ./release-notes-fetcher | tee release_notes.txt + env: + GITHUB_CAMUNDA_ACCESS_TOKEN: ${{ steps.generate-camunda-github-token.outputs.token }} + GITHUB_CAMUNDA_CLOUD_ACCESS_TOKEN: ${{ steps.generate-camunda-cloud-github-token.outputs.token }} + + - name: Login to gh repo + working-directory: ./release-notes-fetcher + run: echo ${{ steps.generate-camunda-github-token.outputs.token }} | gh auth login --with-token + + - name: Edit release notes with output from script + working-directory: ./release-notes-fetcher + run: gh release edit --notes-file release_notes.txt -R camunda/camunda-platform ${RELEASE_NAME} + + - name: Create temporary directory for asset download/upload + working-directory: ./release-notes-fetcher + run: mkdir -p tmp + + # Tasklist binaries are uploaded to zeebes repo + - name: Download Zeebe resources + working-directory: ./release-notes-fetcher/tmp + run: > + gh release download "${ZEEBE_GITREF}" + -R camunda/zeebe + -p "zbctl" + -p "zbctl.sha1sum" + -p "zbctl.exe" + -p "zbctl.exe.sha1sum" + -p "zbctl.darwin" + -p "zbctl.darwin.sha1sum" + -p "camunda-zeebe-${ZEEBE_GITREF}.tar.gz" + -p "camunda-zeebe-${ZEEBE_GITREF}.tar.gz.sha1sum" + -p "camunda-zeebe-${ZEEBE_GITREF}.zip" + -p "camunda-zeebe-${ZEEBE_GITREF}.zip.sha1sum" + -p "camunda-tasklist-${ZEEBE_GITREF}.zip" + -p "camunda-tasklist-${ZEEBE_GITREF}.zip.sha1sum" + -p "camunda-tasklist-${ZEEBE_GITREF}.tar.gz" + -p "camunda-tasklist-${ZEEBE_GITREF}.tar.gz.sha1sum" + + - name: Download Operate resources from monorepo + if: ${{ startsWith(env.RELEASE_NAME, '8.5') }} + working-directory: ./release-notes-fetcher/tmp + run: > + gh release download "operate-${OPERATE_GITREF}" + -R camunda/zeebe + -p "camunda-operate-${OPERATE_GITREF}.zip" + -p "camunda-operate-${OPERATE_GITREF}.zip.sha1sum" + -p "camunda-operate-${OPERATE_GITREF}.tar.gz" + -p "camunda-operate-${OPERATE_GITREF}.tar.gz.sha1sum" + + - name: Download Operate resources + if: ${{ !startsWith(env.RELEASE_NAME, '8.5') }} + working-directory: ./release-notes-fetcher/tmp + run: > + gh release download "${OPERATE_GITREF}" + -R camunda/operate + -p "camunda-operate-${OPERATE_GITREF}.zip" + -p "camunda-operate-${OPERATE_GITREF}.zip.sha1sum" + -p "camunda-operate-${OPERATE_GITREF}.tar.gz" + -p "camunda-operate-${OPERATE_GITREF}.tar.gz.sha1sum" + + - name: Login to Camunda Cloud + working-directory: ./release-notes-fetcher + run: echo ${{ steps.generate-camunda-cloud-github-token.outputs.token }} | gh auth login --with-token + + - name: Download Identity resources + working-directory: ./release-notes-fetcher/tmp + run: > + gh release download "${IDENTITY_GITREF}" + -R camunda-cloud/identity + -p "camunda-identity-${IDENTITY_GITREF}.tar.gz" + -p "camunda-identity-${IDENTITY_GITREF}.tar.gz.sha1sum" + -p "camunda-identity-${IDENTITY_GITREF}.zip" + -p "camunda-identity-${IDENTITY_GITREF}.zip.sha1sum" + + - name: Login back to Camunda + working-directory: ./release-notes-fetcher + run: echo ${{ steps.generate-camunda-github-token.outputs.token }} | gh auth login --with-token + + - name: Upload resources + working-directory: ./release-notes-fetcher/tmp + run: gh release -R camunda/camunda-platform upload "${RELEASE_NAME}" * diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5315b9b0..d9246d69 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -4,6 +4,7 @@ on: jobs: release_script: + if: ! contains($GITHUB_REF_NAME, "+") runs-on: ubuntu-latest name: Build release script steps: diff --git a/release-notes-fetcher/config/release-notes-fetcher-camunda-8.4.yaml b/release-notes-fetcher/config/release-notes-fetcher-camunda-8.4.yaml new file mode 100644 index 00000000..485b5fb2 --- /dev/null +++ b/release-notes-fetcher/config/release-notes-fetcher-camunda-8.4.yaml @@ -0,0 +1,6 @@ +gitRef: + global: 8.4.7 + operate: 8.4.8 + identity: + tasklist: + zeebe: diff --git a/release-notes-fetcher/release.sh b/release-notes-fetcher/release.sh deleted file mode 100755 index bb8964a7..00000000 --- a/release-notes-fetcher/release.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash -set -x -e -set +o pipefail - -export GITHUB_REF_NAME=8.2.3 -export REPO_TO_PUBLISH_TO=camunda/camunda-platform - -go build - -./release-notes-fetcher | tee release_notes.txt -gh release edit --notes-file release_notes.txt -R $REPO_TO_PUBLISH_TO $GITHUB_REF_NAME - -mkdir -p tmp - -cd tmp - -gh release \ - download "$GITHUB_REF_NAME" \ - -R camunda/zeebe \ - -p "zbctl" \ - -p "zbctl.sha1sum" \ - -p "zbctl.exe" \ - -p "zbctl.exe.sha1sum" \ - -p "zbctl.darwin" \ - -p "zbctl.darwin.sha1sum" \ - -p "camunda-zeebe-$GITHUB_REF_NAME.tar.gz" \ - -p "camunda-zeebe-$GITHUB_REF_NAME.tar.gz.sha1sum" \ - -p "camunda-zeebe-$GITHUB_REF_NAME.zip" \ - -p "camunda-zeebe-$GITHUB_REF_NAME.zip.sha1sum" \ - -p "camunda-tasklist-$GITHUB_REF_NAME.zip" \ - -p "camunda-tasklist-$GITHUB_REF_NAME.zip.sha1sum" \ - -p "camunda-tasklist-$GITHUB_REF_NAME.tar.gz" \ - -p "camunda-tasklist-$GITHUB_REF_NAME.tar.gz.sha1sum" - -gh release \ - download "$GITHUB_REF_NAME" \ - -R camunda/operate \ - -p "camunda-operate-$GITHUB_REF_NAME.zip" \ - -p "camunda-operate-$GITHUB_REF_NAME.zip.sha1sum" \ - -p "camunda-operate-$GITHUB_REF_NAME.tar.gz" \ - -p "camunda-operate-$GITHUB_REF_NAME.tar.gz.sha1sum" \ - -gh release \ - download "$GITHUB_REF_NAME" \ - -R camunda-cloud/identity \ - -p "camunda-identity-$GITHUB_REF_NAME.tar.gz" \ - -p "camunda-identity-$GITHUB_REF_NAME.tar.gz.sha1sum" \ - -p "camunda-identity-$GITHUB_REF_NAME.zip" \ - -p "camunda-identity-$GITHUB_REF_NAME.zip.sha1sum" - -gh release -R $REPO_TO_PUBLISH_TO upload "$GITHUB_REF_NAME" * -