Files
publish/.gitea/workflows/deploy.yml
voson cdb53bde62
Some checks failed
deploy / build-and-deploy (push) Failing after 11s
ci: inline deploy key setup for rsync
2026-02-03 11:29:55 +08:00

58 lines
1.7 KiB
YAML

name: deploy
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install
run: npm ci
- name: Build
env:
SITE_URL: ${{ secrets.SITE_URL }}
PUBLIC_NEWSLETTER_ACTION: ${{ secrets.PUBLIC_NEWSLETTER_ACTION }}
PUBLIC_NEWSLETTER_EMAIL_FIELD: ${{ secrets.PUBLIC_NEWSLETTER_EMAIL_FIELD }}
PUBLIC_NEWSLETTER_TITLE: ${{ secrets.PUBLIC_NEWSLETTER_TITLE }}
PUBLIC_NEWSLETTER_DESCRIPTION: ${{ secrets.PUBLIC_NEWSLETTER_DESCRIPTION }}
run: npm run build
- name: Write deploy key
if: ${{ secrets.DEPLOY_SSH_KEY != '' }}
env:
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
run: |
mkdir -p ~/.ssh
python3 - <<'PY'
import os
from pathlib import Path
key = os.environ['DEPLOY_SSH_KEY']
p = Path.home() / '.ssh' / 'deploy_key'
p.write_text(key, encoding='utf-8')
PY
chmod 600 ~/.ssh/deploy_key
- name: Add known_hosts
if: ${{ secrets.DEPLOY_SSH_KEY != '' }}
run: |
mkdir -p ~/.ssh
ssh-keyscan -p "${{ secrets.DEPLOY_SSH_PORT }}" -H "${{ secrets.DEPLOY_SSH_HOST }}" >> ~/.ssh/known_hosts
- name: Deploy via rsync
if: ${{ secrets.DEPLOY_SSH_KEY != '' }}
run: |
rsync -az --delete -e "ssh -i ~/.ssh/deploy_key -p ${{ secrets.DEPLOY_SSH_PORT }}" dist/ "${{ secrets.DEPLOY_SSH_USER }}@${{ secrets.DEPLOY_SSH_HOST }}:${{ secrets.DEPLOY_PATH }}/"