File: main.yml

package info (click to toggle)
rust-oauth2 5.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 656 kB
  • sloc: makefile: 2
file content (89 lines) | stat: -rw-r--r-- 3,138 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: CI

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request events.
  push: {}
  pull_request: {}
  schedule:
    # Run daily to catch breakages in new Rust versions as well as new cargo audit findings.
    - cron: '0 16 * * *'

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

env:
  CARGO_TERM_COLOR: always

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  test:
    # The type of runner that the job will run on
    runs-on: ${{ matrix.rust_os.os }}

    strategy:
      fail-fast: false
      matrix:
        rust_os:
          - { rust: 1.65.0, os: ubuntu-20.04 }
          - { rust: stable, os: ubuntu-latest }
          - { rust: beta, os: ubuntu-latest }
          - { rust: nightly, os: ubuntu-latest }

    env:
      CARGO_NET_GIT_FETCH_WITH_CLI: "true"

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      - name: Install Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.rust_os.rust }}
          override: true
          components: clippy, rustfmt
          target: wasm32-unknown-unknown

      # Newer dependency versions may not support the MSRV, so we use a Cargo.lock file for those
      # builds.
      - name: Use Rust 1.65 lockfile
        if: ${{ matrix.rust_os.rust == '1.65.0' }}
        run: |
          cp Cargo-1.65.lock Cargo.lock
          echo "CARGO_LOCKED=--locked" >> $GITHUB_ENV

      - name: Run tests
        run: cargo ${CARGO_LOCKED} test --tests --examples
      - name: Doc tests
        run: |
          cargo ${CARGO_LOCKED} test --doc
          cargo ${CARGO_LOCKED} test --doc --no-default-features
          cargo ${CARGO_LOCKED} test --doc --all-features
      - name: Test with all features enabled
        run: cargo ${CARGO_LOCKED} test --all-features
      # Curl without reqwest (examples will not build)
      - name: Test with curl (w/o reqwest)
        run: cargo ${CARGO_LOCKED} test --tests --features curl --no-default-features

      - name: Check fmt
        if: ${{ matrix.rust_os.rust == '1.65.0' }}
        run: cargo ${CARGO_LOCKED} fmt --all -- --check

      - name: Clippy
        if: ${{ matrix.rust_os.rust == '1.65.0' }}
        run: cargo ${CARGO_LOCKED} clippy --all --all-features -- --deny warnings

      - name: Audit
        if: ${{ matrix.rust_os.rust == 'stable' }}
        run: |
          cargo ${CARGO_LOCKED} install --force cargo-audit
          # The chrono thread safety issue doesn't affect this crate since the crate does not rely
          # on the system's local time zone, only UTC. See:
          # https://github.com/chronotope/chrono/issues/499#issuecomment-946388161
          cargo ${CARGO_LOCKED} audit --ignore RUSTSEC-2020-0159

      - name: Check WASM build
        run: cargo ${CARGO_LOCKED} check --target wasm32-unknown-unknown