diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2022-06-11 15:40:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-11 15:40:10 -0400 |
commit | 4f0ee02fc2c165b36c32d96034d60b35cf021a9c (patch) | |
tree | 7d4ee424e6a52e4fa69c466201d6d0fa98a4869e | |
parent | 6bd024aacd8bb5a8cbe16418b776917dbd40e275 (diff) | |
parent | 3fada6695e5e3121ca8eb0f352ad8a1db4ec4006 (diff) | |
download | libgit2-4f0ee02fc2c165b36c32d96034d60b35cf021a9c.tar.gz |
Merge pull request #6306 from libgit2/ethomson/ci_test
Include test results data in CI
-rw-r--r-- | .github/workflows/codeql.yml | 2 | ||||
-rw-r--r-- | .github/workflows/main.yml | 45 | ||||
-rw-r--r-- | .github/workflows/nightly.yml | 2 | ||||
-rw-r--r-- | ci/docker/bionic | 7 | ||||
-rw-r--r-- | ci/docker/centos7 | 7 | ||||
-rw-r--r-- | ci/docker/centos8 | 13 | ||||
-rw-r--r-- | ci/docker/focal | 8 | ||||
-rw-r--r-- | ci/docker/xenial | 8 | ||||
-rwxr-xr-x | ci/getcontainer.sh | 4 |
9 files changed, 83 insertions, 13 deletions
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 38b4a044a..de1ec5e33 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -6,7 +6,7 @@ on: - cron: '21 3 * * 1' env: - docker-registry: docker.pkg.github.com + docker-registry: ghcr.io jobs: analyze: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 69b691ed1..3435556af 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,7 +10,7 @@ on: workflow_dispatch: env: - docker-registry: docker.pkg.github.com + docker-registry: ghcr.io docker-config-path: source/ci/docker jobs: @@ -69,7 +69,7 @@ jobs: if [ "${{ matrix.container.base }}" != "" ]; then BASE_ARG="--build-arg BASE=${{ matrix.container.base }}" fi - docker build -t ${{ env.docker-registry-container-sha }} ${BASE_ARG} -f ${{ env.dockerfile }} . + docker build -t ${{ env.docker-registry-container-sha }} --build-arg UID=$(id -u) --build-arg GID=$(id -g) ${BASE_ARG} -f ${{ env.dockerfile }} . docker tag ${{ env.docker-registry-container-sha }} ${{ env.docker-registry-container-latest }} docker push ${{ env.docker-registry-container-sha }} docker push ${{ env.docker-registry-container-latest }} @@ -85,6 +85,7 @@ jobs: matrix: platform: - name: "Linux (Xenial, GCC, OpenSSL)" + id: xenial-gcc-openssl container: name: xenial env: @@ -93,6 +94,7 @@ jobs: CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON os: ubuntu-latest - name: Linux (Xenial, GCC, mbedTLS) + id: xenial-gcc-mbedtls container: name: xenial env: @@ -101,6 +103,7 @@ jobs: CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON os: ubuntu-latest - name: "Linux (Xenial, Clang, OpenSSL)" + id: xenial-clang-openssl container: name: xenial env: @@ -109,6 +112,7 @@ jobs: CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON os: ubuntu-latest - name: "Linux (Xenial, Clang, mbedTLS)" + id: xenial-clang-mbedtls container: name: xenial env: @@ -117,6 +121,7 @@ jobs: CMAKE_GENERATOR: Ninja os: ubuntu-latest - name: "Linux (MemorySanitizer)" + id: memorysanitizer container: name: focal env: @@ -130,6 +135,7 @@ jobs: UBSAN_OPTIONS: print_stacktrace=1 os: ubuntu-latest - name: "Linux (UndefinedBehaviorSanitizer)" + id: ubsanitizer container: name: focal env: @@ -143,6 +149,7 @@ jobs: UBSAN_OPTIONS: print_stacktrace=1 os: ubuntu-latest - name: "Linux (ThreadSanitizer)" + id: threadsanitizer container: name: focal env: @@ -157,6 +164,7 @@ jobs: TSAN_OPTIONS: suppressions=/home/libgit2/source/script/thread-sanitizer.supp second_deadlock_stack=1 os: ubuntu-latest - name: "macOS" + id: macos os: macos-10.15 env: CC: clang @@ -166,6 +174,7 @@ jobs: SKIP_NEGOTIATE_TESTS: true setup-script: osx - name: "Windows (amd64, Visual Studio)" + id: windows-amd64-vs os: windows-2019 env: ARCH: amd64 @@ -174,6 +183,7 @@ jobs: SKIP_SSH_TESTS: true SKIP_NEGOTIATE_TESTS: true - name: "Windows (x86, Visual Studio)" + id: windows-x86-vs os: windows-2019 env: ARCH: x86 @@ -182,6 +192,7 @@ jobs: SKIP_SSH_TESTS: true SKIP_NEGOTIATE_TESTS: true - name: "Windows (amd64, mingw)" + id: windows-amd64-mingw os: windows-2019 setup-script: mingw env: @@ -193,6 +204,7 @@ jobs: SKIP_SSH_TESTS: true SKIP_NEGOTIATE_TESTS: true - name: "Windows (x86, mingw)" + id: windows-x86-mingw os: windows-2019 setup-script: mingw env: @@ -237,10 +249,12 @@ jobs: export GITTEST_NEGOTIATE_PASSWORD="${{ secrets.GITTEST_NEGOTIATE_PASSWORD }}" if [ -n "${{ matrix.platform.container.name }}" ]; then + mkdir build docker run \ --rm \ - --user libgit2:libgit2 \ + --user "$(id -u):$(id -g)" \ -v "$(pwd)/source:/home/libgit2/source" \ + -v "$(pwd)/build:/home/libgit2/build" \ -w /home/libgit2 \ -e ASAN_SYMBOLIZER_PATH \ -e CC \ @@ -255,13 +269,33 @@ jobs: -e TSAN_OPTIONS \ -e UBSAN_OPTIONS \ ${{ env.docker-registry-container-sha }} \ - /bin/bash -c "mkdir build && cd build && ../source/ci/build.sh && ../source/ci/test.sh" + /bin/bash -c "cd build && ../source/ci/build.sh && ../source/ci/test.sh" else - mkdir build && cd build + mkdir build + cd build ../source/ci/build.sh ../source/ci/test.sh fi shell: bash + - name: Upload test results + uses: actions/upload-artifact@v3 + if: success() || failure() + with: + name: test-results-${{ matrix.platform.id }} + path: build/results_*.xml + + test_results: + name: Test results + needs: [ build ] + runs-on: ubuntu-latest + steps: + - name: Download test results + uses: actions/download-artifact@v3 + - name: Generate test summary + uses: test-summary/action@v1 + with: + paths: 'test-results-*/*.xml' + # Generate documentation using docurium. We'll upload the documentation # as a build artifact so that it can be reviewed as part of a pull @@ -271,6 +305,7 @@ jobs: documentation: name: Generate documentation needs: [ containers ] + if: success() || failure() runs-on: ubuntu-latest steps: - name: Check out repository diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index c26e1e231..5f80ed010 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -7,7 +7,7 @@ on: - cron: '15 1 * * *' env: - docker-registry: docker.pkg.github.com + docker-registry: ghcr.io docker-config-path: source/ci/docker jobs: diff --git a/ci/docker/bionic b/ci/docker/bionic index 51af5c01c..52832f3d3 100644 --- a/ci/docker/bionic +++ b/ci/docker/bionic @@ -38,7 +38,12 @@ RUN cd /tmp && \ rm -rf mbedtls-2.16.2 FROM mbedtls AS adduser -RUN useradd --shell /bin/bash libgit2 --create-home +ARG UID="" +ARG GID="" +RUN if [ "${UID}" != "" ]; then USER_ARG="--uid ${UID}"; fi && \ + if [ "${GID}" != "" ]; then GROUP_ARG="--gid ${GID}"; fi && \ + groupadd ${GROUP_ARG} libgit2 && \ + useradd ${USER_ARG} --gid libgit2 --shell /bin/bash --create-home libgit2 FROM adduser AS configure RUN mkdir /var/run/sshd diff --git a/ci/docker/centos7 b/ci/docker/centos7 index 8105f1442..28ed65081 100644 --- a/ci/docker/centos7 +++ b/ci/docker/centos7 @@ -48,7 +48,12 @@ RUN cd /tmp && \ rm -rf cmake-3.21.1 FROM cmake AS adduser -RUN useradd --shell /bin/bash libgit2 --create-home +ARG UID="" +ARG GID="" +RUN if [ "${UID}" != "" ]; then USER_ARG="--uid ${UID}"; fi && \ + if [ "${GID}" != "" ]; then GROUP_ARG="--gid ${GID}"; fi && \ + groupadd ${GROUP_ARG} libgit2 && \ + useradd ${USER_ARG} --gid libgit2 --shell /bin/bash --create-home libgit2 FROM adduser AS configure ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig diff --git a/ci/docker/centos8 b/ci/docker/centos8 index cca088103..81f0c3c76 100644 --- a/ci/docker/centos8 +++ b/ci/docker/centos8 @@ -1,6 +1,10 @@ ARG BASE=centos:8 -FROM ${BASE} AS yum +FROM ${BASE} AS stream +RUN dnf -y --disablerepo '*' --enablerepo=extras swap centos-linux-repos centos-stream-repos && \ + dnf -y distro-sync + +FROM stream AS yum RUN yum install -y \ which \ bzip2 \ @@ -40,7 +44,12 @@ RUN cd /tmp && \ rm -rf valgrind-3.15.0 FROM valgrind AS adduser -RUN useradd --shell /bin/bash libgit2 --create-home +ARG UID="" +ARG GID="" +RUN if [ "${UID}" != "" ]; then USER_ARG="--uid ${UID}"; fi && \ + if [ "${GID}" != "" ]; then GROUP_ARG="--gid ${GID}"; fi && \ + groupadd ${GROUP_ARG} libgit2 && \ + useradd ${USER_ARG} --gid libgit2 --shell /bin/bash --create-home libgit2 FROM adduser AS configure ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig diff --git a/ci/docker/focal b/ci/docker/focal index 37d7d6356..8061237d7 100644 --- a/ci/docker/focal +++ b/ci/docker/focal @@ -73,7 +73,13 @@ RUN cd /tmp && \ rm -rf valgrind-3.15.0 FROM valgrind AS adduser -RUN useradd --shell /bin/bash libgit2 --create-home +ARG UID="" +ARG GID="" +RUN if [ "${UID}" != "" ]; then USER_ARG="--uid ${UID}"; fi && \ + if [ "${GID}" != "" ]; then GROUP_ARG="--gid ${GID}"; fi && \ + groupadd ${GROUP_ARG} libgit2 && \ + useradd ${USER_ARG} --gid libgit2 --shell /bin/bash --create-home libgit2 + FROM adduser AS configure RUN mkdir /var/run/sshd diff --git a/ci/docker/xenial b/ci/docker/xenial index c19fe421d..c9791462f 100644 --- a/ci/docker/xenial +++ b/ci/docker/xenial @@ -60,7 +60,13 @@ RUN cd /tmp && \ rm -rf valgrind-3.15.0 FROM valgrind AS adduser -RUN useradd --shell /bin/bash libgit2 --create-home +ARG UID="" +ARG GID="" +RUN if [ "${UID}" != "" ]; then USER_ARG="--uid ${UID}"; fi && \ + if [ "${GID}" != "" ]; then GROUP_ARG="--gid ${GID}"; fi && \ + groupadd ${GROUP_ARG} libgit2 && \ + useradd ${USER_ARG} --gid libgit2 --shell /bin/bash --create-home libgit2 + FROM adduser AS configure RUN mkdir /var/run/sshd diff --git a/ci/getcontainer.sh b/ci/getcontainer.sh index 07ef7b8ea..81d0c1d92 100755 --- a/ci/getcontainer.sh +++ b/ci/getcontainer.sh @@ -37,9 +37,13 @@ DOCKER_REGISTRY_CONTAINER_SHA="${DOCKER_REGISTRY_CONTAINER}:${DOCKER_SHA}" echo "docker-registry-container-sha=${DOCKER_REGISTRY_CONTAINER_SHA}" >> $GITHUB_ENV echo "docker-registry-container-latest=${DOCKER_REGISTRY_CONTAINER}:latest" >> $GITHUB_ENV +echo "::: logging in to ${DOCKER_REGISTRY} as ${GITHUB_ACTOR}" + exists="true" docker login https://${DOCKER_REGISTRY} -u ${GITHUB_ACTOR} -p ${GITHUB_TOKEN} || exists="false" +echo "::: pulling ${DOCKER_REGISTRY_CONTAINER_SHA}" + if [ "${exists}" != "false" ]; then docker pull ${DOCKER_REGISTRY_CONTAINER_SHA} || exists="false" fi |