diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f23270c..cff7b5c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,6 +41,21 @@ jobs: tool: cargo-nextest - run: cargo make check --features "${{ matrix.features }}" + miri: + name: test-with-miri + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - uses: ./.github/actions/setup-build + with: + toolchain: nightly + components: miri + - uses: taiki-e/install-action@v2 + with: + tool: cargo-nextest + - run: cargo make miri build-docs: name: build-docs @@ -65,3 +80,24 @@ jobs: cargo +nightly docs-rs -pautd3-link-twincat cargo +nightly docs-rs -pautd3-modulation-audio-file cargo +nightly docs-rs -pautd3-protobuf + + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - uses: ./.github/actions/setup-build + with: + components: llvm-tools + - uses: SierraSoftworks/setup-grcov@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + version: latest + - run: cargo make cov lcov + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./coverage + disable_search: true + fail_ci_if_error: true diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml deleted file mode 100644 index 775e9019..00000000 --- a/.github/workflows/coverage.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Coverage - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -defaults: - run: - shell: bash - -env: - RUSTFLAGS: "-Cinstrument-coverage" - LLVM_PROFILE_FILE: "target/coverage/%p-%m.profraw" - -jobs: - coverage: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - uses: ./.github/actions/setup-build - with: - components: llvm-tools - - run: cargo install grcov - - run: | - cargo make cov lcov - - uses: codecov/codecov-action@v4 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: ./coverage - disable_search: true - fail_ci_if_error: true diff --git a/.github/workflows/miri.yml b/.github/workflows/miri.yml index 5fa49b0c..151753b4 100644 --- a/.github/workflows/miri.yml +++ b/.github/workflows/miri.yml @@ -31,5 +31,4 @@ jobs: - uses: taiki-e/install-action@v2 with: tool: cargo-nextest - - run: | - cargo make -e CARGO_TOOLCHAIN=${{ inputs.channel }} miri + - run: cargo make -e CARGO_TOOLCHAIN=${{ inputs.channel }} miri diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 93fb5cbf..e25e2777 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -67,6 +67,24 @@ jobs: - if: ${{ needs.test.result == 'failure' || needs.test.result == 'cancelled' }} run: exit 1 + miri: + needs: changed-files + if: ${{ needs.changed-files.outputs.src == 'true' }} + name: test-with-miri + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - uses: ./.github/actions/setup-build + with: + toolchain: nightly + components: miri + - uses: taiki-e/install-action@v2 + with: + tool: cargo-nextest + - run: cargo make miri + build-docs: needs: changed-files if: ${{ needs.changed-files.outputs.src == 'true' }} @@ -93,10 +111,35 @@ jobs: cargo +nightly docs-rs -pautd3-modulation-audio-file cargo +nightly docs-rs -pautd3-protobuf + coverage: + needs: changed-files + if: ${{ needs.changed-files.outputs.src == 'true' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - uses: ./.github/actions/setup-build + with: + components: llvm-tools + - uses: SierraSoftworks/setup-grcov@v1 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + version: latest + - run: cargo make cov lcov + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./coverage + disable_search: true + fail_ci_if_error: true + auto-merge: needs: - all-tests-passed + - miri - build-docs + - coverage permissions: pull-requests: write contents: write