ci: CI на тегах v*, проверка DEPLOY_*, документация деплоя и тегов
Some checks failed
CI / test (push) Has been cancelled
Some checks failed
CI / test (push) Has been cancelled
Made-with: Cursor
This commit is contained in:
@ -25,10 +25,26 @@ jobs:
|
||||
echo "ref=${{ github.ref_name }}" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
# Без секретов appleboy/ssh-action падает с «missing server host» — даём явную подсказку.
|
||||
- name: Проверить секреты деплоя
|
||||
env:
|
||||
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
|
||||
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
|
||||
DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}
|
||||
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
|
||||
run: |
|
||||
ok=0
|
||||
[ -n "$DEPLOY_HOST" ] || { echo "::error::Секрет DEPLOY_HOST пустой. Forgejo → репозиторий → Настройки → Actions → Secrets."; ok=1; }
|
||||
[ -n "$DEPLOY_USER" ] || { echo "::error::Секрет DEPLOY_USER пустой."; ok=1; }
|
||||
[ -n "$DEPLOY_PATH" ] || { echo "::error::Секрет DEPLOY_PATH пустой (каталог клона на сервере, напр. /opt/onGuard24)."; ok=1; }
|
||||
[ -n "$DEPLOY_SSH_KEY" ] || { echo "::error::Секрет DEPLOY_SSH_KEY пустой (приватный SSH-ключ целиком, PEM)."; ok=1; }
|
||||
exit "$ok"
|
||||
|
||||
- name: SSH — fetch, checkout, docker compose
|
||||
uses: appleboy/ssh-action@v1.2.0
|
||||
with:
|
||||
host: ${{ secrets.DEPLOY_HOST }}
|
||||
port: "22"
|
||||
username: ${{ secrets.DEPLOY_USER }}
|
||||
key: ${{ secrets.DEPLOY_SSH_KEY }}
|
||||
script_stop: true
|
||||
@ -38,6 +54,7 @@ jobs:
|
||||
cd "${{ secrets.DEPLOY_PATH }}"
|
||||
git fetch origin --tags --prune
|
||||
git checkout "${{ steps.pick.outputs.ref }}"
|
||||
# Теги не дают refs/remotes/origin/<тег> — только ветки; для v* срабатывает else.
|
||||
if git show-ref --verify --quiet "refs/remotes/origin/${{ steps.pick.outputs.ref }}"; then
|
||||
git reset --hard "origin/${{ steps.pick.outputs.ref }}"
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user