pds-dash/.forgejo/workflows/deploy.yaml
2025-05-29 04:28:10 -04:00

69 lines
1.8 KiB
YAML

name: Deploy
on:
push:
branches:
- main
- astra/ci
jobs:
deploy:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout main repo
uses: actions/checkout@v4
- name: Checkout overrides repo
uses: actions/checkout@v4
with:
repository: scientific-witchery/pds-dash-overrides
token: ${{ secrets.OVERRIDES_TOKEN}}
path: overrides
- name: Copy config file to root
run: cp overrides/config.ts ./config.ts
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Setup Deno
uses: https://github.com/denoland/setup-deno@v2
- name: Install dependencies
run: deno install
- name: Build project
run: deno task build
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
cat > ~/.ssh/config << EOF
Host deploy
HostName ${{ vars.SERVER_HOST }}
User ${{ vars.SERVER_USER }}
IdentityFile ~/.ssh/id_ed25519
StrictHostKeyChecking accept-new
BatchMode yes
PasswordAuthentication no
PubkeyAuthentication yes
EOF
chmod 600 ~/.ssh/config
ssh-keyscan -H ${{ vars.SERVER_HOST }} >> ~/.ssh/known_hosts
echo "Deploying to ${{ vars.SERVER_HOST }} as ${{ vars.SERVER_USER }} to /var/www/pds/${{ github.ref_name }}"
- name: Debug SSH Connection
run: ssh -v deploy echo "SSH Connection Successful"
- name: Create folder if not exists
run: ssh deploy "mkdir -p /var/www/pds/${{ github.ref_name }}"
- name: Deploy via SCP
run: scp -r ./dist/* deploy:/var/www/pds/${{ github.ref_name }}