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 | awk '{print $2}' || 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..." curl -sL -H "Authorization: Bearer $GITHUB_TOKEN" \ https://github.com/${{ github.repository }}/releases/download/$LATEST_VERSION/ailog-linux-x86_64.tar.gz | tar -xzf - mv ailog ./bin/ailog chmod +x ./bin/ailog echo "Updated to version: $(./bin/ailog --version)" 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