-
Notifications
You must be signed in to change notification settings - Fork 11
109 lines (99 loc) · 3.51 KB
/
ci.yml
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
name: Testing the test
on:
workflow_dispatch: {}
schedule:
- cron: 00 02 * * 2-6
pull_request:
branches:
- '**'
types:
- opened
- synchronize
- labeled
- unlabeled
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run lints
uses: ./.github/actions/lint_code
test_the_test:
name: Test the test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install runner
uses: ./.github/actions/install_runner
# force /bin/bash in order to test against bash 3.2 on macOS
- name: Test the test (direct)
run: /bin/bash run.sh TEST_THE_TEST
- name: Test group parsing
run: |
/bin/bash run.sh ++dry APPSEC_SCENARIOS
/bin/bash run.sh ++dry TRACER_RELEASE_SCENARIOS
test_the_test_platforms:
strategy:
matrix:
os:
- macos-latest
name: Test the test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install runner
uses: ./.github/actions/install_runner
# force /bin/bash in order to test against bash 3.2 on macOS
- name: Test the test (direct)
run: /bin/bash run.sh TEST_THE_TEST
- name: Test group parsing
run: |
/bin/bash run.sh ++dry APPSEC_SCENARIOS
/bin/bash run.sh ++dry TRACER_RELEASE_SCENARIOS
scenarios:
uses: ./.github/workflows/compute-scenarios.yml
system_tests:
needs:
- lint
- test_the_test
- scenarios
uses: ./.github/workflows/system-tests.yml
secrets: inherit
with:
run_all: ${{ needs.scenarios.outputs.run_all == 'true' }}
run_replay: ${{ needs.scenarios.outputs.run_all == 'true' }}
run_integration: ${{ needs.scenarios.outputs.run_integration == 'true' }}
run_sampling: ${{ needs.scenarios.outputs.run_sampling == 'true' }}
run_profiling: ${{ needs.scenarios.outputs.run_profiling == 'true' }}
run_debugger: ${{ needs.scenarios.outputs.run_debugger == 'true' }}
run_appsec: ${{ needs.scenarios.outputs.run_appsec == 'true' }}
run_open_telemetry: ${{ needs.scenarios.outputs.run_open_telemetry == 'true' }}
run_parametric: ${{ needs.scenarios.outputs.run_parametric == 'true' }}
run_graphql: ${{ needs.scenarios.outputs.run_graphql == 'true' }}
run_libinjection: ${{ needs.scenarios.outputs.run_libinjection == 'true' }}
build_python_base_images: ${{ contains(github.event.pull_request.labels.*.name, 'build-python-base-images') }}
build_buddies_images: ${{ contains(github.event.pull_request.labels.*.name, 'build-buddies-images') }}
build_proxy_image: ${{ contains(github.event.pull_request.labels.*.name, 'build-proxy-image') }}
build_lib_injection_app_images: ${{ contains(github.event.pull_request.labels.*.name, 'build-lib-injection-app-images') }}
update-CI-visibility:
runs-on: ubuntu-latest
needs:
- system_tests
if: always() && github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Update CI Dashboard
run: ./utils/scripts/update_dashboard_CI_visibility.sh system-tests ${{ github.run_id }}-${{ github.run_attempt }}
env:
DD_API_KEY: ${{ secrets.DD_CI_API_KEY }}
DD_APP_KEY: ${{ secrets.DD_CI_APP_KEY }}