Skip to content

continuous-intergration/publish-docs #1179

continuous-intergration/publish-docs

continuous-intergration/publish-docs #1179

Workflow file for this run

# The workflow has write access, so it needs to be isolated for security reasons from pull request-based workflows,
# which may be triggered from forked repositories.
name: continuous-intergration/publish-docs
on:
workflow_run:
workflows:
- continuous-integration
types:
- completed
jobs:
publish-docs:
if: >
github.event.workflow_run.event == 'push' &&
github.event.workflow_run.head_branch == 'master' &&
github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 100
- name: Download Docs
uses: ./.github/download-artifact
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ARTIFACT_NAME: docs-data
DOWNLOAD_DIR: crate-docs
- name: Add key to allow access to repository
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: |
mkdir -p ~/.ssh
ssh-keyscan github.com >> ~/.ssh/known_hosts
echo "${{ secrets.GH_PAGES_DEPLOY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
cat <<EOT >> ~/.ssh/config
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa
EOT
- name: Push docs
run: |
# Set git config
git config user.email "actions@github.com"
git config user.name "actions"
git fetch origin gh-pages
# saving README and docs
cp -r ./crate-docs/ /tmp/doc/
cp ./README.md /tmp/doc/
cp -r ./.images/ /tmp/doc/
git checkout gh-pages
mv _config.yml /tmp/doc/
# remove everything and restore generated docs, README and Jekyll config
rm -rf ./*
rm -rf ./.images
mv /tmp/doc/* .
mv /tmp/doc/.images .
# Upload files
git add --all --force
git status
# `git commit` has an exit code of > 0 if there is nothing to commit.
# This unfortunately causes Github to exit immediately and mark this
# job as failed subsequently.
# We don't want to mark the entire job as failed if there's nothing to
# publish though, hence the `|| true`.
git commit -m "Updated docs for ${{ github.event.workflow_run.head_branch }}} and pushed to gh-pages" || true
git push origin gh-pages --force
rm -rf .git/ ./*