11 - if: $CI_PIPELINE_SOURCE == "merge_request_event"
13 - if: $CI_COMMIT_REF_PROTECTED == "true"
20 - saas-linux-medium-amd64
22 CUSTOM_PATH: "/custom"
24 - ./ci/install-dependencies.sh
26 - useradd builder --create-home
27 - chown -R builder "${CI_PROJECT_DIR}"
28 - sudo --preserve-env --set-home --user=builder ./ci/run-build-and-tests.sh
31 if test "$CI_JOB_STATUS" != 'success'
33 sudo --preserve-env --set-home --user=builder ./ci/print-test-failures.sh
40 - jobname: linux-sha256
43 - jobname: linux-reftable
50 - jobname: linux-TEST-vars
54 - jobname: linux-gcc-default
57 - jobname: linux-leaks
60 - jobname: linux-reftable-leaks
63 - jobname: linux-asan-ubsan
72 - t/failed-test-artifacts
80 - saas-macos-medium-m1
82 TEST_OUTPUT_DIRECTORY: "/Volumes/RAMDisk"
84 # Create a 4GB RAM disk that we use to store test output on. This small hack
85 # significantly speeds up tests by more than a factor of 2 because the
86 # macOS runners use network-attached storage as disks, which is _really_
87 # slow with the many small writes that our tests do.
88 - sudo diskutil apfs create $(hdiutil attach -nomount ram://8192000) RAMDisk
89 - ./ci/install-dependencies.sh
91 - ./ci/run-build-and-tests.sh
94 if test "$CI_JOB_STATUS" != 'success'
96 ./ci/print-test-failures.sh
97 mv "$TEST_OUTPUT_DIRECTORY"/failed-test-artifacts t/
102 image: macos-13-xcode-14
104 - jobname: osx-reftable
105 image: macos-13-xcode-14
109 - t/failed-test-artifacts
115 - saas-windows-medium-amd64
119 - ./ci/install-sdk.ps1 -directory "git-sdk"
121 - git-sdk/usr/bin/bash.exe -l -c 'ci/make-test-artifacts.sh artifacts'
130 - saas-windows-medium-amd64
132 - job: "build:mingw64"
135 - git-sdk/usr/bin/bash.exe -l -c 'tar xf artifacts/artifacts.tar.gz'
136 - New-Item -Path .git/info -ItemType Directory
137 - New-Item .git/info/exclude -ItemType File -Value "/git-sdk"
139 - git-sdk/usr/bin/bash.exe -l -c "ci/run-test-slice.sh $CI_NODE_INDEX $CI_NODE_TOTAL"
141 - git-sdk/usr/bin/bash.exe -l -c 'ci/print-test-failures.sh'
144 test:fuzz-smoke-tests:
151 - ./ci/install-dependencies.sh
153 - ./ci/run-build-and-minimal-fuzzers.sh
160 jobname: StaticAnalysis
162 - ./ci/install-dependencies.sh
164 - ./ci/run-static-analysis.sh
165 - ./ci/check-directional-formatting.bash
172 - ./ci/install-dependencies.sh
173 # Since $CI_MERGE_REQUEST_TARGET_BRANCH_SHA is only defined for merged
174 # pipelines, we fallback to $CI_MERGE_REQUEST_DIFF_BASE_SHA, which should
175 # be defined in all pipelines.
178 R=${CI_MERGE_REQUEST_TARGET_BRANCH_SHA-${CI_MERGE_REQUEST_DIFF_BASE_SHA:?}} || exit
179 ./ci/check-whitespace.sh "$R"
181 - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
192 - ./ci/install-dependencies.sh
193 # Since $CI_MERGE_REQUEST_TARGET_BRANCH_SHA is only defined for merged
194 # pipelines, we fallback to $CI_MERGE_REQUEST_DIFF_BASE_SHA, which should
195 # be defined in all pipelines.
198 R=${CI_MERGE_REQUEST_TARGET_BRANCH_SHA-${CI_MERGE_REQUEST_DIFF_BASE_SHA:?}} || exit
199 ./ci/run-style-check.sh "$R"
201 - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
208 jobname: Documentation
210 - ./ci/install-dependencies.sh
212 - ./ci/test-documentation.sh