60 lines
2.0 KiB
YAML
60 lines
2.0 KiB
YAML
name: 'notify'
|
||
description: 'Send VK Teams notification'
|
||
|
||
inputs:
|
||
result:
|
||
required: false
|
||
default: "failure"
|
||
type: string
|
||
name:
|
||
required: false
|
||
type: string
|
||
default: build
|
||
|
||
runs:
|
||
using: 'composite'
|
||
steps:
|
||
- name: Resolve token/from env if missing
|
||
shell: bash
|
||
run: |
|
||
if [ -z "${{ inputs.token }}" ] && [ -n "${VK_TEAMS_BOT_TOKEN}" ]; then
|
||
echo "token=${VK_TEAMS_BOT_TOKEN}" >> $GITHUB_ENV
|
||
fi
|
||
if [ -z "${{ inputs.to }}" ] && [ -n "${VK_TEAMS_CHAT_ID}" ]; then
|
||
echo "to=${VK_TEAMS_CHAT_ID}" >> $GITHUB_ENV
|
||
fi
|
||
|
||
- name: Set icon
|
||
id: icon
|
||
shell: bash
|
||
run: |
|
||
case "${{ inputs.result }}" in
|
||
success) echo "ICON=✅" >> $GITHUB_ENV ;;
|
||
failure) echo "ICON=❌" >> $GITHUB_ENV ;;
|
||
canceled) echo "ICON=🤦" >> $GITHUB_ENV ;;
|
||
started) echo "ICON=⚠️" >> $GITHUB_ENV ;;
|
||
*) echo "ICON=ℹ️" >> $GITHUB_ENV ;;
|
||
esac
|
||
|
||
- name: Notify VK Teams (native)
|
||
if: always()
|
||
shell: bash
|
||
continue-on-error: true
|
||
run: |
|
||
echo "[DEBUG] Sending VK Teams notification..."
|
||
curl -G "https://myteam.mail.ru/bot/v1/messages/sendText" \
|
||
--data-urlencode "token=${{ env.token }}" \
|
||
--data-urlencode "chatId=${{ env.to }}" \
|
||
--data-urlencode "parseMode=MarkdownV2" \
|
||
--data-urlencode "text=*${{ github.repository }}* - [${{ inputs.name }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_number }}) was *${{ inputs.result }}* by ${{ github.event.sender.login }} ${{ env.ICON }}"
|
||
|
||
CODE=$?
|
||
if [ $CODE -ne 0 ]; then
|
||
echo "[WARN] VK Teams notification failed with exit code $CODE"
|
||
else
|
||
echo "[INFO] VK Teams notification sent successfully"
|
||
fi
|
||
|
||
# Делаем паузу, чтобы убедиться, что сообщение дошло
|
||
echo "[DEBUG] Sleeping 5s to ensure delivery..."
|
||
sleep 5 |