summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/.github/workflows/clippy_dev.yml
blob: 22051093c9cf960992c3a80923e71f72ef4414f1 (plain)
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
name: Clippy Dev Test

on:
  push:
    branches:
      - auto
      - try
  pull_request:
    # Only run on paths, that get checked by the clippy_dev tool
    paths:
    - 'CHANGELOG.md'
    - 'README.md'
    - '**.stderr'
    - '**.rs'

env:
  RUST_BACKTRACE: 1

jobs:
  clippy_dev:
    runs-on: ubuntu-latest

    steps:
    # Setup
    - name: Checkout
      uses: actions/checkout@v3.0.2

    # Run
    - name: Build
      run: cargo build --features deny-warnings
      working-directory: clippy_dev

    - name: Test update_lints
      run: cargo dev update_lints --check

    - name: Test fmt
      run: cargo dev fmt --check

    - name: Test cargo dev new lint
      run: |
        cargo dev new_lint --name new_early_pass --pass early
        cargo dev new_lint --name new_late_pass --pass late
        cargo check
        git reset --hard HEAD

  # These jobs doesn't actually test anything, but they're only used to tell
  # bors the build completed, as there is no practical way to detect when a
  # workflow is successful listening to webhooks only.
  #
  # ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!

  end-success:
    name: bors dev test finished
    if: github.event.pusher.name == 'bors' && success()
    runs-on: ubuntu-latest
    needs: [clippy_dev]

    steps:
      - name: Mark the job as successful
        run: exit 0

  end-failure:
    name: bors dev test finished
    if: github.event.pusher.name == 'bors' && (failure() || cancelled())
    runs-on: ubuntu-latest
    needs: [clippy_dev]

    steps:
      - name: Mark the job as a failure
        run: exit 1