Files
Openterface_assets/.github/workflows/deploy.yml

46 lines
1.5 KiB
YAML

name: Deploy to GitHub Pages
on:
push:
branches:
- main
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Install dependencies for minification and image conversion
run: |
sudo apt-get update
sudo apt-get install -y webp
npm install -g uglify-js csso-cli
- name: Build and minify project
run: |
mkdir -p dist/css
mkdir -p dist/js
mkdir -p dist/images
# Copy all images to dist/images
find src/images -type f -exec cp --parents {} dist \; || echo "No images to copy"
# Convert images to WebP format
find src/images -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" \) -exec sh -c 'cwebp "$1" -o "dist/images/$(basename "${1%.*}.webp")"' _ {} \;
# Minify CSS files
find src/css -type f -name "*.css" -exec sh -c 'csso "$1" -o "dist/css/$(basename "${1%.css}.min.css")"' _ {} \;
# Minify JS files
find src/js -type f -name "*.js" -exec sh -c 'uglifyjs "$1" -o "dist/js/$(basename "${1%.js}.min.js")"' _ {} \;
- name: Deploy to gh-pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
publish_branch: gh-pages