Publish Site #746
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish Site | |
on: | |
schedule: | |
- cron: "0 0 * * *" | |
workflow_dispatch: | |
jobs: | |
publish: | |
name: Publish Site | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install --fix-missing -y lua-ldoc lua-markdown jq p7zip-full libsdl2-2.0-0 libopenal1 | |
- name: Checkout Source Repository | |
uses: actions/checkout@v2 | |
with: | |
ref: master | |
- name: Generate Dynamic Content | |
run: | | |
bash doc/site/_scripts/get_release_data.sh | |
bash doc/site/_scripts/get_engine_data.sh | |
git add -f doc/site/_data | |
- name: Run LDoc | |
run: | | |
ldoc -c doc/LDoc/config.ld . | |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config user.name "github-actions[bot]" | |
git add -f doc/site/ldoc | |
git commit -m "Update doc/site" | |
- name: Check if gh-pages exists | |
id: check-ghpages | |
run: | | |
git fetch origin gh-pages | |
git ls-remote --exit-code . origin/gh-pages && (echo "exists=true" > $GITHUB_OUTPUT) || (echo "exists=false" > $GITHUB_OUTPUT) | |
- name: Check changes to doc/site | |
id: site-changes | |
if: steps.check-ghpages.outputs.exists == 'true' | |
run: | | |
git diff --stat origin/gh-pages master:doc/site | |
git diff --quiet origin/gh-pages master:doc/site && (echo "modified=false" > $GITHUB_OUTPUT) || (echo "modified=true" > $GITHUB_OUTPUT) | |
- name: Push gh-pages # Only push gh-pages if doc/site/ was changed or ldoc did changes | |
if: steps.check-ghpages.outputs.exists == 'false' || steps.site-changes.outputs.modified == 'true' | |
run: | | |
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY | |
git subtree split --prefix=doc/site --rejoin -b gh-pages | |
git push origin gh-pages --force |