feat: Support thread_ts parameter to post the new message as a thread #553
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request_target: | |
push: | |
branches: | |
- main | |
jobs: | |
unit_tests: | |
runs-on: ubuntu-latest | |
environment: staging | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- run: npm ci && npm run build | |
- run: npm test | |
integration_test_botToken: | |
runs-on: ubuntu-latest | |
environment: staging | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- run: npm ci && npm run build | |
- name: Post message to Slack via botToken | |
id: slackToken | |
uses: ./ | |
with: | |
channel-id: ${{ secrets.SLACK_CHANNEL_ID }} | |
slack-message: 'CI Post from slack-send GitHub Action! Succeeded!!' | |
# payload: "{\"key\":\"value\",\"foo\":\"bar\"}" | |
env: | |
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | |
# Use the output from the `slackToken` step | |
- name: Check Action output is not empty | |
run: test -n "${{ steps.slackToken.outputs.time }}" | |
- name: Post Threaded Response | |
id: slackThreadResponse | |
uses: ./ | |
with: | |
channel-id: ${{ secrets.SLACK_CHANNEL_ID }} | |
payload: | | |
{ | |
"text": "This message should be posted as a response in thread", | |
"thread_ts": "${{ steps.slackToken.outputs.thread_ts }}" | |
} | |
env: | |
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | |
integration_test_webhook: | |
runs-on: ubuntu-latest | |
environment: staging | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- run: npm ci && npm run build | |
- run: echo "${{ github.event_name }}" | |
- name: push trigger | |
# Save commit url from GitHub Trigger event payload to URL env | |
if: "contains(github.event_name, 'push')" | |
run: | | |
url=${{ github.event.head_commit.url }} | |
echo "URL=$url" >> "$GITHUB_ENV" | |
- name: pull request trigger | |
# Save pull request url from GitHub Trigger event payload to URL env | |
if: "contains(github.event_name, 'pull_request')" | |
run: | | |
url=${{ github.event.pull_request.url }} | |
echo "URL=$url" >> "$GITHUB_ENV" | |
- name: Post message to Slack via webhook | |
id: slackWorkflow | |
uses: ./ | |
with: | |
# Workflow builder webhooks need to know the name of the keys in the payload in advance. Without normalizing, the github context payload keys can differ based on the GitHub trigger event type | |
# Normalized payload with info pulled out from GitHub trigger event | |
payload: "{\"author\":\"${{ github.event.sender.login }}\",\"url\":\"${{ env.URL}}\", \"repoName\":\"${{ github.event.repository.full_name }}\", \"status\":\"${{ job.status }}\"}" | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
# Use the output from the `slackWorkflow` step | |
- name: Check Action output is not empty | |
run: test -n "${{ steps.slackWorkflow.outputs.time }}" | |
integration_test_incoming_webhook: | |
runs-on: ubuntu-latest | |
environment: staging | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- run: npm ci && npm run build | |
- run: echo "${{ github.event_name }}" | |
- name: Post message to Slack via incoming webhook | |
id: slackIncoming | |
uses: ./ | |
with: | |
# block kit payload | |
payload: "{\"text\":\"Incoming Webhook test for slack send\", \"blocks\":[{\"type\":\"section\",\"text\":{\"type\":\"plain_text\",\"text\":\"A post by Slack Send GitHub Action. Testing Incoming webhooks\",\"emoji\":true}}]}" | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_INCOMING_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
# Use the output from the `slackIncoming` step | |
- name: Check Action output is not empty | |
run: test -n "${{ steps.slackIncoming.outputs.time }}" | |
integration_test_file_payload: | |
runs-on: ubuntu-latest | |
environment: staging | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- run: npm ci && npm run build | |
- name: Dump out GitHub Context | |
run: echo $JSON | |
env: | |
JSON: ${{ toJSON(github) }} | |
- name: Post message to Slack with Payload path | |
id: slackPayloadFile | |
uses: ./ | |
with: | |
payload-file-path: ./.github/resources/payload-notification.json | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_INCOMING_WEBHOOK_URL }} | |
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | |
JOB_STATUS: ${{ job.status }} | |
ATTACHMENT_COLOR: ${{ (job.status == 'success' && 'good') || (job.status == 'failure' && 'danger') || 'warning' }} | |
# Use the output from the `slackIncoming` step | |
- name: Check Action output is not empty | |
run: test -n "${{ steps.slackPayloadFile.outputs.time }}" |