6 - if: $CI_PIPELINE_SOURCE == "merge_request_event"
8 - if: $CI_COMMIT_REF_PROTECTED == "true"
13 - saas-linux-medium-amd64
15 CUSTOM_PATH: "/custom"
17 - ./ci/install-dependencies.sh
19 - useradd builder --create-home
20 - chown -R builder "${CI_PROJECT_DIR}"
21 - sudo --preserve-env --set-home --user=builder ./ci/run-build-and-tests.sh
24 if test "$CI_JOB_STATUS" != 'success'
26 sudo --preserve-env --set-home --user=builder ./ci/print-test-failures.sh
33 - jobname: linux-sha256
36 - jobname: linux-reftable
43 - jobname: linux-TEST-vars
47 - jobname: linux-gcc-default
50 - jobname: linux-leaks
53 - jobname: linux-reftable-leaks
56 - jobname: linux-asan-ubsan
65 - t/failed-test-artifacts
71 - saas-macos-medium-m1
73 TEST_OUTPUT_DIRECTORY: "/Volumes/RAMDisk"
75 # Create a 4GB RAM disk that we use to store test output on. This small hack
76 # significantly speeds up tests by more than a factor of 2 because the
77 # macOS runners use network-attached storage as disks, which is _really_
78 # slow with the many small writes that our tests do.
79 - sudo diskutil apfs create $(hdiutil attach -nomount ram://8192000) RAMDisk
80 - ./ci/install-dependencies.sh
82 - ./ci/run-build-and-tests.sh
85 if test "$CI_JOB_STATUS" != 'success'
87 ./ci/print-test-failures.sh
88 mv "$TEST_OUTPUT_DIRECTORY"/failed-test-artifacts t/
93 image: macos-13-xcode-14
95 - jobname: osx-reftable
96 image: macos-13-xcode-14
100 - t/failed-test-artifacts
103 test:fuzz-smoke-tests:
108 - ./ci/install-dependencies.sh
110 - ./ci/run-build-and-minimal-fuzzers.sh
115 jobname: StaticAnalysis
117 - ./ci/install-dependencies.sh
119 - ./ci/run-static-analysis.sh
120 - ./ci/check-directional-formatting.bash
125 - ./ci/install-dependencies.sh
126 # Since $CI_MERGE_REQUEST_TARGET_BRANCH_SHA is only defined for merged
127 # pipelines, we fallback to $CI_MERGE_REQUEST_DIFF_BASE_SHA, which should
128 # be defined in all pipelines.
131 R=${CI_MERGE_REQUEST_TARGET_BRANCH_SHA-${CI_MERGE_REQUEST_DIFF_BASE_SHA:?}} || exit
132 ./ci/check-whitespace.sh "$R"
134 - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
143 - ./ci/install-dependencies.sh
144 # Since $CI_MERGE_REQUEST_TARGET_BRANCH_SHA is only defined for merged
145 # pipelines, we fallback to $CI_MERGE_REQUEST_DIFF_BASE_SHA, which should
146 # be defined in all pipelines.
149 R=${CI_MERGE_REQUEST_TARGET_BRANCH_SHA-${CI_MERGE_REQUEST_DIFF_BASE_SHA:?}} || exit
150 ./ci/run-style-check.sh "$R"
152 - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
157 jobname: Documentation
159 - ./ci/install-dependencies.sh
161 - ./ci/test-documentation.sh