Unverified Commit cbae7756 by Edward Thomson Committed by GitHub

Merge pull request #6696 from libgit2/ethomson/ci

ci: improvements to prepare for Cygwin support
parents a360b013 90136cd4
* text=auto * text=auto
ci/**/*.sh text eol=lf
script/**/*.sh text eol=lf
tests/resources/** linguist-vendored tests/resources/** linguist-vendored
...@@ -5,14 +5,19 @@ description: Run a build step in a container or directly on the Actions runner ...@@ -5,14 +5,19 @@ description: Run a build step in a container or directly on the Actions runner
inputs: inputs:
command: command:
description: Command to run description: Command to run
required: true
type: string type: string
required: true
container: container:
description: Optional container to run in description: Optional container to run in
type: string type: string
container-version: container-version:
description: Version of the container to run description: Version of the container to run
type: string type: string
shell:
description: Shell to use
type: string
required: true
default: 'bash'
runs: runs:
using: 'composite' using: 'composite'
...@@ -42,4 +47,4 @@ runs: ...@@ -42,4 +47,4 @@ runs:
else else
${{ inputs.command }} ${{ inputs.command }}
fi fi
shell: bash shell: ${{ inputs.shell != '' && inputs.shell || 'bash' }}
...@@ -29,42 +29,43 @@ jobs: ...@@ -29,42 +29,43 @@ jobs:
strategy: strategy:
matrix: matrix:
platform: platform:
# All builds: core platforms
- name: "Linux (Xenial, GCC, OpenSSL, libssh2)" - name: "Linux (Xenial, GCC, OpenSSL, libssh2)"
id: xenial-gcc-openssl id: xenial-gcc-openssl
os: ubuntu-latest
container: container:
name: xenial name: xenial
env: env:
CC: gcc CC: gcc
CMAKE_GENERATOR: Ninja CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON
os: ubuntu-latest
- name: Linux (Xenial, GCC, mbedTLS, OpenSSH) - name: Linux (Xenial, GCC, mbedTLS, OpenSSH)
id: xenial-gcc-mbedtls id: xenial-gcc-mbedtls
os: ubuntu-latest
container: container:
name: xenial name: xenial
env: env:
CC: gcc CC: gcc
CMAKE_GENERATOR: Ninja CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec
os: ubuntu-latest
- name: "Linux (Xenial, Clang, OpenSSL, OpenSSH)" - name: "Linux (Xenial, Clang, OpenSSL, OpenSSH)"
id: xenial-clang-openssl id: xenial-clang-openssl
os: ubuntu-latest
container: container:
name: xenial name: xenial
env: env:
CC: clang CC: clang
CMAKE_GENERATOR: Ninja CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec
os: ubuntu-latest
- name: "Linux (Xenial, Clang, mbedTLS, libssh2)" - name: "Linux (Xenial, Clang, mbedTLS, libssh2)"
id: xenial-clang-mbedtls id: xenial-clang-mbedtls
os: ubuntu-latest
container: container:
name: xenial name: xenial
env: env:
CC: clang CC: clang
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2 CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2
CMAKE_GENERATOR: Ninja CMAKE_GENERATOR: Ninja
os: ubuntu-latest
- name: "macOS" - name: "macOS"
id: macos id: macos
os: macos-12 os: macos-12
...@@ -125,9 +126,9 @@ jobs: ...@@ -125,9 +126,9 @@ jobs:
SKIP_SSH_TESTS: true SKIP_SSH_TESTS: true
SKIP_NEGOTIATE_TESTS: true SKIP_NEGOTIATE_TESTS: true
# Sanitizers # All builds: sanitizers
- name: "Sanitizer (Memory)" - name: "Sanitizer (Memory)"
id: memorysanitizer id: sanitizer-memory
container: container:
name: focal name: focal
env: env:
...@@ -141,7 +142,8 @@ jobs: ...@@ -141,7 +142,8 @@ jobs:
UBSAN_OPTIONS: print_stacktrace=1 UBSAN_OPTIONS: print_stacktrace=1
os: ubuntu-latest os: ubuntu-latest
- name: "Sanitizer (UndefinedBehavior)" - name: "Sanitizer (UndefinedBehavior)"
id: ubsanitizer id: sanitizer-ub
os: ubuntu-latest
container: container:
name: focal name: focal
env: env:
...@@ -153,9 +155,9 @@ jobs: ...@@ -153,9 +155,9 @@ jobs:
SKIP_NEGOTIATE_TESTS: true SKIP_NEGOTIATE_TESTS: true
ASAN_SYMBOLIZER_PATH: /usr/bin/llvm-symbolizer-10 ASAN_SYMBOLIZER_PATH: /usr/bin/llvm-symbolizer-10
UBSAN_OPTIONS: print_stacktrace=1 UBSAN_OPTIONS: print_stacktrace=1
os: ubuntu-latest
- name: "Sanitizer (Thread)" - name: "Sanitizer (Thread)"
id: threadsanitizer id: sanitizer-thread
os: ubuntu-latest
container: container:
name: focal name: focal
env: env:
...@@ -168,21 +170,21 @@ jobs: ...@@ -168,21 +170,21 @@ jobs:
ASAN_SYMBOLIZER_PATH: /usr/bin/llvm-symbolizer-10 ASAN_SYMBOLIZER_PATH: /usr/bin/llvm-symbolizer-10
UBSAN_OPTIONS: print_stacktrace=1 UBSAN_OPTIONS: print_stacktrace=1
TSAN_OPTIONS: suppressions=/home/libgit2/source/script/thread-sanitizer.supp second_deadlock_stack=1 TSAN_OPTIONS: suppressions=/home/libgit2/source/script/thread-sanitizer.supp second_deadlock_stack=1
os: ubuntu-latest
# Experimental: SHA256 support # All builds: experimental SHA256 support
- name: "Linux (SHA256, Xenial, Clang, OpenSSL)" - name: "Linux (SHA256, Xenial, Clang, OpenSSL)"
id: xenial-clang-openssl id: xenial-clang-openssl
os: ubuntu-latest
container: container:
name: xenial name: xenial
env: env:
CC: clang CC: clang
CMAKE_GENERATOR: Ninja CMAKE_GENERATOR: Ninja
CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON -DEXPERIMENTAL_SHA256=ON CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON -DEXPERIMENTAL_SHA256=ON
os: ubuntu-latest
- name: "macOS (SHA256)" - name: "macOS (SHA256)"
id: macos id: macos
os: macos-12 os: macos-12
setup-script: osx
env: env:
CC: clang CC: clang
CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON -DEXPERIMENTAL_SHA256=ON CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON -DEXPERIMENTAL_SHA256=ON
...@@ -190,7 +192,6 @@ jobs: ...@@ -190,7 +192,6 @@ jobs:
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
SKIP_SSH_TESTS: true SKIP_SSH_TESTS: true
SKIP_NEGOTIATE_TESTS: true SKIP_NEGOTIATE_TESTS: true
setup-script: osx
- name: "Windows (SHA256, amd64, Visual Studio)" - name: "Windows (SHA256, amd64, Visual Studio)"
id: windows-amd64-vs id: windows-amd64-vs
os: windows-2019 os: windows-2019
...@@ -238,15 +239,17 @@ jobs: ...@@ -238,15 +239,17 @@ jobs:
- name: Build - name: Build
uses: ./source/.github/actions/run-build uses: ./source/.github/actions/run-build
with: with:
command: cd build && ../source/ci/build.sh command: cd ${BUILD_WORKSPACE:-.}/build && ../source/ci/build.sh
container: ${{ matrix.platform.container.name }} container: ${{ matrix.platform.container.name }}
container-version: ${{ env.docker-registry-container-sha }} container-version: ${{ env.docker-registry-container-sha }}
shell: ${{ matrix.platform.shell }}
- name: Test - name: Test
uses: ./source/.github/actions/run-build uses: ./source/.github/actions/run-build
with: with:
command: cd build && ../source/ci/test.sh command: cd ${BUILD_WORKSPACE:-.}/build && ../source/ci/test.sh
container: ${{ matrix.platform.container.name }} container: ${{ matrix.platform.container.name }}
container-version: ${{ env.docker-registry-container-sha }} container-version: ${{ env.docker-registry-container-sha }}
shell: ${{ matrix.platform.shell }}
- name: Upload test results - name: Upload test results
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
if: success() || failure() if: success() || failure()
......
...@@ -61,6 +61,8 @@ if test -n "${CC}"; then ...@@ -61,6 +61,8 @@ if test -n "${CC}"; then
"${CC}" --version 2>&1 | indent "${CC}" --version 2>&1 | indent
fi fi
echo "Environment:" echo "Environment:"
echo "PATH=${BUILD_PATH}" | indent
if test -n "${CC}"; then if test -n "${CC}"; then
echo "CC=${CC}" | indent echo "CC=${CC}" | indent
fi fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment