diff --git a/.forgejo/workflows/deploy-metrics.yml b/.forgejo/workflows/deploy-metrics.yml index 51764969..336f322a 100644 --- a/.forgejo/workflows/deploy-metrics.yml +++ b/.forgejo/workflows/deploy-metrics.yml @@ -71,9 +71,25 @@ jobs: echo "::warning title=SSH без проверки подлинности хоста::${SRC} не задан — ключ хоста НЕ проверяется (#3029)." fi + # #3078: канал доставки алертов приходит ИЗ СЕКРЕТОВ ACTIONS, а не только + # из окружения инфраструктурного хоста. Раньше эти три переменные брались + # исключительно из файла окружения на машине — то есть включить алерты + # можно было только правкой прод-файла руками по ssh. Это и держало #3078 + # открытым дольше нужного: стек был готов, а положить в него токен было + # некуда, кроме как в обход репозитория. + # + # Порядок разрешения важен: инжектированные значения ставятся ДО того, как + # скрипт подхватит окружение машины, поэтому файл на хосте, если ключи в + # нём заданы, ПЕРЕОПРЕДЕЛЯЕТ секреты. Так и задумано — у машины остаётся + # последнее слово, а секреты работают как разумный дефолт. - name: Поднять серверный стек uses: appleboy/ssh-action@v1.0.3 + env: + METRICS_TELEGRAM_BOT_TOKEN: ${{ secrets.METRICS_TELEGRAM_BOT_TOKEN }} + METRICS_TELEGRAM_CHAT_ID: ${{ secrets.METRICS_TELEGRAM_CHAT_ID }} + METRICS_TELEGRAM_TOPIC_ID: ${{ secrets.METRICS_TELEGRAM_TOPIC_ID }} with: + envs: METRICS_TELEGRAM_BOT_TOKEN,METRICS_TELEGRAM_CHAT_ID,METRICS_TELEGRAM_TOPIC_ID host: ${{ secrets.INFRA_DEPLOY_HOST || secrets.DEPLOY_HOST }} username: ${{ secrets.INFRA_DEPLOY_USER || secrets.DEPLOY_USER }} key: ${{ secrets.INFRA_DEPLOY_SSH_KEY || secrets.DEPLOY_SSH_KEY }}