diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 63c8407353..cd1ff92610 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -57,10 +57,13 @@ jobs: node-version: "20" cache: "npm" - - run: npm ci - + - run: | + echo "CURRENT_STEP=npm ci" >> $GITHUB_ENV + npm ci + - name: Build run: | + echo "CURRENT_STEP=Build" >> $GITHUB_ENV touch .env make versions-ci make build-ci @@ -73,10 +76,24 @@ jobs: - name: Upload to AWS run: | + echo "CURRENT_STEP=Upload to AWS" >> $GITHUB_ENV aws s3 sync --cache-control 'public, max-age=604800' --exclude '*.html' --exclude '*.xml' --exclude build/scripts/ build/ s3://docs.spectrocloud.com --delete aws s3 sync --cache-control 'public, max-age=0, s-maxage=604800' build/ s3://docs.spectrocloud.com --delete aws cloudfront create-invalidation --distribution-id ${{ secrets.DISTRIBUTION_ID }} --paths "/*" + - name: Slack Notification on Failure + if: ${{ failure() }} + uses: rtCamp/action-slack-notify@v2.3.2 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_PRIVATE_TEAM_WEBHOOK }} + SLACK_USERNAME: "spectromate" + SLACK_ICON_EMOJI: ":robot_panic:" + SLACK_COLOR: "danger" + SLACKIFY_MARKDOWN: true + ENABLE_ESCAPES: true + SLACK_MESSAGE: "The self-hosted runner release job for `${{ github.workflow }}` in `${{ github.repository }}` failed at step: `${{ env.CURRENT_STEP }}`. [View details](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})." + + # Use this workflow if you want to use the GitHub-hosted large runner. Useful for scenarios when you need a change to deploy faster than the self-hosted runner can build it. build-large-runner: if: ${{ github.event.inputs.useGitHubHostedLargeRunner == 'true' && github.event_name != 'schedule' }} @@ -98,13 +115,14 @@ jobs: node-version: "20" cache: "npm" - - run: npm ci + - run: | + echo "CURRENT_STEP=npm ci" >> $GITHUB_ENV + npm ci - - name: Versions - run: | - name: Build run: | + echo "CURRENT_STEP=Build" >> $GITHUB_ENV touch .env make versions-ci make build-ci @@ -117,10 +135,22 @@ jobs: - name: Upload to AWS run: | + echo "CURRENT_STEP=Upload to AWS" >> $GITHUB_ENV aws s3 sync --cache-control 'public, max-age=604800' --exclude '*.html' --exclude '*.xml' --exclude build/scripts/ build/ s3://docs.spectrocloud.com --delete aws s3 sync --cache-control 'public, max-age=0, s-maxage=604800' build/ s3://docs.spectrocloud.com --delete aws cloudfront create-invalidation --distribution-id ${{ secrets.DISTRIBUTION_ID }} --paths "/*" + - name: Slack Notification on Failure + if: ${{ failure() }} + uses: rtCamp/action-slack-notify@v2.3.2 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_PRIVATE_TEAM_WEBHOOK }} + SLACK_USERNAME: "spectromate" + SLACK_ICON_EMOJI: ":robot_panic:" + SLACK_COLOR: "danger" + SLACKIFY_MARKDOWN: true + ENABLE_ESCAPES: true + SLACK_MESSAGE: "The large runner release job for `${{ github.workflow }}` in `${{ github.repository }}` failed at step: `${{ env.CURRENT_STEP }}`. [View details](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})." release: name: "Release" @@ -152,9 +182,25 @@ jobs: cache: "npm" - name: Install dependencies - run: npm ci + run: | + echo "CURRENT_STEP=Install dependencies" >> $GITHUB_ENV + npm ci - name: "release" env: GITHUB_TOKEN: ${{ steps.import-secrets.outputs.VAULT_GITHUB_TOKEN }} - run: npx semantic-release + run: | + echo "CURRENT_STEP=release" >> $GITHUB_ENV + npx semantic-release + + - name: Slack Notification on Failure + if: ${{ failure() }} + uses: rtCamp/action-slack-notify@v2.3.2 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_PRIVATE_TEAM_WEBHOOK }} + SLACK_USERNAME: "spectromate" + SLACK_ICON_EMOJI: ":robot_panic:" + SLACK_COLOR: "danger" + SLACKIFY_MARKDOWN: true + ENABLE_ESCAPES: true + SLACK_MESSAGE: "The release job for `${{ github.workflow }}` in `${{ github.repository }}` failed at step: `${{ env.CURRENT_STEP }}`. [View details](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})." \ No newline at end of file