summaryrefslogtreecommitdiffhomepage
path: root/.buildkite/pipeline.yaml
blob: ba054319cc2b301efe5e98396b59214e2cc76646 (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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
_templates:
  common: &common
    timeout_in_minutes: 30
    retry:
      automatic:
        - exit_status: -1
          limit: 10
        - exit_status: "*"
          limit: 2

steps:
  # Run basic smoke tests before preceding to other tests.
  - <<: *common
    label: ":fire: Smoke tests"
    command: make smoke-tests
  - wait

  # Check that the Go branch builds.
  - <<: *common
    label: ":golang: Go branch"
    commands:
      - make go
      - git checkout go && git clean -f
      - go build ./...

  # Release workflow.
  - <<: *common
    label: ":ship: Release tests"
    commands: make release

  # Basic unit tests.
  - <<: *common
    label: ":test_tube: Unit tests"
    command: make unit-tests

  # All system call tests.
  - <<: *common
    label: ":toolbox: System call tests"
    command: make syscall-tests
    parallelism: 20

  # Integration tests.
  - <<: *common
    label: ":parachute: FUSE tests"
    command: make fuse-tests
  - <<: *common
    label: ":docker: Docker tests"
    command: make docker-tests
  - <<: *common
    label: ":goggles: Overlay tests"
    command: make overlay-tests
  - <<: *common
    label: ":safety_pin: Host network tests"
    command: make hostnet-tests
  - <<: *common
    label: ":satellite: SWGSO tests"
    command: make swgso-tests
  - <<: *common
    label: ":coffee: Do tests"
    command: make do-tests
  - <<: *common
    label: ":person_in_lotus_position: KVM tests"
    command: make kvm-tests
  - <<: *common
    label: ":docker: Containerd 1.3.9 tests"
    command: make containerd-test-1.3.9
  - <<: *common
    label: ":docker: Containerd 1.4.3 tests"
    command: make containerd-test-1.4.3

  # Check the website builds.
  - <<: *common
    label: ":earth_americas: Website tests"
    command: make website-build

  # Networking tests.
  - <<: *common
    label: ":table_tennis_paddle_and_ball: IPTables tests"
    command: make iptables-tests
  - <<: *common
    label: ":construction_worker: Packetdrill tests"
    command: make packetdrill-tests
  - <<: *common
    label: ":hammer: Packetimpact tests"
    command: make packetimpact-tests

  # Runtime tests.
  - <<: *common
    label: ":php: PHP runtime tests"
    command: make php7.3.6-runtime-tests_vfs2
    parallelism: 10
  - <<: *common
    label: ":java: Java runtime tests"
    command: make java11-runtime-tests_vfs2
    parallelism: 40
  - <<: *common
    label: ":golang: Go runtime tests"
    command: make go1.12-runtime-tests_vfs2
    parallelism: 10
  - <<: *common
    label: ":node: NodeJS runtime tests"
    command: make nodejs12.4.0-runtime-tests_vfs2
    parallelism: 10
  - <<: *common
    label: ":python: Python runtime tests"
    command: make python3.7.3-runtime-tests_vfs2
    parallelism: 10

  # Runtime tests (VFS1).
  - <<: *common
    label: ":php: PHP runtime tests (VFS1)"
    command: make php7.3.6-runtime-tests
    parallelism: 10
    if: build.message =~ /VFS1/ || build.branch == "master"
  - <<: *common
    label: ":java: Java runtime tests (VFS1)"
    command: make java11-runtime-tests
    parallelism: 40
    if: build.message =~ /VFS1/ || build.branch == "master"
  - <<: *common
    label: ":golang: Go runtime tests (VFS1)"
    command: make go1.12-runtime-tests
    parallelism: 10
    if: build.message =~ /VFS1/ || build.branch == "master"
  - <<: *common
    label: ":node: NodeJS runtime tests (VFS1)"
    command: make nodejs12.4.0-runtime-tests
    parallelism: 10
    if: build.message =~ /VFS1/ || build.branch == "master"
  - <<: *common
    label: ":python: Python runtime tests (VFS1)"
    command: make python3.7.3-runtime-tests
    parallelism: 10
    if: build.message =~ /VFS1/ || build.branch == "master"

  # The final step here will aggregate data uploaded by all other steps into an
  # annotation that will appear at the top of the build, with useful information.
  #
  # See .buildkite/summarize.sh and .buildkite/hooks/post-command for more.
  - wait
  - <<: *common
    label: ":yawning_face: Wait"
    command: "true"
    key: "wait"
  - <<: *common
    label: ":thisisfine: Summarize"
    command: .buildkite/summarize.sh
    allow_dependency_failure: true
    depends_on: "wait"