diff --git a/.github/workflows/cloudflare-pages.yml b/.github/workflows/cloudflare-pages.yml index b0f6497..d34144d 100644 --- a/.github/workflows/cloudflare-pages.yml +++ b/.github/workflows/cloudflare-pages.yml @@ -46,59 +46,46 @@ jobs: restore-keys: | ailog-bin-${{ runner.os }} - - name: Check and update ailog binary - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Setup ailog binary 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" + # Get expected version from Cargo.toml + EXPECTED_VERSION=$(grep '^version' Cargo.toml | cut -d'"' -f2) + echo "Expected version from Cargo.toml: $EXPECTED_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" + echo "Current binary 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 + # Check OS + OS="${{ runner.os }}" + echo "Runner OS: $OS" + + # Use pre-packaged binary if version matches or extract from tar.gz + if [ "$CURRENT_VERSION" = "$EXPECTED_VERSION" ]; then echo "Binary is up to date" chmod +x ./bin/ailog + elif [ "$OS" = "Linux" ] && [ -f "./bin/ailog-linux-x86_64.tar.gz" ]; then + echo "Extracting ailog from pre-packaged tar.gz..." + cd bin + tar -xzf ailog-linux-x86_64.tar.gz + chmod +x ailog + cd .. + + # Verify extracted version + EXTRACTED_VERSION=$(./bin/ailog --version 2>/dev/null || echo "unknown") + echo "Extracted binary version: $EXTRACTED_VERSION" + + if [ "$EXTRACTED_VERSION" != "$EXPECTED_VERSION" ]; then + echo "Warning: Binary version mismatch. Expected $EXPECTED_VERSION but got $EXTRACTED_VERSION" + fi + else + echo "Error: No suitable binary found for OS: $OS" + exit 1 fi - name: Build site with ailog diff --git a/.github/workflows/gh-pages-fast.yml b/.github/workflows/gh-pages-fast.yml index a9afc7c..d5afdff 100644 --- a/.github/workflows/gh-pages-fast.yml +++ b/.github/workflows/gh-pages-fast.yml @@ -23,59 +23,46 @@ jobs: restore-keys: | ailog-bin-${{ runner.os }} - - name: Check and update ailog binary - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Setup ailog binary 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" + # Get expected version from Cargo.toml + EXPECTED_VERSION=$(grep '^version' Cargo.toml | cut -d'"' -f2) + echo "Expected version from Cargo.toml: $EXPECTED_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" + echo "Current binary 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 + # Check OS + OS="${{ runner.os }}" + echo "Runner OS: $OS" + + # Use pre-packaged binary if version matches or extract from tar.gz + if [ "$CURRENT_VERSION" = "$EXPECTED_VERSION" ]; then echo "Binary is up to date" chmod +x ./bin/ailog + elif [ "$OS" = "Linux" ] && [ -f "./bin/ailog-linux-x86_64.tar.gz" ]; then + echo "Extracting ailog from pre-packaged tar.gz..." + cd bin + tar -xzf ailog-linux-x86_64.tar.gz + chmod +x ailog + cd .. + + # Verify extracted version + EXTRACTED_VERSION=$(./bin/ailog --version 2>/dev/null || echo "unknown") + echo "Extracted binary version: $EXTRACTED_VERSION" + + if [ "$EXTRACTED_VERSION" != "$EXPECTED_VERSION" ]; then + echo "Warning: Binary version mismatch. Expected $EXPECTED_VERSION but got $EXTRACTED_VERSION" + fi + else + echo "Error: No suitable binary found for OS: $OS" + exit 1 fi - name: Setup Hugo diff --git a/bin/ailog-linux-x86_64 b/bin/ailog-linux-x86_64 deleted file mode 100755 index 1f7a0bd..0000000 Binary files a/bin/ailog-linux-x86_64 and /dev/null differ diff --git a/bin/ailog-linux-x86_64.tar.gz b/bin/ailog-linux-x86_64.tar.gz new file mode 100644 index 0000000..7564ab3 Binary files /dev/null and b/bin/ailog-linux-x86_64.tar.gz differ