| name: linux | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| name: (${{ matrix.target }}, ${{ matrix.cfg_release_channel }}) | |
| env: | |
| CFG_RELEASE_CHANNEL: ${{ matrix.cfg_release_channel }} | |
| 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: 1 | |
| fail-fast: false | |
| matrix: | |
| target: [ | |
| x86_64-unknown-linux-gnu, | |
| ] | |
| cfg_release_channel: [nightly, stable] | |
| steps: | |
| - name: checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| # 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 | |
| rustup target add ${{ matrix.target }} | |
| - name: Build and Test | |
| env: | |
| RUSTFLAGS: -D warnings | |
| CARGO_UNSTABLE_BUILD_DIR_NEW_LAYOUT: true | |
| run: cargo run --manifest-path ci/Cargo.toml build-and-test |