2020-05-31 12:12:29 +02:00
|
|
|
name: Build
|
|
|
|
on:
|
|
|
|
pull_request:
|
2020-06-11 21:00:32 +02:00
|
|
|
push:
|
2020-05-31 12:12:29 +02:00
|
|
|
branches:
|
|
|
|
- master
|
2020-06-11 21:00:32 +02:00
|
|
|
- staging
|
2020-06-11 21:10:03 +02:00
|
|
|
- trying
|
2022-02-10 09:26:46 +01:00
|
|
|
- bors/staging
|
|
|
|
- bors/trying
|
2020-05-31 12:12:29 +02:00
|
|
|
|
|
|
|
env:
|
|
|
|
CARGO_TERM_COLOR: always
|
2023-03-04 00:10:08 +01:00
|
|
|
DEV_VERSION: 2
|
|
|
|
STABLE_VERSION: 1
|
|
|
|
OLDSTABLE_VERSION: 0.5
|
|
|
|
OLDOLDSTABLE_VERSION: 0.4
|
2020-05-31 12:12:29 +02:00
|
|
|
|
|
|
|
jobs:
|
2023-02-24 00:10:20 +01:00
|
|
|
# Run cargo xtask format-check
|
|
|
|
formatcheck:
|
|
|
|
name: cargo fmt
|
2022-12-15 22:03:55 +01:00
|
|
|
runs-on: ubuntu-22.04
|
2020-05-31 12:12:29 +02:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-12-21 20:55:30 +01:00
|
|
|
uses: actions/checkout@v3
|
2020-05-31 12:12:29 +02:00
|
|
|
|
2021-11-25 10:46:29 +01:00
|
|
|
- name: Fail on warnings
|
2023-02-24 00:36:12 +01:00
|
|
|
run: find . -type f -name lib.rs -execdir sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' {} +
|
2021-11-25 10:46:29 +01:00
|
|
|
|
2023-02-24 02:27:12 +01:00
|
|
|
- name: Cache Dependencies
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
|
2023-04-15 14:43:40 +02:00
|
|
|
- name: cargo xtask fmt
|
|
|
|
run: cargo xtask --verbose fmt -c
|
2023-01-28 11:42:24 +01:00
|
|
|
|
2020-05-31 12:12:29 +02:00
|
|
|
# Compilation check
|
2023-02-06 13:35:05 +01:00
|
|
|
check:
|
2023-02-06 13:42:32 +01:00
|
|
|
name: check
|
2022-12-15 22:03:55 +01:00
|
|
|
runs-on: ubuntu-22.04
|
2020-05-31 12:12:29 +02:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2023-02-24 01:25:48 +01:00
|
|
|
backend:
|
|
|
|
- thumbv7
|
|
|
|
- thumbv6
|
|
|
|
- thumbv8-base
|
|
|
|
- thumbv8-main
|
2020-05-31 12:12:29 +02:00
|
|
|
toolchain:
|
2023-01-08 21:33:44 +01:00
|
|
|
- nightly
|
2020-05-31 12:12:29 +02:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-12-21 20:55:30 +01:00
|
|
|
uses: actions/checkout@v3
|
2020-05-31 12:12:29 +02:00
|
|
|
|
2022-12-15 23:56:01 +01:00
|
|
|
- name: Install Rust ${{ matrix.toolchain }}
|
2023-02-05 13:23:09 +01:00
|
|
|
run: |
|
|
|
|
rustup override set ${{ matrix.toolchain }}
|
|
|
|
|
2023-02-08 19:25:14 +01:00
|
|
|
- name: Configure Rust target (v6, v7, v8.b v8.m)
|
|
|
|
run: |
|
|
|
|
rustup target add thumbv7m-none-eabi
|
|
|
|
rustup target add thumbv6m-none-eabi
|
|
|
|
rustup target add thumbv8m.base-none-eabi
|
|
|
|
rustup target add thumbv8m.main-none-eabi
|
2023-02-05 13:23:09 +01:00
|
|
|
|
|
|
|
- name: Fail on warnings
|
2023-02-24 01:25:48 +01:00
|
|
|
run: find . -type f -name lib.rs -execdir sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' {} +
|
2023-02-05 13:23:09 +01:00
|
|
|
|
|
|
|
- name: Cache Dependencies
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
|
2023-03-15 20:43:51 +01:00
|
|
|
- run: cargo xtask --backend ${{ matrix.backend }} check
|
2023-02-28 23:55:02 +01:00
|
|
|
|
2022-02-09 18:45:49 +01:00
|
|
|
# Clippy
|
2023-02-08 19:44:46 +01:00
|
|
|
clippy:
|
2023-02-24 01:25:48 +01:00
|
|
|
name: clippy
|
2022-12-15 22:03:55 +01:00
|
|
|
runs-on: ubuntu-22.04
|
2023-02-08 19:44:46 +01:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2023-02-24 01:54:22 +01:00
|
|
|
backend:
|
2023-02-24 01:25:48 +01:00
|
|
|
- thumbv7
|
|
|
|
- thumbv6
|
|
|
|
- thumbv8-base
|
|
|
|
- thumbv8-main
|
2023-02-08 19:44:46 +01:00
|
|
|
toolchain:
|
|
|
|
- nightly
|
2022-02-09 18:45:49 +01:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-12-21 20:55:30 +01:00
|
|
|
uses: actions/checkout@v3
|
2022-02-09 18:45:49 +01:00
|
|
|
|
2023-02-08 19:44:46 +01:00
|
|
|
- name: Install Rust ${{ matrix.toolchain }}
|
|
|
|
run: |
|
|
|
|
rustup override set ${{ matrix.toolchain }}
|
2023-01-27 12:55:26 +01:00
|
|
|
|
2023-02-08 19:44:46 +01:00
|
|
|
- name: Configure Rust target (v6, v7, v8.b v8.m)
|
|
|
|
run: |
|
|
|
|
rustup target add thumbv7m-none-eabi
|
|
|
|
rustup target add thumbv6m-none-eabi
|
|
|
|
rustup target add thumbv8m.base-none-eabi
|
|
|
|
rustup target add thumbv8m.main-none-eabi
|
2023-01-27 12:55:26 +01:00
|
|
|
|
|
|
|
- name: Add Rust component clippy
|
|
|
|
run: rustup component add clippy
|
|
|
|
|
|
|
|
- name: Fail on warnings
|
2023-02-24 01:25:48 +01:00
|
|
|
run: find . -type f -name lib.rs -execdir sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' {} +
|
2023-01-27 12:55:26 +01:00
|
|
|
|
|
|
|
- name: Cache Dependencies
|
|
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
|
2023-03-15 20:43:51 +01:00
|
|
|
- run: cargo xtask --backend ${{ matrix.backend }} clippy
|
2023-01-27 12:55:26 +01:00
|
|
|
|
2020-10-05 11:35:07 +02:00
|
|
|
# Verify all examples, checks
|
2020-05-31 12:12:29 +02:00
|
|
|
checkexamples:
|
2023-02-08 20:05:06 +01:00
|
|
|
name: check examples
|
2022-12-15 22:03:55 +01:00
|
|
|
runs-on: ubuntu-22.04
|
2020-05-31 12:12:29 +02:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2023-02-23 23:07:06 +01:00
|
|
|
backend:
|
|
|
|
- thumbv7
|
|
|
|
- thumbv6
|
|
|
|
- thumbv8-base
|
|
|
|
- thumbv8-main
|
2020-05-31 12:12:29 +02:00
|
|
|
toolchain:
|
2023-01-08 21:33:44 +01:00
|
|
|
- nightly
|
2020-05-31 12:12:29 +02:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-12-21 20:55:30 +01:00
|
|
|
uses: actions/checkout@v3
|
2020-05-31 12:12:29 +02:00
|
|
|
|
2022-12-15 23:56:01 +01:00
|
|
|
- name: Install Rust ${{ matrix.toolchain }}
|
|
|
|
run: |
|
|
|
|
rustup override set ${{ matrix.toolchain }}
|
|
|
|
|
2023-02-23 23:07:06 +01:00
|
|
|
- name: Configure Rust target (v6, v7, v8.b v8.m)
|
|
|
|
run: |
|
|
|
|
rustup target add thumbv7m-none-eabi
|
|
|
|
rustup target add thumbv6m-none-eabi
|
|
|
|
rustup target add thumbv8m.base-none-eabi
|
|
|
|
rustup target add thumbv8m.main-none-eabi
|
2022-12-15 23:56:01 +01:00
|
|
|
|
2022-02-09 18:44:57 +01:00
|
|
|
- name: Cache Dependencies
|
2022-12-16 00:25:46 +01:00
|
|
|
uses: Swatinem/rust-cache@v2
|
2022-02-09 18:44:57 +01:00
|
|
|
|
2020-09-23 15:51:07 +02:00
|
|
|
- name: Check the examples
|
2023-02-24 01:54:22 +01:00
|
|
|
if: ${{ matrix.backend == 'thumbv8-base' }}
|
2023-03-15 20:43:51 +01:00
|
|
|
run: cargo xtask --backend ${{ matrix.backend }} --exampleexclude pool example-check
|
2023-02-08 20:05:06 +01:00
|
|
|
|
|
|
|
- name: Check the examples
|
2023-02-24 01:54:22 +01:00
|
|
|
if: ${{ matrix.backend != 'thumbv8-base' }}
|
2023-03-15 20:43:51 +01:00
|
|
|
run: cargo xtask --backend ${{ matrix.backend }} example-check
|
2020-05-31 12:12:29 +02:00
|
|
|
|
2020-10-05 11:35:07 +02:00
|
|
|
# Verify the example output with run-pass tests
|
|
|
|
testexamples:
|
2023-02-08 20:13:26 +01:00
|
|
|
name: QEMU run
|
2022-12-15 22:03:55 +01:00
|
|
|
runs-on: ubuntu-22.04
|
2020-10-05 11:35:07 +02:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2023-02-23 23:07:06 +01:00
|
|
|
backend:
|
|
|
|
- thumbv7
|
|
|
|
- thumbv6
|
2020-10-05 11:35:07 +02:00
|
|
|
toolchain:
|
2023-01-08 21:33:44 +01:00
|
|
|
- nightly
|
2020-10-05 11:35:07 +02:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-12-21 20:55:30 +01:00
|
|
|
uses: actions/checkout@v3
|
2020-10-05 11:35:07 +02:00
|
|
|
|
2022-12-15 23:56:01 +01:00
|
|
|
- name: Install Rust ${{ matrix.toolchain }}
|
|
|
|
run: |
|
|
|
|
rustup set profile minimal
|
|
|
|
rustup override set ${{ matrix.toolchain }}
|
|
|
|
|
2023-02-23 23:07:06 +01:00
|
|
|
- name: Configure Rust target (v6, v7)
|
|
|
|
run: |
|
|
|
|
rustup target add thumbv7m-none-eabi
|
|
|
|
rustup target add thumbv6m-none-eabi
|
2022-12-15 23:56:01 +01:00
|
|
|
|
|
|
|
- name: Add Rust component llvm-tools-preview
|
|
|
|
run: rustup component add llvm-tools-preview
|
2020-10-05 11:35:07 +02:00
|
|
|
|
2020-07-26 00:37:08 +02:00
|
|
|
# Use precompiled binutils
|
2023-02-24 21:08:00 +01:00
|
|
|
- name: Install cargo-binutils
|
2023-02-24 21:19:11 +01:00
|
|
|
uses: taiki-e/install-action@v2
|
|
|
|
with:
|
|
|
|
tool: cargo-binutils
|
2020-07-23 18:56:41 +02:00
|
|
|
|
2022-02-09 18:44:57 +01:00
|
|
|
- name: Cache Dependencies
|
2022-12-16 00:25:46 +01:00
|
|
|
uses: Swatinem/rust-cache@v2
|
2022-02-09 18:44:57 +01:00
|
|
|
|
2020-05-31 12:12:29 +02:00
|
|
|
- name: Install QEMU
|
|
|
|
run: |
|
2020-08-24 13:57:53 +02:00
|
|
|
sudo apt update
|
|
|
|
sudo apt install -y qemu-system-arm
|
2020-06-16 08:56:51 +02:00
|
|
|
|
2021-11-25 10:46:29 +01:00
|
|
|
- name: Fail on warnings
|
2023-01-23 20:14:50 +01:00
|
|
|
working-directory: ./rtic
|
2023-02-05 13:23:09 +01:00
|
|
|
run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs
|
2020-05-31 12:12:29 +02:00
|
|
|
|
2021-08-26 10:58:59 +02:00
|
|
|
- name: Run-pass tests
|
2023-03-15 20:43:51 +01:00
|
|
|
run: cargo xtask --backend ${{ matrix.backend }} qemu
|
2020-05-31 12:12:29 +02:00
|
|
|
|
2023-02-05 13:23:09 +01:00
|
|
|
# Run test suite
|
2023-02-28 23:55:02 +01:00
|
|
|
tests:
|
|
|
|
name: tests
|
2022-12-15 22:03:55 +01:00
|
|
|
runs-on: ubuntu-22.04
|
2023-02-24 01:54:22 +01:00
|
|
|
strategy:
|
2023-03-01 00:46:00 +01:00
|
|
|
fail-fast: false
|
2023-02-24 01:54:22 +01:00
|
|
|
matrix:
|
|
|
|
backend:
|
2023-03-01 00:40:50 +01:00
|
|
|
- thumbv7
|
|
|
|
- thumbv6
|
|
|
|
- thumbv8-base
|
|
|
|
- thumbv8-main
|
2023-02-28 23:55:02 +01:00
|
|
|
package:
|
|
|
|
- rtic
|
|
|
|
- rtic-common
|
|
|
|
- rtic-macros
|
|
|
|
- rtic-monotonics
|
2023-03-02 19:58:04 +01:00
|
|
|
- rtic-sync
|
2023-02-28 23:55:02 +01:00
|
|
|
- rtic-time
|
2023-02-24 01:54:22 +01:00
|
|
|
|
2020-05-31 12:12:29 +02:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-12-21 20:55:30 +01:00
|
|
|
uses: actions/checkout@v3
|
2020-06-16 08:56:51 +02:00
|
|
|
|
2022-02-09 18:44:57 +01:00
|
|
|
- name: Cache Dependencies
|
2022-12-16 00:25:46 +01:00
|
|
|
uses: Swatinem/rust-cache@v2
|
2022-02-09 18:44:57 +01:00
|
|
|
|
2023-02-28 23:55:02 +01:00
|
|
|
- name: Configure Rust target (v6, v7, v8.b v8.m)
|
|
|
|
run: |
|
|
|
|
rustup target add thumbv7m-none-eabi
|
|
|
|
rustup target add thumbv6m-none-eabi
|
|
|
|
rustup target add thumbv8m.base-none-eabi
|
|
|
|
rustup target add thumbv8m.main-none-eabi
|
2023-01-28 14:02:54 +01:00
|
|
|
|
|
|
|
- name: Fail on warnings
|
2023-02-28 23:55:02 +01:00
|
|
|
run: find . -type f -name lib.rs -execdir sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' {} +
|
2023-01-28 14:02:54 +01:00
|
|
|
|
|
|
|
- name: Run cargo test
|
2023-03-15 20:43:51 +01:00
|
|
|
run: cargo xtask --backend ${{ matrix.backend }} test ${{ matrix.package }}
|
2023-01-28 14:02:54 +01:00
|
|
|
|
2023-01-28 14:12:32 +01:00
|
|
|
# Build documentation, check links
|
|
|
|
docs:
|
2023-02-24 21:08:00 +01:00
|
|
|
name: build docs
|
2023-01-28 14:12:32 +01:00
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
|
2023-02-24 20:37:22 +01:00
|
|
|
- name: Install lychee
|
2023-02-24 21:19:11 +01:00
|
|
|
uses: taiki-e/install-action@v2
|
|
|
|
with:
|
|
|
|
tool: lychee
|
2023-01-28 14:12:32 +01:00
|
|
|
|
|
|
|
- name: Remove cargo-config
|
2023-04-15 15:24:41 +02:00
|
|
|
run: rm -f .cargo/config.toml
|
2023-01-28 14:12:32 +01:00
|
|
|
|
|
|
|
- name: Build docs
|
2023-02-24 01:24:43 +01:00
|
|
|
# TODO: Any difference between backends?
|
|
|
|
run: cargo doc --features thumbv7-backend
|
2023-01-28 14:12:32 +01:00
|
|
|
|
|
|
|
- name: Check links
|
|
|
|
run: |
|
|
|
|
td=$(mktemp -d)
|
|
|
|
cp -r target/doc $td/api
|
2023-02-24 22:26:33 +01:00
|
|
|
echo rtic
|
2023-02-24 21:57:06 +01:00
|
|
|
lychee --offline --format detailed $td/api/rtic/
|
2023-02-24 22:26:33 +01:00
|
|
|
|
|
|
|
echo rtic_common
|
2023-02-24 21:57:06 +01:00
|
|
|
lychee --offline --format detailed $td/api/rtic_common/
|
2023-02-24 22:26:33 +01:00
|
|
|
|
|
|
|
echo rtic_macros
|
2023-02-24 21:57:06 +01:00
|
|
|
lychee --offline --format detailed $td/api/rtic_macros/
|
2023-02-24 22:26:33 +01:00
|
|
|
|
|
|
|
echo rtic_monotonics
|
2023-02-24 21:57:06 +01:00
|
|
|
lychee --offline --format detailed $td/api/rtic_monotonics/
|
2023-03-02 20:09:39 +01:00
|
|
|
|
|
|
|
echo rtic_sync
|
|
|
|
lychee --offline --format detailed $td/api/rtic_sync/
|
2023-02-24 22:26:33 +01:00
|
|
|
|
|
|
|
echo rtic_time
|
2023-02-24 21:57:06 +01:00
|
|
|
lychee --offline --format detailed $td/api/rtic_time/
|
2023-02-24 22:26:33 +01:00
|
|
|
|
2023-01-28 14:12:32 +01:00
|
|
|
|
2023-02-24 21:58:26 +01:00
|
|
|
- name: Archive the API docs
|
|
|
|
run: |
|
|
|
|
cp -r target/doc apidocs
|
|
|
|
tar -cf apidocs.tar apidocs
|
|
|
|
|
|
|
|
- name: Store the API docs
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: apidocs
|
|
|
|
path: apidocs.tar
|
|
|
|
|
2023-01-28 14:12:32 +01:00
|
|
|
# Build the books
|
|
|
|
mdbook:
|
2023-02-24 20:37:22 +01:00
|
|
|
name: build mdbook
|
2023-02-24 21:58:26 +01:00
|
|
|
needs: docs
|
2023-01-28 14:12:32 +01:00
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
|
2023-02-24 20:37:22 +01:00
|
|
|
- name: Install lychee
|
2023-02-24 21:19:11 +01:00
|
|
|
uses: taiki-e/install-action@v2
|
|
|
|
with:
|
|
|
|
tool: lychee
|
2023-01-28 14:12:32 +01:00
|
|
|
|
2023-03-04 00:10:08 +01:00
|
|
|
- name: Install mdbook
|
2023-02-24 21:19:11 +01:00
|
|
|
uses: taiki-e/install-action@v2
|
|
|
|
with:
|
2023-03-04 00:10:08 +01:00
|
|
|
tool: mdbook
|
2023-01-30 22:15:43 +01:00
|
|
|
|
2023-03-04 00:10:08 +01:00
|
|
|
- name: Install mdbook-mermaid
|
|
|
|
uses: taiki-e/install-action@v2
|
2023-01-28 14:12:32 +01:00
|
|
|
with:
|
2023-03-04 00:10:08 +01:00
|
|
|
tool: mdbook-mermaid
|
2023-01-28 14:12:32 +01:00
|
|
|
|
|
|
|
- name: Build book in English
|
2023-03-04 00:10:08 +01:00
|
|
|
run: cargo xtask book
|
2023-01-28 14:12:32 +01:00
|
|
|
|
2023-02-24 21:58:26 +01:00
|
|
|
- name: Download built API docs
|
|
|
|
uses: actions/download-artifact@v3
|
|
|
|
with:
|
|
|
|
name: apidocs
|
|
|
|
|
|
|
|
- name: Extract the API docs
|
2023-02-24 22:15:17 +01:00
|
|
|
run: tar -xf apidocs.tar
|
2023-02-24 21:58:26 +01:00
|
|
|
|
2023-01-28 14:12:32 +01:00
|
|
|
- name: Check links
|
|
|
|
run: |
|
|
|
|
td=$(mktemp -d)
|
|
|
|
mkdir $td/book
|
|
|
|
cp -r book/en/book $td/book/en
|
|
|
|
cp LICENSE-* $td/book/en
|
2023-02-24 21:58:26 +01:00
|
|
|
cp -r apidocs/ $td/api
|
2023-01-28 14:12:32 +01:00
|
|
|
|
2023-02-24 21:57:06 +01:00
|
|
|
lychee --offline --format detailed $td/book/en/
|
2023-03-04 00:54:53 +01:00
|
|
|
mv $td bookroot
|
2023-01-28 14:12:32 +01:00
|
|
|
|
2023-03-04 00:10:08 +01:00
|
|
|
- name: Archive the book + API docs
|
|
|
|
run: |
|
|
|
|
tar -cf book.tar bookroot
|
|
|
|
|
|
|
|
- name: Store the Book + API docs
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: book
|
|
|
|
path: book.tar
|
|
|
|
|
|
|
|
mdbookold:
|
|
|
|
name: build docs and mdbook for older releases
|
2023-03-04 21:14:01 +01:00
|
|
|
needs: mergetostablebranch
|
2023-03-04 00:10:08 +01:00
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
|
|
|
uses: actions/checkout@v3
|
|
|
|
|
2023-03-04 20:48:33 +01:00
|
|
|
- name: Install mdbook
|
|
|
|
uses: taiki-e/install-action@v2
|
|
|
|
with:
|
|
|
|
tool: mdbook
|
|
|
|
|
|
|
|
- name: Install mdbook-mermaid
|
|
|
|
uses: taiki-e/install-action@v2
|
|
|
|
with:
|
|
|
|
tool: mdbook-mermaid
|
|
|
|
|
2023-03-04 00:10:08 +01:00
|
|
|
- name: Remove cargo-config
|
|
|
|
run: rm -f .cargo/config
|
|
|
|
|
|
|
|
- name: Prepare output folder
|
|
|
|
run: mkdir -p mdbookold
|
|
|
|
|
|
|
|
- name: Fetch and build books for older versions
|
|
|
|
run: |
|
|
|
|
# The latest stable must be the first element in the array
|
|
|
|
vers=( "${{ env.STABLE_VERSION }}" "${{ env.OLDSTABLE_VERSION }}" )
|
|
|
|
langs=( en )
|
|
|
|
root=$(pwd)
|
|
|
|
webroot=$(pwd)/mdbookold
|
|
|
|
|
|
|
|
for ver in ${vers[@]}; do
|
|
|
|
|
2023-03-04 20:43:29 +01:00
|
|
|
mkdir -p src/$ver
|
|
|
|
src=$root/src/$ver
|
2023-03-04 00:10:08 +01:00
|
|
|
curl -L https://github.com/rtic-rs/rtic/archive/release/v${ver}.tar.gz | tar xz --strip-components 1 -C $src
|
|
|
|
|
|
|
|
pushd $src
|
|
|
|
rm -f .cargo/config
|
2023-03-04 00:38:37 +01:00
|
|
|
cargo doc || cargo doc --features timer-queue
|
2023-03-04 00:52:24 +01:00
|
|
|
mkdir -p $webroot/$ver/book
|
2023-03-04 00:10:08 +01:00
|
|
|
cp -r target/doc $webroot/$ver/api
|
2023-03-04 20:43:29 +01:00
|
|
|
|
2023-03-04 00:58:54 +01:00
|
|
|
sed 's|URL|rtic/index.html|g' $root/redirect.html > $webroot/$ver/api/index.html
|
2023-03-04 00:10:08 +01:00
|
|
|
popd
|
|
|
|
|
|
|
|
for lang in ${langs[@]}; do
|
|
|
|
cargo xtask book build $src/book/$lang
|
2023-03-04 20:43:29 +01:00
|
|
|
|
2023-03-04 00:52:24 +01:00
|
|
|
cp -r $src/book/$lang/book $webroot/$ver/book/$lang
|
2023-03-04 00:10:08 +01:00
|
|
|
cp LICENSE-* $webroot/$ver/book/$lang/
|
|
|
|
done
|
2023-03-04 20:43:29 +01:00
|
|
|
# using master branch redirect file
|
2023-03-04 00:58:54 +01:00
|
|
|
sed 's|URL|book/en|g' $root/redirect.html > $webroot/$ver/index.html
|
2023-03-04 00:10:08 +01:00
|
|
|
|
|
|
|
rm -rf $src
|
|
|
|
done
|
|
|
|
|
|
|
|
- name: Archive the old books
|
|
|
|
run: |
|
|
|
|
tar -cf mdbookold.tar mdbookold
|
|
|
|
|
|
|
|
- name: Store the old API docs
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: mdbookold
|
|
|
|
path: mdbookold.tar
|
|
|
|
|
|
|
|
parseversion:
|
2023-03-04 00:23:13 +01:00
|
|
|
name: Parse the master branch RTIC version
|
|
|
|
runs-on: ubuntu-22.04
|
2023-03-04 00:10:08 +01:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
|
|
|
- name: Get crate version and print output branch release/vX
|
|
|
|
id: crateversionbranch
|
|
|
|
# Parse metadata for version number, extract the Semver Major
|
|
|
|
run: |
|
|
|
|
VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="rtic") | .version')
|
|
|
|
VERSIONMAJOR=${VERSION%.*.*}
|
|
|
|
echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV
|
|
|
|
echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV
|
|
|
|
echo "version=$VERSION" >> $GITHUB_ENV
|
|
|
|
|
|
|
|
|
|
|
|
# Update stable branch
|
|
|
|
#
|
|
|
|
# This is only valid when current stable resides in
|
|
|
|
# master branch.
|
|
|
|
# As master moves on to development, the work on the
|
|
|
|
# stable version will happen in release/v"stable_version".
|
|
|
|
# Thus, no need to push changes
|
|
|
|
#
|
|
|
|
# This needs to run before book is built, as bookbuilding fetches from the branch
|
|
|
|
mergetostablebranch:
|
2023-03-04 21:12:44 +01:00
|
|
|
name: Merge branch into release/vX when pushing to master
|
2023-03-04 00:10:08 +01:00
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
needs:
|
2023-03-04 00:24:45 +01:00
|
|
|
- ci-success
|
2023-03-04 00:10:08 +01:00
|
|
|
- parseversion
|
|
|
|
|
|
|
|
# Only run this when pushing to master branch
|
|
|
|
if: github.ref == 'refs/heads/master'
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
|
|
|
- name: Push to stable release branch if master contains stable version
|
|
|
|
if: ${{ env.versionmajor == env.STABLE_VERSION }}
|
|
|
|
run: git push -u origin ${{ env.branch }}
|
|
|
|
|
|
|
|
# Only runs when pushing to master branch
|
|
|
|
# Bors run CI against staging branch,
|
|
|
|
# if that succeeds Borst tries against master branch
|
|
|
|
# If all tests pass, then deploy stage is run
|
|
|
|
deploy:
|
|
|
|
name: deploy
|
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
needs:
|
|
|
|
- mergetostablebranch
|
|
|
|
- docs
|
|
|
|
- mdbookold
|
|
|
|
- mdbook
|
|
|
|
|
|
|
|
# Only run this when pushing to master branch
|
|
|
|
if: github.ref == 'refs/heads/master'
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
|
|
|
- name: Install lychee
|
|
|
|
uses: taiki-e/install-action@v2
|
|
|
|
with:
|
|
|
|
tool: lychee
|
|
|
|
|
|
|
|
- name: Install mdbook-mermaid
|
|
|
|
uses: taiki-e/install-action@v2
|
|
|
|
with:
|
|
|
|
tool: mdbook-mermaid
|
|
|
|
|
|
|
|
- name: mdBook Action
|
|
|
|
uses: peaceiris/actions-mdbook@v1
|
|
|
|
with:
|
|
|
|
mdbook-version: 'latest'
|
|
|
|
|
|
|
|
- name: Remove cargo-config
|
|
|
|
run: rm -f .cargo/config
|
|
|
|
|
|
|
|
- name: Download built dev-ver book and API docs
|
|
|
|
uses: actions/download-artifact@v3
|
|
|
|
with:
|
|
|
|
name: book
|
|
|
|
|
|
|
|
- name: Extract the dev-version book and API docs
|
|
|
|
run: |
|
|
|
|
tar -xf book.tar
|
|
|
|
|
|
|
|
- name: Download built old versions of books and API docs
|
|
|
|
uses: actions/download-artifact@v3
|
|
|
|
with:
|
|
|
|
name: mdbookold
|
|
|
|
|
|
|
|
- name: Extract the old version books and API docs
|
|
|
|
run: |
|
|
|
|
tar -xf mdbookold.tar
|
|
|
|
|
|
|
|
- name: Prepare books
|
|
|
|
shell: 'script --return --quiet --command "bash {0}"'
|
|
|
|
run: |
|
|
|
|
langs=( en )
|
|
|
|
devver=( dev )
|
|
|
|
# The latest stable must be the first element in the array
|
|
|
|
vers=( "${{ env.STABLE_VERSION }}" "${{ env.OLDSTABLE_VERSION }}" )
|
|
|
|
|
|
|
|
# All releases start with "v"
|
|
|
|
# followed by MAJOR.MINOR.PATCH, see semver.org
|
|
|
|
# Store first in array as stable
|
|
|
|
stable=${vers}
|
|
|
|
crateversion=${{ env.versionmajor }}
|
|
|
|
|
|
|
|
echo "Latest stable version: $stable"
|
|
|
|
echo "Current crate version: $crateversion"
|
|
|
|
|
|
|
|
# Create directories
|
|
|
|
td=$(mktemp -d)
|
|
|
|
mkdir -p $td/$devver/
|
|
|
|
cp -r bookroot/* $td/$devver/
|
|
|
|
|
|
|
|
# Redirect rtic.rs/meeting/index.html to hackmd
|
|
|
|
mkdir $td/meeting
|
|
|
|
sed "s|URL|https://hackmd.io/c_mFUZL-Q2C6614MlrrxOg|g" redirect.html > $td/meeting/index.html
|
|
|
|
sed -i "s|Page Redirection|RTIC Meeting|" $td/meeting/index.html
|
|
|
|
sed -i "s|If you|Redirecting to RTIC HackMD. If you|" $td/meeting/index.html
|
|
|
|
|
|
|
|
# Redirect the main site to the stable release
|
|
|
|
sed "s|URL|$stable|g" redirect.html > $td/index.html
|
|
|
|
|
|
|
|
# Create the redirects for dev-version
|
|
|
|
# If the current stable and the version being built differ,
|
|
|
|
# then there is a dev-version and the links should point to it.
|
|
|
|
if [[ "$stable" != "$crateversion" ]];
|
|
|
|
then
|
|
|
|
sed 's|URL|rtic/index.html|g' redirect.html > $td/$devver/api/index.html
|
|
|
|
sed 's|URL|book/en|g' redirect.html > $td/$devver/index.html
|
|
|
|
else
|
|
|
|
# If the current stable and the "dev" version in master branch
|
|
|
|
# share the same major version, redirect dev/ to stable book
|
|
|
|
# This makes sense, preferable to have doc/book updates going live directly to rtic.rs
|
|
|
|
sed 's|URL|rtic.rs/$stable/api/rtic|g' redirect.html > $td/$devver/api/index.html
|
|
|
|
sed 's|URL|rtic.rs/$stable|g' redirect.html > $td/$devver/index.html
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Package older versions, including stable
|
|
|
|
|
|
|
|
# Copy the stable book to the stable alias
|
|
|
|
cp -r mdbookold/${{ env.STABLE_VERSION }} $td/stable
|
|
|
|
|
|
|
|
# Copy the stable book to the webroot
|
|
|
|
cp -r mdbookold/${{ env.STABLE_VERSION }} $td/
|
|
|
|
# Copy the old stable book to the webroot
|
|
|
|
cp -r mdbookold/${{ env.OLDSTABLE_VERSION }} $td/
|
|
|
|
|
|
|
|
# Forward CNAME file
|
|
|
|
cp CNAME $td/
|
|
|
|
mv $td/ bookstodeploy
|
|
|
|
|
2023-03-04 00:15:32 +01:00
|
|
|
- name: Archive the webroot
|
|
|
|
run: |
|
|
|
|
tar -cf bookstodeploy.tar bookstodeploy
|
|
|
|
|
|
|
|
- name: Store the books
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: bookstodeploy
|
|
|
|
path: bookstodeploy.tar
|
|
|
|
|
|
|
|
ghapages:
|
|
|
|
name: Publish rtic.rs
|
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
needs:
|
|
|
|
- deploy
|
|
|
|
steps:
|
|
|
|
- name: Download books
|
|
|
|
uses: actions/download-artifact@v3
|
|
|
|
with:
|
|
|
|
name: bookstodeploy
|
|
|
|
|
|
|
|
- name: Extract the books
|
|
|
|
run: |
|
|
|
|
tar -xf bookstodeploy.tar
|
|
|
|
|
2023-03-04 00:10:08 +01:00
|
|
|
- name: Deploy to GH-pages
|
|
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
|
|
with:
|
|
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
publish_dir: ./bookstodeploy
|
|
|
|
force_orphan: true
|
2020-06-15 21:42:51 +02:00
|
|
|
|
2020-06-11 21:00:32 +02:00
|
|
|
# Refs: https://github.com/rust-lang/crater/blob/9ab6f9697c901c4a44025cf0a39b73ad5b37d198/.github/workflows/bors.yml#L125-L149
|
|
|
|
#
|
|
|
|
# ALL THE PREVIOUS JOBS NEEDS TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
|
|
|
|
|
|
|
ci-success:
|
|
|
|
name: ci
|
|
|
|
if: github.event_name == 'push' && success()
|
2023-02-01 22:52:03 +01:00
|
|
|
needs:
|
2023-02-24 00:10:20 +01:00
|
|
|
- formatcheck
|
2023-02-06 13:35:05 +01:00
|
|
|
- check
|
2023-02-08 19:44:46 +01:00
|
|
|
- clippy
|
2020-06-11 21:00:32 +02:00
|
|
|
- checkexamples
|
2020-10-05 11:35:07 +02:00
|
|
|
- testexamples
|
2023-02-28 23:55:02 +01:00
|
|
|
- tests
|
2023-01-31 23:11:10 +01:00
|
|
|
- docs
|
|
|
|
- mdbook
|
2022-12-15 22:03:55 +01:00
|
|
|
runs-on: ubuntu-22.04
|
2020-06-11 21:00:32 +02:00
|
|
|
steps:
|
|
|
|
- name: Mark the job as a success
|
|
|
|
run: exit 0
|