Skip to content

ci: support multiple pages #13

ci: support multiple pages

ci: support multiple pages #13

Workflow file for this run

name: Nightly
on:
workflow_dispatch:
schedule:
- cron: '0 0 */2 * *'
push:
branches:
- main
jobs:
check:
name: check
runs-on: ubuntu-latest
steps:
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Checkout Sources
uses: actions/checkout@v3
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-make
- name: Run check
run: cargo make check
clippy:
name: clippy
runs-on: ubuntu-latest
steps:
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
components: clippy
profile: minimal
- name: Checkout Sources
uses: actions/checkout@v3
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-make
- name: Run clippy
run: cargo make clippy
test:
needs: [ clippy, check ]
name: tests
runs-on: ubuntu-latest
steps:
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
profile: minimal
- name: Checkout Sources
uses: actions/checkout@v3
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-make
- name: Tests
run: cargo make test
docs-lint:
name: lint docs
runs-on: ubuntu-latest
steps:
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Checkout Sources
uses: actions/checkout@v3
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-make
- name: Run docs lint
uses: actions-rs/cargo@v1
with:
command: make
args: docs_lint
build-docs:
needs: [ docs-lint ]
name: build docs
runs-on: ubuntu-latest
steps:
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Checkout Sources
uses: actions/checkout@v3
- name: Setup cache
uses: Swatinem/rust-cache@v2
- name: Install cargo-make
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-make
- name: Download current pages artifact
uses: actions/download-artifact@v4
with:
name: github-pages
path: ./
- name: Extract pages artifact
run: mkdir pages/ && tar -xvf artifact.tar -C pages/
- name: Build docs
uses: actions-rs/cargo@v1
with:
command: make
args: docs_build
- name: Prefix docs
run: mkdir -p pages/nightly/ && mv -f target/docs/ pages/nightly/docs/
- name: Fix permissions
run: |
chmod -c -R +rX "pages/" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done
- name: Upload pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: pages/
retention-days: 3
deploy-pages:
needs: [ build-docs, test ]
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to pages
id: deployment
uses: actions/deploy-pages@v4