49 lines
1.3 KiB
YAML
49 lines
1.3 KiB
YAML
name: Build and Deploy
|
||
|
||
on:
|
||
# Trigger the workflow every time you push to the `main` branch
|
||
# Using a different branch name? Replace `main` with your branch’s name
|
||
push:
|
||
branches: [ main ]
|
||
# Allows you to run this workflow manually from the Actions tab on GitHub.
|
||
workflow_dispatch:
|
||
|
||
# Allow this job to clone the repo and create a page deployment
|
||
permissions:
|
||
contents: read
|
||
pages: write
|
||
id-token: write
|
||
|
||
jobs:
|
||
build:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: Checkout repository
|
||
uses: actions/checkout@v4
|
||
|
||
- name: Setup pnpm
|
||
uses: pnpm/action-setup@v2
|
||
|
||
- name: Install system dependencies
|
||
run: sudo apt-get update && sudo apt-get install -y rsync build-essential libvips-dev
|
||
|
||
- name: Setup SSH key
|
||
run: |
|
||
mkdir -p ~/.ssh
|
||
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
||
chmod 600 ~/.ssh/id_rsa
|
||
eval $(ssh-agent -s)
|
||
ssh-add ~/.ssh/id_rsa
|
||
|
||
- name: Add server to known_hosts
|
||
run: ssh-keyscan ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts
|
||
|
||
- name: Install dependencies
|
||
run: pnpm install
|
||
|
||
- name: Build Astro site
|
||
run: pnpm run build
|
||
|
||
- name: Deploy to server
|
||
run: rsync -avzP ./dist/ root@${{ secrets.SERVER_IP }}:/var/www/html/
|