Skip to content

feat: slack notification action #13

feat: slack notification action

feat: slack notification action #13

Workflow file for this run

# Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Release
on:
push:
branches:
- main
- feat/slack-notification-action
permissions:
contents: write # Create releases and tags
issues: write # Comment on released issues
pull-requests: write # Comment on released PRs
jobs:
release:
name: Semantic Release
runs-on: ubuntu-latest # FIXME: Replace with NV Runners
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for semantic-release
token: ${{ secrets.GITHUB_TOKEN }}
- name: Semantic Release
id: semantic
uses: ./.github/actions/semantic-release
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Update Major Version Tag
if: steps.semantic.outputs.new-release-published == 'true'
run: |
NEW_VERSION="v${{ steps.semantic.outputs.new-release-version }}"
MAJOR_VERSION="v${{ steps.semantic.outputs.new-release-major-version }}"
# Configure git
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
# Force update major version tag (e.g., v1 points to latest v1.x.x)
git tag -fa "$MAJOR_VERSION" -m "Update $MAJOR_VERSION to $NEW_VERSION"
git push origin "$MAJOR_VERSION" --force
echo "✅ Updated major version tag: $MAJOR_VERSION -> $NEW_VERSION"
- name: Notify Slack - Release Published
if: steps.semantic.outputs.new-release-published == 'true'
uses: ./.github/actions/slack-notify
with:
slack-bot-token: ${{ secrets.CDS_SLACK_BOT_OAUTH_TOKEN }}
channel-id: C0A163X82VC
payload: |
{
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "🎉 New Release Published"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Repository:*\n${{ github.repository }}"
},
{
"type": "mrkdwn",
"text": "*Version:*\nv${{ steps.semantic.outputs.new-release-version }}"
},
{
"type": "mrkdwn",
"text": "*Released by:*\n${{ github.actor }}"
},
{
"type": "mrkdwn",
"text": "*Major Tag:*\nv${{ steps.semantic.outputs.new-release-major-version }}"
}
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Release Notes:*\n${{ steps.semantic.outputs.new-release-notes }}"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "View Release"
},
"url": "${{ github.server_url }}/${{ github.repository }}/releases/tag/v${{ steps.semantic.outputs.new-release-version }}"
},
{
"type": "button",
"text": {
"type": "plain_text",
"text": "View Workflow"
},
"url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
}
]
}
]
}
- name: Notify Slack - No Release
if: always()
uses: ./.github/actions/slack-notify
with:
slack-bot-token: ${{ secrets.CDS_SLACK_BOT_OAUTH_TOKEN }}
channel-id: C0A163X82VC
errors: 'false'
message: |
ℹ️ *No New Release*
*Repository:* ${{ github.repository }}
*Branch:* ${{ github.ref_name }}
*Commit:* `${{ github.sha }}`
*Author:* ${{ github.actor }}
No releasable changes were found in this push.
<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Workflow>
- name: Notify Slack - Release Failed
if: failure()
uses: ./.github/actions/slack-notify
with:
slack-bot-token: ${{ secrets.CDS_SLACK_BOT_OAUTH_TOKEN }}
channel-id: C0A163X82VC
errors: 'false'
message: |
❌ *Release Workflow Failed*
*Repository:* ${{ github.repository }}
*Branch:* ${{ github.ref_name }}
*Triggered by:* ${{ github.actor }}
The release workflow encountered an error. Please check the logs for details.
<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Logs>