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..." JSON_PAYLOAD=$(jq -n \ --arg token "${{ env.token }}" \ --arg to "${{ env.to }}" \ --arg fmt "MarkdownV2" \ --arg msg "*${{ github.repository }}* - [${{ inputs.name }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_number }}) was *${{ inputs.result }}* by ${{ github.event.sender.login }} ${{ env.ICON }}" \ '{token: $token, chatId: $to, parseMode: $fmt, text: $msg}') # Отправка запроса curl -s -X POST "https://myteam.mail.ru/bot/v1/messages/sendText" \ -H "Content-Type: application/json" \ -d "$JSON_PAYLOAD" 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