Skip to content

different docs deployment #6

different docs deployment

different docs deployment #6

Workflow file for this run

name: Deploy docs to Pages
on:
# TODO remove this trigger before merging
pull_request:
release:
types:
- created
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
# this cancels workflows currently in progress if you start a new one
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Create temp directory for docs
run: mkdir -p ./temp_docs
- name: Get all releases
id: releases
run: |
echo "releases=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/releases" | jq -c '.')" >> $GITHUB_OUTPUT
- name: Download and extract docs for each release
run: |
releases='${{ steps.releases.outputs.releases }}'
for release in $(echo "${releases}" | jq -c '.[]'); do
release_name=$(echo $release | jq -r '.tag_name')
assets_url=$(echo $release | jq -r '.assets_url')
# Get assets for this release
assets=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" "${assets_url}")
# Look for docs.tar.gz asset
download_url=$(echo $assets | jq -r '.[] | select(.name=="docs.tar.gz") | .browser_download_url')
if [ ! -z "$download_url" ]; then
echo "Processing release ${release_name}, downloading from ${download_url}"
# Create directory for this release
mkdir -p "./temp_docs/${release_name}"
# Download and extract
curl -sL "${download_url}" -o ./temp_docs/temp.tar.gz
tar -xzf ./temp_docs/temp.tar.gz -C "./temp_docs/${release_name}"
rm ./temp_docs/temp.tar.gz
else
echo "Error: docs.tar.gz not found for release ${release_name}"
fi
done
# Check if index.html exists in the docs folder
# Get the latest release version
latest_release=$(echo "${releases}" | jq -r '.[0].tag_name')
if [ -f "./docs/index.html" ]; then
# Copy the index.html and replace LATESTVERSION with actual latest release
cat ./docs/index.html | sed "s/LATESTVERSION/${latest_release}/g" > ./temp_docs/index.html
echo "Created index.html with latest version: ${latest_release}"
else
echo "Error: index.html not found in docs folder"
exit 1
fi
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload the processed docs folder
path: "./temp_docs"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4