feat(workflows): add CI/CD pipeline for static site

Set up a GitHub Actions workflow to build and deploy the static site from the 'static' branch to the 'pages' branch. This workflow includes steps to install dependencies, generate the static site using Python, and handle deployment through Git configuration and git commands.
This commit is contained in:
Kumi 2024-07-01 09:58:59 +02:00
parent f9fa18a8c1
commit d03828724f
Signed by: kumi
GPG key ID: ECBCC9082395383F

View file

@ -0,0 +1,50 @@
name: Build and Deploy Static Site
on:
push:
branches:
- static
jobs:
build:
runs-on: node:20-bookworm
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install dependencies
run: |
apt update
apt install -y python3 python3-pip
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Generate static site
run: python main.py
- name: Deploy to pages branch
run: |
# Configure Git
git config --global user.name "Forgejo"
git config --global user.email "noreply@private.coffee"
# Move generated static site files to a temporary location
mv build ../static_site_temp
# Create a new orphan branch named 'pages'
git checkout --orphan pages
# Remove all files from the working directory
git rm -rf .
# Move the static site files back to the working directory
mv ../static_site_temp/* ./
mv ../static_site_temp/.* ./ 2>/dev/null || true
# Add and commit the static site files
git add .
git commit -m "Deploy static site"
# Force push to the 'pages' branch
git push origin pages --force