mirror of
https://github.com/git/git
synced 2024-08-25 10:45:59 +00:00
![Patrick Steinhardt](/assets/img/avatar_default.png)
Add a job to GitLab CI which runs tests on macOS, which matches the equivalent "osx-clang" job that we have for GitHub Workflows. One significant difference though is that this new job runs on Apple M1 machines and thus uses the "arm64" architecture. As GCC does not yet support this comparatively new architecture we cannot easily include an equivalent for the "osx-gcc" job that exists in GitHub Workflows. Note that one test marked as `test_must_fail` is surprisingly passing: t7815-grep-binary.sh (Wstat: 0 Tests: 22 Failed: 0) TODO passed: 12 This seems to boil down to an unexpected difference in how regcomp(3P) works when matching NUL bytes. Cross-checking with the respective GitHub job shows that this is not an issue unique to the GitLab CI job as it passes in the same way there. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
96 lines
2.4 KiB
YAML
96 lines
2.4 KiB
YAML
default:
|
|
timeout: 2h
|
|
|
|
workflow:
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
- if: $CI_COMMIT_TAG
|
|
- if: $CI_COMMIT_REF_PROTECTED == "true"
|
|
|
|
test:linux:
|
|
image: $image
|
|
before_script:
|
|
- ./ci/install-docker-dependencies.sh
|
|
script:
|
|
- useradd builder --create-home
|
|
- chown -R builder "${CI_PROJECT_DIR}"
|
|
- sudo --preserve-env --set-home --user=builder ./ci/run-build-and-tests.sh
|
|
after_script:
|
|
- |
|
|
if test "$CI_JOB_STATUS" != 'success'
|
|
then
|
|
sudo --preserve-env --set-home --user=builder ./ci/print-test-failures.sh
|
|
fi
|
|
parallel:
|
|
matrix:
|
|
- jobname: linux-sha256
|
|
image: ubuntu:latest
|
|
CC: clang
|
|
- jobname: linux-gcc
|
|
image: ubuntu:20.04
|
|
CC: gcc
|
|
CC_PACKAGE: gcc-8
|
|
- jobname: linux-TEST-vars
|
|
image: ubuntu:20.04
|
|
CC: gcc
|
|
CC_PACKAGE: gcc-8
|
|
- jobname: linux-gcc-default
|
|
image: ubuntu:latest
|
|
CC: gcc
|
|
- jobname: linux-leaks
|
|
image: ubuntu:latest
|
|
CC: gcc
|
|
- jobname: linux-asan-ubsan
|
|
image: ubuntu:latest
|
|
CC: clang
|
|
- jobname: pedantic
|
|
image: fedora:latest
|
|
- jobname: linux-musl
|
|
image: alpine:latest
|
|
artifacts:
|
|
paths:
|
|
- t/failed-test-artifacts
|
|
when: on_failure
|
|
|
|
test:osx:
|
|
image: $image
|
|
tags:
|
|
- saas-macos-medium-m1
|
|
variables:
|
|
TEST_OUTPUT_DIRECTORY: "/Volumes/RAMDisk"
|
|
before_script:
|
|
# Create a 4GB RAM disk that we use to store test output on. This small hack
|
|
# significantly speeds up tests by more than a factor of 2 because the
|
|
# macOS runners use network-attached storage as disks, which is _really_
|
|
# slow with the many small writes that our tests do.
|
|
- sudo diskutil apfs create $(hdiutil attach -nomount ram://8192000) RAMDisk
|
|
- ./ci/install-dependencies.sh
|
|
script:
|
|
- ./ci/run-build-and-tests.sh
|
|
after_script:
|
|
- |
|
|
if test "$CI_JOB_STATUS" != 'success'
|
|
then
|
|
./ci/print-test-failures.sh
|
|
mv "$TEST_OUTPUT_DIRECTORY"/failed-test-artifacts t/
|
|
fi
|
|
parallel:
|
|
matrix:
|
|
- jobname: osx-clang
|
|
image: macos-13-xcode-14
|
|
CC: clang
|
|
artifacts:
|
|
paths:
|
|
- t/failed-test-artifacts
|
|
when: on_failure
|
|
|
|
static-analysis:
|
|
image: ubuntu:22.04
|
|
variables:
|
|
jobname: StaticAnalysis
|
|
before_script:
|
|
- ./ci/install-docker-dependencies.sh
|
|
script:
|
|
- ./ci/run-static-analysis.sh
|
|
- ./ci/check-directional-formatting.bash
|