aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
blob: 6de7a125ffe32fe9360ade5c4b90179312228f21 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Copyright 2020 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

# GitHub workflow reference:
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions

name: ci
on: [push, pull_request]
permissions:
  contents: read

jobs:
  aux:
    runs-on: ubuntu-latest
    steps:
      # Checks out syzkaller repo at the path.
      - name: checkout
        uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
        with:
          path: gopath/src/github.com/google/syzkaller
          # This is needed for tools/check-commits.sh
          fetch-depth: 100
      # Caches everything in .cache dir, in partiuclar we want to cache go-build and golangci-lint stuff.
      # For reference see:
      # https://help.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows#using-the-cache-action
      - name: cache
        uses: actions/cache@99d99cd262b87f5f8671407a1e5c1ddfa36ad5ba # v1
        with:
          path: .cache
          key: cache
      # Run make presubmit_aux.
      - name: run
        env:
          GITHUB_PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
          GITHUB_PR_BASE_SHA: ${{ github.event.pull_request.base.sha }}
          GITHUB_PR_COMMITS: ${{ github.event.pull_request.commits }}
        run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env make presubmit_aux
  build:
    runs-on: self-hosted
    steps:
    - name: checkout
      uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
      with:
        path: gopath/src/github.com/google/syzkaller
    - name: cache
      uses: actions/cache@99d99cd262b87f5f8671407a1e5c1ddfa36ad5ba # v1
      with:
        path: .cache
        key: cache
    - name: run
      run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env make presubmit_build
    # Upload coverage report to codecov.io. For reference see:
    # https://github.com/codecov/codecov-action/blob/master/README.md
    - name: codecov
      uses: codecov/codecov-action@2a829b95deaeea2d11d127cc0358005714ff35ea # v3
      with:
        files: gopath/src/github.com/google/syzkaller/.coverage.txt
        flags: unittests
  dashboard:
    runs-on: self-hosted
    steps:
    - name: checkout
      uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
      with:
        path: gopath/src/github.com/google/syzkaller
    - name: cache
      uses: actions/cache@99d99cd262b87f5f8671407a1e5c1ddfa36ad5ba # v1
      with:
        path: .cache
        key: cache
    - name: run
      run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env timeout --signal=SIGINT 15m make presubmit_dashboard
    - name: codecov
      uses: codecov/codecov-action@2a829b95deaeea2d11d127cc0358005714ff35ea # v3
      with:
        files: gopath/src/github.com/google/syzkaller/.coverage.txt
        flags: dashboard
  arch:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        target: [presubmit_arch_linux, presubmit_arch_freebsd, presubmit_arch_netbsd, presubmit_arch_openbsd, presubmit_arch_darwin, presubmit_arch_windows, presubmit_arch_executor]
    steps:
      - name: checkout
        uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
        with:
          path: gopath/src/github.com/google/syzkaller
      - name: cache
        uses: actions/cache@99d99cd262b87f5f8671407a1e5c1ddfa36ad5ba # v1
        with:
          path: .cache
          key: cache
      - name: run
        run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env make ${{ matrix.target }}
  race:
    runs-on: self-hosted
    steps:
    - name: checkout
      uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
      with:
        path: gopath/src/github.com/google/syzkaller
    - name: cache
      uses: actions/cache@99d99cd262b87f5f8671407a1e5c1ddfa36ad5ba # v1
      with:
        path: .cache
        key: cache
    - name: run
      run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env make presubmit_race
  old:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 # v2
        with:
          path: gopath/src/github.com/google/syzkaller
      - name: cache
        uses: actions/cache@99d99cd262b87f5f8671407a1e5c1ddfa36ad5ba # v1
        with:
          path: .cache
          key: cache
      - name: run
        run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-old-env make presubmit_old