Files
leagues-tools/.gitea/workflows/build-deploy.yml
sonderau d50fb655b1
All checks were successful
Build & Deploy OS League Tools / build-and-deploy (push) Successful in 35s
Removed dev branch from runner, as this is live updated via WSS after local edits.
Because this runs via NPM RUN DEV, on an adjacent port to 3000, the CICD runner is superfluous here.
2026-01-22 08:45:31 +08:00

69 lines
2.4 KiB
YAML

name: Build & Deploy OS League Tools
on:
push:
branches:
- main
env:
FRONTEND_HOST: psg-leagues-tools-frontend
jobs:
build-and-deploy:
runs-on: ["cicd"]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set environment variables
run: |
if [ "${{ github.ref_name }}" = "main" ]; then
echo "DEPLOY_PATH=/home/sonder/leagues-tools/os-league-tools-master" >> $GITHUB_ENV
echo "SERVICE_NAME=os-league-tools" >> $GITHUB_ENV
echo "ENVIRONMENT=production" >> $GITHUB_ENV
else
echo "DEPLOY_PATH=/home/sonder/leagues-tools-dev/os-league-tools-master" >> $GITHUB_ENV
echo "SERVICE_NAME=os-league-tools-dev" >> $GITHUB_ENV
echo "ENVIRONMENT=development" >> $GITHUB_ENV
fi
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: os-league-tools-master/package-lock.json
- name: Install dependencies
working-directory: os-league-tools-master
run: npm ci
- name: Build production bundle
working-directory: os-league-tools-master
run: npm run build
env:
CI: false
- name: Archive build
working-directory: os-league-tools-master
run: tar -czf build.tar.gz build/
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -H ${{ env.FRONTEND_HOST }} >> ~/.ssh/known_hosts
- name: Deploy to frontend server
run: |
echo "Deploying ${{ env.ENVIRONMENT }} to ${{ env.DEPLOY_PATH }}"
ssh sonder@${{ env.FRONTEND_HOST }} "sudo systemctl stop ${{ env.SERVICE_NAME }} || true"
ssh sonder@${{ env.FRONTEND_HOST }} "mkdir -p ${{ env.DEPLOY_PATH }}"
ssh sonder@${{ env.FRONTEND_HOST }} "rm -rf ${{ env.DEPLOY_PATH }}/build"
scp os-league-tools-master/build.tar.gz sonder@${{ env.FRONTEND_HOST }}:/tmp/
ssh sonder@${{ env.FRONTEND_HOST }} "tar -xzf /tmp/build.tar.gz -C ${{ env.DEPLOY_PATH }}/"
ssh sonder@${{ env.FRONTEND_HOST }} "rm /tmp/build.tar.gz"
ssh sonder@${{ env.FRONTEND_HOST }} "sudo systemctl start ${{ env.SERVICE_NAME }}"
echo "Deployed ${{ env.ENVIRONMENT }} successfully!"