Files
songbird/.github/workflows/docs.yml
Jonathan 4eadeb6834 chore(docs): Update rust setup action and cache (#176)
This PR changes the following things in the docs workflow:
- Move from the deprecated actions-rs action to the maintained alternative of dtolnay https://github.com/dtolnay/rust-toolchain
- Instead of manually defining the cache paths and the cache keys, I moved to an action that handles this for us: https://github.com/Swatinem/rust-cache
- As github decided at some point that the generated `GITHUB_TOKEN` secret will only have read-only permissions (for new repos), unless you tell them to be different, I added the `permissions` key to the job. This will not affect this repository, but will affect e.g. new forks (the workflow will not throw an permissions error any more - Read more here: https://github.blog/changelog/2023-02-02-github-actions-updating-the-default-github_token-permissions-to-read-only/ )
2023-11-20 00:02:57 +00:00

58 lines
1.4 KiB
YAML

name: Publish docs
on:
push:
branches:
- current
- next
jobs:
docs:
name: Publish docs
runs-on: ubuntu-latest
permissions:
# peaceiris/actions-gh-pages requires write permission
# as it pushes a new commit to the gh-pages branch
contents: write
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libopus-dev
- name: Build docs
env:
RUSTDOCFLAGS: -D broken_intra_doc_links
run: |
cargo doc --no-deps --features full-doc
- name: Prepare docs
shell: bash -e -O extglob {0}
run: |
DIR=${GITHUB_REF/refs\/+(heads|tags)\//}
mkdir -p ./docs/$DIR
touch ./docs/.nojekyll
echo '<meta http-equiv="refresh" content="0;url=songbird/index.html">' > ./docs/$DIR/index.html
mv ./target/doc/* ./docs/$DIR/
- name: Deploy docs
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: ./docs
allow_empty_commit: false
keep_files: true