Files
log/.github/workflows/gh-pages-fast.yml

100 lines
3.2 KiB
YAML

name: github pages (fast)
on:
push:
branches:
- main
paths-ignore:
- 'src/**'
- 'Cargo.toml'
- 'Cargo.lock'
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache ailog binary
uses: actions/cache@v4
with:
path: ./bin
key: ailog-bin-${{ runner.os }}
restore-keys: |
ailog-bin-${{ runner.os }}
- name: Check and update ailog binary
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Get latest release version
LATEST_VERSION=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
https://api.github.com/repos/${{ github.repository }}/releases/latest | jq -r .tag_name)
echo "Latest version: $LATEST_VERSION"
# Check current binary version if exists
mkdir -p ./bin
if [ -f "./bin/ailog" ]; then
CURRENT_VERSION=$(./bin/ailog --version 2>/dev/null || echo "unknown")
echo "Current version: $CURRENT_VERSION"
else
CURRENT_VERSION="none"
echo "No binary found"
fi
# Download if version is different or binary doesn't exist
if [ "$CURRENT_VERSION" != "${LATEST_VERSION#v}" ]; then
echo "Downloading ailog $LATEST_VERSION..."
# Get download URL for the asset
DOWNLOAD_URL=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
https://api.github.com/repos/${{ github.repository }}/releases/tags/$LATEST_VERSION | \
jq -r '.assets[] | select(.name == "ailog-linux-x86_64.tar.gz") | .url')
if [ -z "$DOWNLOAD_URL" ] || [ "$DOWNLOAD_URL" = "null" ]; then
echo "Error: Could not find download URL for ailog-linux-x86_64.tar.gz"
exit 1
fi
# Download using GitHub API with Accept header
echo "Downloading from: $DOWNLOAD_URL"
curl -L -H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/octet-stream" \
"$DOWNLOAD_URL" -o ailog-linux-x86_64.tar.gz
# Check if download was successful
if [ ! -f "ailog-linux-x86_64.tar.gz" ] || [ ! -s "ailog-linux-x86_64.tar.gz" ]; then
echo "Error: Download failed"
exit 1
fi
# Extract the binary
tar -xzf ailog-linux-x86_64.tar.gz
mv ailog ./bin/ailog
chmod +x ./bin/ailog
rm ailog-linux-x86_64.tar.gz
echo "Updated to version: $(./bin/ailog --version 2>/dev/null)"
else
echo "Binary is up to date"
chmod +x ./bin/ailog
fi
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: "0.139.2"
extended: true
- name: Build with ailog
env:
TZ: "Asia/Tokyo"
run: |
# Use pre-built ailog binary instead of cargo build
./bin/ailog build --output ./public
touch ./public/.nojekyll
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
publish_branch: gh-pages