From 4233b2534480f6dc5562469d85b424d4294baaf6 Mon Sep 17 00:00:00 2001 From: David Brown Date: Thu, 12 Sep 2024 13:28:37 -0600 Subject: [PATCH] workflow: Add a docs workflow This workflow will build the docs for the zephyr crates for a single particular build, and publish them to GH pages. Signed-off-by: David Brown --- .github/workflows/docs.yml | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..478f518a --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,71 @@ +name: Generate and Preview Rust Docs + +on: + pull_request: + branches: + - main # Only generate docs for PRs targeting main + push: + branches: + - main + workflow_dispatch: + +jobs: + generate-docs: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + path: zephyr-rust-lang + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.11 + + - name: Setup Zephyr project + uses: zephyrproject-rtos/action-zephyr-setup@v1 + with: + app-path: zephyr-rust-lang + manifest-file-name: ci-manifest.yml + toolchains: arm-zephyr-eabi:riscv64-zephyr-elf + + - name: Install Rust Targets + shell: bash + run: | + rustup target add thumbv7em-none-eabi + rustup target add thumbv7m-none-eabi + + - name: Setup cargo build + working-directory: zephyr-rust-lang + run: | + # Must do full build + west build -b nrf52840dk/nrf52840 docgen + + - name: Build Rust documentation + working-directory: zephyr-rust-lang/docgen + run: | + rm -rf .cargo + mkdir .cargo + cd .cargo + ln -s ../../build/rust/sample-cargo-config.toml config.toml + cd .. + cargo doc + + - name: Deploy docs to GitHub Pages for pull requests + if: github.event_name == 'pull_request' + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./zephyr-rust-lang/build/rust/target/thumbv7em-none-eabi/doc + publish_branch: gh-pages + destination_dir: pr-${{ github.event.number }} + + # - name: Deploy docs to GitHub Pages for push to main + # if: github.event_name == 'push' + # uses: peaceiris/actions-gh-pages@v3 + # with: + # github_token: ${{ secrets.GITHUB_TOKEN }} + # publish_dir: ./target/doc + # publish_branch: gh-pages