aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yml
blob: d1cdda31b00361a7ba5b740241b9663d279e10b7 (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
123
# 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]
jobs:
  smoke:
    runs-on: ubuntu-latest
    steps:
      # Checks out syzkaller repo at the path.
      - name: checkout
        uses: actions/checkout@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@v1
        with:
          path: .cache
          key: cache
      # Run make presubmit_smoke.
      - 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_smoke
      # 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@v1
        with:
          file: gopath/src/github.com/google/syzkaller/.coverage.txt
          flags: unittests
  dashboard:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2
        with:
          path: gopath/src/github.com/google/syzkaller
      - name: cache
        uses: actions/cache@v1
        with:
          path: .cache
          key: cache
      - name: run
        run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-big-env make presubmit_big
      - name: codecov
        uses: codecov/codecov-action@v1
        with:
          file: gopath/src/github.com/google/syzkaller/.coverage.txt
          flags: dashboard
  arch:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2
        with:
          path: gopath/src/github.com/google/syzkaller
      - name: cache
        uses: actions/cache@v1
        with:
          path: .cache
          key: cache
      - name: run
        run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-big-env make presubmit_arch
  race:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v2
        with:
          path: gopath/src/github.com/google/syzkaller
      - name: cache
        uses: actions/cache@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@v2
        with:
          path: gopath/src/github.com/google/syzkaller
      - name: cache
        uses: actions/cache@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
  fuzzit:
    runs-on: ubuntu-latest
    needs: [smoke]
    steps:
      - name: checkout
        uses: actions/checkout@v2
        with:
          path: gopath/src/github.com/google/syzkaller
      - name: cache
        uses: actions/cache@v1
        with:
          path: .cache
          key: cache
      - name: regression
        if: ${{ github.event_name == 'pull_request' }}
        run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env tools/fuzzit.sh local-regression
      - name: fuzzing
        if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
        env:
          FUZZIT_API_KEY: ${{ secrets.FUZZIT_API_KEY }}
        run: gopath/src/github.com/google/syzkaller/.github/workflows/run.sh syz-env tools/fuzzit.sh fuzzing