From ef575dabd85786214004d6269b7da9bd3f58137a Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Thu, 17 Apr 2025 16:35:12 +0800 Subject: [PATCH 1/7] draft --- .github/workflows/pypi-nightly-build.yml | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.github/workflows/pypi-nightly-build.yml b/.github/workflows/pypi-nightly-build.yml index 07079d22101..a5da238122c 100644 --- a/.github/workflows/pypi-nightly-build.yml +++ b/.github/workflows/pypi-nightly-build.yml @@ -113,3 +113,36 @@ jobs: with: password: ${{ secrets.PYPI_API_TOKEN }} skip-existing: true + + notify-slack-failure: + runs-on: ubuntu-latest + needs: [check-date, nightly-build-pypi, extract-build-number, wait-for-buildkite, publish-to-pypi] + if: failure() # Only run this job if any of the previous jobs failed + steps: + - name: Prepare failure message + id: message_content + run: | + TITLE_TEXT="Workflow ${{ github.workflow }} failed." + if [[ "${{ needs.wait-for-buildkite.result }}" == "failure" ]]; then + MARKDOWN_TEXT="🚨 Workflow *${{ github.workflow }}* failed at Buildkite step.\nBuildkite Log: https://buildkite.com/skypilot-1/smoke-tests/builds/${{ needs.extract-build-number.outputs.build_number }}\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Run>" + echo "message_text=${TITLE_TEXT}" >> $GITHUB_OUTPUT + echo "message_block=${MARKDOWN_TEXT}" >> $GITHUB_OUTPUT + else + MARKDOWN_TEXT="🚨 Workflow *${{ github.workflow }}* failed.\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Run>" + echo "message_text=${TITLE_TEXT}" >> $GITHUB_OUTPUT + echo "message_block=${MARKDOWN_TEXT}" >> $GITHUB_OUTPUT + fi + + - name: Notify Slack channel on failure + uses: slackapi/slack-github-action@v2.0.0 + with: + method: chat.postMessage + token: ${{ secrets.SLACK_BOT_TOKEN }} # Needs repo secret + payload: | + channel: ${{ secrets.SLACK_CHANNEL_ID }} # Needs repo secret + text: ${{ steps.message_content.outputs.message_text }} + blocks: + - type: "section" + text: + type: "mrkdwn" + text: ${{ steps.message_content.outputs.message_block }} From 1f4b92ba0965804c9dc4376ba03cbdb6c28c5bf7 Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Fri, 18 Apr 2025 16:31:37 +0800 Subject: [PATCH 2/7] test failure --- .github/workflows/pypi-nightly-build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi-nightly-build.yml b/.github/workflows/pypi-nightly-build.yml index a5da238122c..6de0a4fb013 100644 --- a/.github/workflows/pypi-nightly-build.yml +++ b/.github/workflows/pypi-nightly-build.yml @@ -27,6 +27,8 @@ jobs: outputs: buildkite_json: ${{ steps.trigger_buildkite.outputs.json }} steps: + - name: Intentionally fail for testing + run: exit 1 - name: Clone repository uses: actions/checkout@v3 - name: Set up Python 3.10 @@ -137,9 +139,9 @@ jobs: uses: slackapi/slack-github-action@v2.0.0 with: method: chat.postMessage - token: ${{ secrets.SLACK_BOT_TOKEN }} # Needs repo secret + token: ${{ secrets.SLACK_BOT_TOKEN }} payload: | - channel: ${{ secrets.SLACK_CHANNEL_ID }} # Needs repo secret + channel: ${{ secrets.SLACK_CHANNEL_ID }} text: ${{ steps.message_content.outputs.message_text }} blocks: - type: "section" From ae3c432dccefd0eca14be90b04101d2e18f091b7 Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Fri, 18 Apr 2025 16:48:29 +0800 Subject: [PATCH 3/7] better notification --- .github/workflows/pypi-nightly-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi-nightly-build.yml b/.github/workflows/pypi-nightly-build.yml index 6de0a4fb013..ae220399df5 100644 --- a/.github/workflows/pypi-nightly-build.yml +++ b/.github/workflows/pypi-nightly-build.yml @@ -126,11 +126,11 @@ jobs: run: | TITLE_TEXT="Workflow ${{ github.workflow }} failed." if [[ "${{ needs.wait-for-buildkite.result }}" == "failure" ]]; then - MARKDOWN_TEXT="🚨 Workflow *${{ github.workflow }}* failed at Buildkite step.\nBuildkite Log: https://buildkite.com/skypilot-1/smoke-tests/builds/${{ needs.extract-build-number.outputs.build_number }}\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Run>" + MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed at Buildkite step.\\nBuildkite Log: https://buildkite.com/skypilot-1/smoke-tests/builds/${{ needs.extract-build-number.outputs.build_number }}" echo "message_text=${TITLE_TEXT}" >> $GITHUB_OUTPUT echo "message_block=${MARKDOWN_TEXT}" >> $GITHUB_OUTPUT else - MARKDOWN_TEXT="🚨 Workflow *${{ github.workflow }}* failed.\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Run>" + MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed." echo "message_text=${TITLE_TEXT}" >> $GITHUB_OUTPUT echo "message_block=${MARKDOWN_TEXT}" >> $GITHUB_OUTPUT fi From 3184cee02062190dc214ed9ea45fb80185ae8d9b Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Fri, 18 Apr 2025 16:58:49 +0800 Subject: [PATCH 4/7] fix --- .github/workflows/pypi-nightly-build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/pypi-nightly-build.yml b/.github/workflows/pypi-nightly-build.yml index ae220399df5..247295c39cb 100644 --- a/.github/workflows/pypi-nightly-build.yml +++ b/.github/workflows/pypi-nightly-build.yml @@ -27,8 +27,6 @@ jobs: outputs: buildkite_json: ${{ steps.trigger_buildkite.outputs.json }} steps: - - name: Intentionally fail for testing - run: exit 1 - name: Clone repository uses: actions/checkout@v3 - name: Set up Python 3.10 From 8a1c0fae1ab88d11056f2117f4bded05da9985fa Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Fri, 18 Apr 2025 17:14:34 +0800 Subject: [PATCH 5/7] fix error --- .github/workflows/pypi-nightly-build.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pypi-nightly-build.yml b/.github/workflows/pypi-nightly-build.yml index 247295c39cb..36abbfc0363 100644 --- a/.github/workflows/pypi-nightly-build.yml +++ b/.github/workflows/pypi-nightly-build.yml @@ -124,7 +124,7 @@ jobs: run: | TITLE_TEXT="Workflow ${{ github.workflow }} failed." if [[ "${{ needs.wait-for-buildkite.result }}" == "failure" ]]; then - MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed at Buildkite step.\\nBuildkite Log: https://buildkite.com/skypilot-1/smoke-tests/builds/${{ needs.extract-build-number.outputs.build_number }}" + MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed at Buildkite step. Buildkite Log: https://buildkite.com/skypilot-1/smoke-tests/builds/${{ needs.extract-build-number.outputs.build_number }}" echo "message_text=${TITLE_TEXT}" >> $GITHUB_OUTPUT echo "message_block=${MARKDOWN_TEXT}" >> $GITHUB_OUTPUT else @@ -139,10 +139,16 @@ jobs: method: chat.postMessage token: ${{ secrets.SLACK_BOT_TOKEN }} payload: | - channel: ${{ secrets.SLACK_CHANNEL_ID }} - text: ${{ steps.message_content.outputs.message_text }} - blocks: - - type: "section" - text: - type: "mrkdwn" - text: ${{ steps.message_content.outputs.message_block }} + { + "channel": "${{ secrets.SLACK_CHANNEL_ID }}", + "text": "${{ steps.message_content.outputs.message_text }}", + "blocks": [ + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "${{ steps.message_content.outputs.message_block }}" + } + } + ] + } From ce190dc93a4aa6365f90bf04c1202f06f7219a87 Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Fri, 18 Apr 2025 17:26:32 +0800 Subject: [PATCH 6/7] href --- .github/workflows/pypi-nightly-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pypi-nightly-build.yml b/.github/workflows/pypi-nightly-build.yml index 36abbfc0363..cb0f9f7c880 100644 --- a/.github/workflows/pypi-nightly-build.yml +++ b/.github/workflows/pypi-nightly-build.yml @@ -124,7 +124,7 @@ jobs: run: | TITLE_TEXT="Workflow ${{ github.workflow }} failed." if [[ "${{ needs.wait-for-buildkite.result }}" == "failure" ]]; then - MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed at Buildkite step. Buildkite Log: https://buildkite.com/skypilot-1/smoke-tests/builds/${{ needs.extract-build-number.outputs.build_number }}" + MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed at Buildkite step. " echo "message_text=${TITLE_TEXT}" >> $GITHUB_OUTPUT echo "message_block=${MARKDOWN_TEXT}" >> $GITHUB_OUTPUT else From 9ff9cf08728406dda80bd66b3a8cd69d61eda3ec Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Tue, 22 Apr 2025 12:58:39 +0800 Subject: [PATCH 7/7] add commit in the message --- .github/workflows/pypi-nightly-build.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pypi-nightly-build.yml b/.github/workflows/pypi-nightly-build.yml index cb0f9f7c880..bcfcbb476d5 100644 --- a/.github/workflows/pypi-nightly-build.yml +++ b/.github/workflows/pypi-nightly-build.yml @@ -123,12 +123,15 @@ jobs: id: message_content run: | TITLE_TEXT="Workflow ${{ github.workflow }} failed." + COMMIT_SHA="${{ github.sha }}" + COMMIT_URL="${{ github.server_url }}/${{ github.repository }}/commit/${COMMIT_SHA}" + SHORT_SHA=$(echo "$COMMIT_SHA" | cut -c1-7) if [[ "${{ needs.wait-for-buildkite.result }}" == "failure" ]]; then - MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed at Buildkite step. " + MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed at Buildkite step for commit <${COMMIT_URL}|${SHORT_SHA}>. " echo "message_text=${TITLE_TEXT}" >> $GITHUB_OUTPUT echo "message_block=${MARKDOWN_TEXT}" >> $GITHUB_OUTPUT else - MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed." + MARKDOWN_TEXT="🚨 Workflow <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|*${{ github.workflow }}*> failed for commit <${COMMIT_URL}|${SHORT_SHA}>." echo "message_text=${TITLE_TEXT}" >> $GITHUB_OUTPUT echo "message_block=${MARKDOWN_TEXT}" >> $GITHUB_OUTPUT fi