...

Text file src/github.com/linkerd/linkerd2/.github/workflows/rust.yml

Documentation: github.com/linkerd/linkerd2/.github/workflows

     1name: Rust
     2
     3on:
     4  pull_request:
     5    paths:
     6      - .github/workflows/rust.yml
     7      - Cargo.lock
     8      - "**/Cargo.toml"
     9      - justfile
    10      - deny.toml
    11      - "**/*.rs"
    12      - policy-*/Dockerfile
    13      - rust-toolchain.toml
    14      - bin/rust-toolchain-version
    15
    16permissions:
    17  contents: read
    18
    19env:
    20  CARGO_INCREMENTAL: 0
    21  CARGO_NET_RETRY: 10
    22  PROTOC_NO_VENDOR: 1
    23  RUST_BACKTRACE: short
    24  RUSTUP_MAX_RETRIES: 10
    25
    26jobs:
    27  audit:
    28    timeout-minutes: 10
    29    runs-on: ubuntu-22.04
    30    strategy:
    31      matrix:
    32        checks:
    33          - advisories
    34          - bans licenses sources
    35    # Prevent sudden announcement of a new advisory from failing Ci.
    36    continue-on-error: ${{ matrix.checks == 'advisories' }}
    37    steps:
    38      - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
    39      - uses: EmbarkStudios/cargo-deny-action@3f4a782664881cf5725d0ffd23969fcce89fd868
    40        with:
    41          command: check ${{ matrix.checks }}
    42
    43  fmt:
    44    timeout-minutes: 5
    45    runs-on: ubuntu-22.04
    46    container: ghcr.io/linkerd/dev:v43-rust
    47    steps:
    48      - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
    49      - run: git config --global --add safe.directory "$PWD" # actions/runner#2033
    50      - run: just rs-check-fmt
    51
    52  clippy:
    53    timeout-minutes: 20
    54    runs-on: ubuntu-22.04
    55    container: ghcr.io/linkerd/dev:v43-rust
    56    steps:
    57      - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
    58      - run: git config --global --add safe.directory "$PWD" # actions/runner#2033
    59      - run: just rs-fetch
    60      - run: just rs-clippy
    61      - run: just rs-doc --no-deps
    62
    63  check:
    64    timeout-minutes: 20
    65    runs-on: ubuntu-22.04
    66    container: ghcr.io/linkerd/dev:v43-rust
    67    steps:
    68      - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
    69      - run: git config --global --add safe.directory "$PWD" # actions/runner#2033
    70      - run: just rs-fetch
    71      - run: just rs-check-dirs
    72
    73  test:
    74    name: test
    75    runs-on: ubuntu-22.04
    76    timeout-minutes: 15
    77    container: ghcr.io/linkerd/dev:v43-rust
    78    steps:
    79      - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
    80      - run: git config --global --add safe.directory "$PWD" # actions/runner#2033
    81      - run: just rs-fetch
    82      - run: just rs-test-build
    83      - run: just rs-test
    84
    85  rust-toolchain:
    86    name: rust toolchain
    87    runs-on: ubuntu-22.04
    88    timeout-minutes: 2
    89    steps:
    90      - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29
    91      - shell: bash
    92        run: |
    93          toolchain_version="$(./bin/rust-toolchain-version)"
    94
    95          ex=0
    96          # Check this workflow against the version in rust-toolchain.
    97          versions=$(sed -nE 's|.*docker://(.*/)?rust:([^ #]+).*|\2|p' .github/workflows/*)
    98          for mismatch in $(echo "$versions" | grep -vF "$toolchain_version" || true) ; do
    99            echo "::error file=.github/workflows/rust.yml::Workflow uses incorrect rust version(s): $mismatch (expected '$toolchain_version)')"
   100            ex=$((ex + 1))
   101          done
   102
   103          exit $ex

View as plain text