Skip to content

Update build.yml

Update build.yml #165

Workflow file for this run

name: Build magazine
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
ZINE_VERSION: v0.16.0
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
# - uses: dtolnay/rust-toolchain@stable
# - name: Install zine
# run: cargo install zine
- name: Build magazine
run: |
wget https://github.com/zineland/zine/releases/download/$ZINE_VERSION/zine-x86_64-unknown-linux-gnu.tar.gz -O zine.tar.gz
tar xvf zine.tar.gz
./zine build
- name: Check for symlinks and hard links
run: |
if find ./build -type l | grep .; then
echo "Error: Symlinks found in build output. Remove them before deploying."
exit 1
fi
if find ./build ! -type d -links +1 | grep .; then
echo "Error: Hard links found in build output. Remove them before deploying."
exit 1
fi
- name: Check build size
run: |
du -sh ./build
size=$(du -s ./build | cut -f1)
if [ "$size" -gt 10485760 ]; then # 10GB in KB
echo "Error: Build artifact exceeds 10GB limit."
exit 1
fi
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: github-pages
path: ./build
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4