| name: integration |
| on: |
| push: |
| branches: |
| - main |
| pull_request: |
| |
| jobs: |
| integration-tests: |
| runs-on: ubuntu-latest |
| name: ${{ matrix.integration }} |
| strategy: |
| # https://help.github.com/en/actions/getting-started-with-github-actions/about-github-actions#usage-limits |
| # There's a limit of 60 concurrent jobs across all repos in the rust-lang organization. |
| # In order to prevent overusing too much of that 60 limit, we throttle the |
| # number of rustfmt jobs that will run concurrently. |
| max-parallel: 4 |
| fail-fast: false |
| matrix: |
| integration: [ |
| bitflags, |
| log, |
| mdbook, |
| packed_simd, |
| rust-semverver, |
| tempdir, |
| futures-rs, |
| rust-clippy, |
| ] |
| include: |
| # Allowed Failures |
| # Actions doesn't yet support explicitly marking matrix legs as allowed failures |
| # https://github.community/t5/GitHub-Actions/continue-on-error-allow-failure-UI-indication/td-p/37033 |
| # https://github.community/t5/GitHub-Actions/Why-a-matrix-step-will-be-canceled-if-another-one-failed/td-p/30920 |
| # Instead, leverage `continue-on-error` |
| # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on-error |
| # |
| # Failing due to breaking changes in rustfmt 2.0 where empty |
| # match blocks have trailing commas removed |
| # https://github.com/rust-lang/rustfmt/pull/4226 |
| - integration: chalk |
| allow-failure: true |
| - integration: crater |
| allow-failure: true |
| - integration: glob |
| allow-failure: true |
| - integration: stdsimd |
| allow-failure: true |
| # Using old rustfmt configuration option |
| - integration: rand |
| allow-failure: true |
| # Keep this as an allowed failure as it's fragile to breaking changes of rustc. |
| - integration: rust-clippy |
| allow-failure: true |
| # Using old rustfmt configuration option |
| - integration: packed_simd |
| allow-failure: true |
| # calebcartwright (2019-12-24) |
| # Keeping this as an allowed failure since it was flagged as such in the TravisCI config, even though |
| # it appears to have been passing for quite some time. |
| # Original comment was: temporal build failure due to breaking changes in the nightly compiler |
| - integration: rust-semverver |
| allow-failure: true |
| |
| steps: |
| - name: checkout |
| uses: actions/checkout@v4 |
| |
| # Run build |
| - name: install rustup |
| run: | |
| curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup-init.sh |
| sh rustup-init.sh -y --default-toolchain none |
| |
| - name: run integration tests |
| env: |
| INTEGRATION: ${{ matrix.integration }} |
| TARGET: x86_64-unknown-linux-gnu |
| run: ./ci/integration.sh |
| continue-on-error: ${{ matrix.allow-failure == true }} |