name: Continuous Integration on: push: branches: [master, staging, trying] pull_request: branches: [master] schedule: # UTC - cron: '48 4 * * *' env: CARGO_TERM_COLOR: always jobs: style: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable target: thumbv7em-none-eabihf override: true - name: cargo fmt --check uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} - name: cargo check uses: actions-rs/cargo@v1 with: command: check args: --verbose compile: runs-on: ubuntu-latest continue-on-error: ${{ matrix.toolchain == 'nightly' }} strategy: matrix: toolchain: [stable] features: [''] include: - toolchain: beta features: '' - toolchain: stable features: pounder_v1_1 - toolchain: nightly features: nightly steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} target: thumbv7em-none-eabihf override: true - uses: actions-rs/cargo@v1 with: command: build args: --release --features "${{ matrix.features }}" test: runs-on: ubuntu-latest strategy: matrix: toolchain: - stable - beta steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.toolchain }} - name: cargo test uses: actions-rs/cargo@v1 with: command: test args: --package dsp --target=x86_64-unknown-linux-gnu - name: cargo bench uses: actions-rs/cargo@v1 with: command: bench args: --package dsp --target=x86_64-unknown-linux-gnu doc: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-ruby@v1 with: ruby-version: 2.7.x - uses: actions/cache@v2 with: path: docs/vendor/bundle keys: ${{runner.os}}-gems-${{ hashFiles('**/Gemfile.lock') }} restore-keys: | ${{ runner.os }}-gems- - uses: actions-rs/toolchain@v1 with: toolchain: stable target: thumbv7em-none-eabihf override: true - name: Install Deadlinks uses: actions-rs/cargo@v1 with: command: install args: cargo-deadlinks - name: cargo doc uses: actions-rs/cargo@v1 with: command: doc args: --no-deps -p miniconf -p dsp -p ad9959 -p stabilizer - name: cargo deadlinks uses: actions-rs/cargo@v1 with: command: deadlinks # We intentionally ignore fragments, as RTIC may generate fragments for various # auto-generated code. args: --dir target/thumbv7em-none-eabihf/doc --ignore-fragments --check-http --check-intra-doc-links - uses: lemonarc/jekyll-action@1.0.0 working-directory: docs - name: Setup Site working-directory: docs run: | mkdir _site/stabilizer mv _site/* _site/stabilizer mv ../target/thumbv7em-none-eabihf/doc _site/stabilizer/firmware - name: Test User Manual uses: chabad360/htmlproofer@v1.1 working-directory: docs with: directory: "./_site/stabilizer" arguments: --assume-extension --file-ignore "/stabilizer\/firmware\/.*/" --url-irgnore "/quartiq.de\/stabilizer/" --allow-hash-href --typhoeus_config '{"ssl_verify_peer": false}'