60 lines
1.8 KiB
YAML
60 lines
1.8 KiB
YAML
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
checking:
|
|
runs-on: docker
|
|
container: node:lts
|
|
steps:
|
|
- name: Checking Out Repository Code
|
|
uses: https://code.forgejo.org/actions/checkout@v3
|
|
- name:
|
|
run: npm install
|
|
- name: Astro checks
|
|
run: npm run astro check
|
|
|
|
build-site:
|
|
needs: [checking]
|
|
runs-on: docker
|
|
container: node:lts
|
|
steps:
|
|
- name: Install required packages
|
|
run: npm install
|
|
- name: Build static site
|
|
run: npm run build
|
|
- name: Delete unnecessary data files
|
|
run: rm -r public/assets/data/
|
|
- name: Add missing config for binserve
|
|
run: cp serve.json public
|
|
- uses: https://code.forgejo.org/actions/upload-artifact@v4
|
|
with:
|
|
name: static-site
|
|
path: public/
|
|
|
|
deploy-site:
|
|
needs: [build-site]
|
|
runs-on: docker
|
|
env:
|
|
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
|
|
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
|
|
SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
|
|
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
steps:
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: static-site
|
|
- name: Setup ssh
|
|
uses: ./.forgejo/workflows/ssh-setup.yml
|
|
with:
|
|
DEPLOY_HOST: $DEPLOY_HOST
|
|
SSH_KNOWN_HOSTS: $SSH_KNOWN_HOSTS
|
|
SSH_PRIVATE_KEY: $SSH_PRIVATE_KEY
|
|
- name: Stopping screen session, cleaning
|
|
run: ssh $DEPLOY_USER@$DEPLOY_HOST "screen -X -S fgo-ta_com-public kill; rm -r -f fgo-ta_com/public/*;"
|
|
- name: Copying to proxmox machine
|
|
run: rsync -az --stats public/* $DEPLOY_USER@$DEPLOY_HOST:~/fgo-ta_com/public
|
|
- name: Restarting screen session
|
|
run: ssh $DEPLOY_USER@$DEPLOY_HOST 'PATH="$HOME/.local/bin:$PATH"; cd fgo-ta_com; find public -maxdepth 1 -printf "%p\n"; screen -S fgo-ta_com-public -dm serve public/ -p 9200'
|