From a5b1dec99a463918711b0466ccb725294b8726d5 Mon Sep 17 00:00:00 2001 From: Steve Riesenberg <5248162+sjohnr@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:59:04 -0500 Subject: [PATCH] Migrate slack notifications to GChat Closes gh-15503 --- .../continuous-integration-workflow.yml | 45 ++++++------------- .../milestone-spring-releasetrain.yml | 22 +++++---- .../update-scheduled-release-version.yml | 14 +++--- 3 files changed, 29 insertions(+), 52 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 2bc4774549..e4b5637cb1 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -209,26 +209,11 @@ jobs: run: | echo "Tagging and publishing $REPO@$VERSION release on GitHub." ./gradlew createGitHubRelease -PnextVersion=$VERSION -Pbranch=$BRANCH -PcreateRelease=true -PgitHubAccessToken=$TOKEN - - name: Announce Release on Slack - id: spring-security-announcing - uses: slackapi/slack-github-action@v1.26.0 - with: - payload: | - { - "text": "spring-security-announcing `${{ env.VERSION }}` is available now", - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "spring-security-announcing `${{ env.VERSION }}` is available now" - } - } - ] - } + - name: Announce Release on GChat env: - SLACK_WEBHOOK_URL: ${{ secrets.SPRING_RELEASE_SLACK_WEBHOOK_URL }} - SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK + WEBHOOK_URL: ${{ secrets.SPRING_RELEASE_GCHAT_WEBHOOK_URL }} + run: | + curl -X POST '$WEBHOOK_URL' -H 'Content-Type: application/json' -d '{ text: "spring-security-announcing `$VERSION` is available now" }' || true - name: Setup git config run: | git config user.name 'github-actions[bot]' @@ -260,20 +245,16 @@ jobs: distribution: 'adopt' - name: Schedule next release (if not already scheduled) run: ./gradlew scheduleNextRelease -PnextVersion=$VERSION -PgitHubAccessToken=$TOKEN - notify_result: - name: Check for failures - needs: [perform_release, perform_post_release] + send-notification: + name: Send Notification + needs: [ perform-release ] if: failure() runs-on: ubuntu-latest - permissions: - actions: read steps: - - name: Send Slack message - # Workaround while waiting for Gamesight/slack-workflow-status#38 to be fixed - # See https://github.com/Gamesight/slack-workflow-status/issues/38 - uses: sjohnr/slack-workflow-status@v1-beta + - name: Send Notification + uses: spring-io/spring-security-release-tools/.github/actions/send-notification@v1 with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - channel: '#spring-security-ci' - name: 'CI Notifier' + webhook-url: ${{ secrets.SPRING_SECURITY_CI_GCHAT_WEBHOOK_URL }} + status: ${{ job.status }} + build-scan-url: ${{ steps.build-and-publish.outputs.build-scan-url }} + run-name: ${{ format('spring-security/{0}', github.ref_name) }} diff --git a/.github/workflows/milestone-spring-releasetrain.yml b/.github/workflows/milestone-spring-releasetrain.yml index 87d1ab287e..44a2c11356 100644 --- a/.github/workflows/milestone-spring-releasetrain.yml +++ b/.github/workflows/milestone-spring-releasetrain.yml @@ -8,7 +8,7 @@ env: permissions: contents: read jobs: - spring-releasetrain-checks: + spring-releasetrain-checks: name: Check DueOn is on a Release Date runs-on: ubuntu-latest if: ${{ github.repository == 'spring-projects/spring-security' }} @@ -23,18 +23,16 @@ jobs: export TOOL_VERSION=0.1.1 wget "https://repo.maven.apache.org/maven2/io/spring/releasetrain/spring-release-train-tools/$TOOL_VERSION/spring-release-train-tools-$TOOL_VERSION.jar" java -cp "spring-release-train-tools-$TOOL_VERSION.jar" io.spring.releasetrain.CheckMilestoneDueOnMain --dueOn "$DUE_ON" --expectedDayOfWeek MONDAY --expectedMondayCount 3 - notify_result: - name: Check for failures - needs: [spring-releasetrain-checks] + send-notification: + name: Send Notification + needs: [ spring-releasetrain-checks ] if: failure() runs-on: ubuntu-latest - permissions: - actions: read steps: - - name: Send Slack message - uses: Gamesight/slack-workflow-status@v1.3.0 + - name: Send Notification + uses: spring-io/spring-security-release-tools/.github/actions/send-notification@v1 with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - channel: '#spring-security-ci' - name: 'CI Notifier' + webhook-url: ${{ secrets.SPRING_SECURITY_CI_GCHAT_WEBHOOK_URL }} + status: ${{ job.status }} + build-scan-url: ${{ steps.build-and-publish.outputs.build-scan-url }} + run-name: ${{ format('spring-security/{0}', github.ref_name) }} diff --git a/.github/workflows/update-scheduled-release-version.yml b/.github/workflows/update-scheduled-release-version.yml index 0453acee62..3cde9b5e81 100644 --- a/.github/workflows/update-scheduled-release-version.yml +++ b/.github/workflows/update-scheduled-release-version.yml @@ -4,7 +4,6 @@ on: workflow_dispatch: # Manual trigger only. Triggered by release-scheduler.yml on main. env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} DEVELOCITY_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }} permissions: @@ -58,12 +57,11 @@ jobs: git tag $updatedVersion git push git push origin $updatedVersion - - id: send-slack-notification - name: Send Slack message + - name: Send Notification if: failure() - uses: Gamesight/slack-workflow-status@v1.3.0 + uses: spring-io/spring-security-release-tools/.github/actions/send-notification@v1 with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} - channel: '#spring-security-ci' - name: 'CI Notifier' + webhook-url: ${{ secrets.SPRING_SECURITY_CI_GCHAT_WEBHOOK_URL }} + status: ${{ job.status }} + build-scan-url: ${{ steps.build-and-publish.outputs.build-scan-url }} + run-name: ${{ format('spring-security/{0}', github.ref_name) }}