10000 Merge pull request #6697 from libgit2/ethomson/ci · russell/libgit2@517d2cd · GitHub
[go: up one dir, main page]

Skip to content

Commit 517d2cd

Browse files
authored
Merge pull request libgit2#6697 from libgit2/ethomson/ci
Yet more CI improvements
2 parents da1e957 + 383e5ed commit 517d2cd

File tree

8 files changed

+154
-64
lines changed

8 files changed

+154
-64
lines changed

.github/workflows/main.yml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,42 +30,42 @@ jobs:
3030
matrix:
3131
platform:
3232
# All builds: core platforms
33-
- name: "Linux (Xenial, GCC, OpenSSL, libssh2)"
34-
id: xenial-gcc-openssl
33+
- name: "Linux (Noble, GCC, OpenSSL, libssh2)"
34+
id: noble-gcc-openssl
3535
os: ubuntu-latest
3636
container:
37-
name: xenial
37+
name: noble
3838
env:
3939
CC: gcc
4040
CMAKE_GENERATOR: Ninja
4141
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
42-
- name: Linux (Xenial, GCC, mbedTLS, OpenSSH)
43-
id: xenial-gcc-mbedtls
42+
- name: "Linux (Noble, Clang, mbedTLS, OpenSSH)"
43+
id: noble-clang-mbedtls
4444
os: ubuntu-latest
4545
container:
46-
name: xenial
46+
name: noble
4747
env:
48-
CC: gcc
48+
CC: clang
49+
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec
4950
CMAKE_GENERATOR: Ninja
50-
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec
51-
- name: "Linux (Xenial, Clang, OpenSSL, OpenSSH)"
52-
id: xenial-clang-openssl
51+
- name: "Linux (Xenial, GCC, OpenSSL, OpenSSH)"
52+
id: xenial-gcc-openssl
5353
os: ubuntu-latest
5454
container:
5555
name: xenial
5656
env:
57-
CC: clang
57+
CC: gcc
5858
CMAKE_GENERATOR: Ninja
59-
CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec
59+
CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON
6060
- name: "Linux (Xenial, Clang, mbedTLS, libssh2)"
61-
id: xenial-clang-mbedtls
61+
id: xenial-gcc-mbedtls
6262
os: ubuntu-latest
6363
container:
6464
name: xenial
6565
env:
6666
CC: clang
67-
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2
6867
CMAKE_GENERATOR: Ninja
68+
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2
6969
- name: "macOS"
7070
id: macos
7171
os: macos-12
@@ -130,9 +130,9 @@ jobs:
130130
- name: "Sanitizer (Memory)"
131131
id: sanitizer-memory
132132
container:
133-
name: focal
133+
name: noble
134134
env:
135-
CC: clang-10
135+
CC: clang
136136
CFLAGS: -fsanitize=memory -fsanitize-memory-track-origins=2 -fsanitize-blacklist=/home/libgit2/source/script/sanitizers.supp -fno-optimize-sibling-calls -fno-omit-frame-pointer
137137
CMAKE_OPTIONS: -DCMAKE_PREFIX_PATH=/usr/local/msan -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON
138138
CMAKE_GENERATOR: Ninja
@@ -145,9 +145,9 @@ jobs:
145145
id: sanitizer-ub
146146
os: ubuntu-latest
147147
container:
148-
name: focal
148+
name: noble
149149
env:
150-
CC: clang-10
150+
CC: clang
151151
CFLAGS: -fsanitize=undefined,nullability -fno-sanitize-recover=undefined,nullability -fsanitize-blacklist=/home/libgit2/source/script/sanitizers.supp -fno-optimize-sibling-calls -fno-omit-frame-pointer
152152
CMAKE_OPTIONS: -DCMAKE_PREFIX_PATH=/usr/local -DUSE_HTTPS=OpenSSL -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON
153153
CMAKE_GENERATOR: Ninja
@@ -159,9 +159,9 @@ jobs:
159159
id: sanitizer-thread
160160
os: ubuntu-latest
161161
container:
162-
name: focal
162+
name: noble
163163
env:
164-
CC: clang-10
164+
CC: clang
165165
CFLAGS: -fsanitize=thread -fno-optimize-sibling-calls -fno-omit-frame-pointer
166166
CMAKE_OPTIONS: -DCMAKE_PREFIX_PATH=/usr/local -DUSE_HTTPS=OpenSSL -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON
167167
CMAKE_GENERATOR: Ninja

.github/workflows/nightly.yml

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -27,42 +27,42 @@ jobs:
2727
matrix:
2828
platform:
2929
# All builds: core platforms
30-
- name: "Linux (Xenial, GCC, OpenSSL, libssh2)"
31-
id: xenial-gcc-openssl
30+
- name: "Linux (Noble, GCC, OpenSSL, libssh2)"
31+
id: noble-gcc-openssl
3232
os: ubuntu-latest
3333
container:
34-
name: xenial
34+
name: noble
3535
env:
3636
CC: gcc
3737
CMAKE_GENERATOR: Ninja
3838
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
39-
- name: Linux (Xenial, GCC, mbedTLS, OpenSSH)
40-
id: xenial-gcc-mbedtls
39+
- name: "Linux (Noble, Clang, mbedTLS, OpenSSH)"
40+
id: noble-clang-mbedtls
4141
os: ubuntu-latest
4242
container:
43-
name: xenial
43+
name: noble
4444
env:
45-
CC: gcc
45+
CC: clang
46+
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec
4647
CMAKE_GENERATOR: Ninja
47-
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec
48-
- name: "Linux (Xenial, Clang, OpenSSL, OpenSSH)"
49-
id: xenial-clang-openssl
48+
- name: "Linux (Xenial, GCC, OpenSSL, OpenSSH)"
49+
id: xenial-gcc-openssl
5050
os: ubuntu-latest
5151
container:
5252
name: xenial
5353
env:
54-
CC: clang
54+
CC: gcc
5555
CMAKE_GENERATOR: Ninja
56-
CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec
56+
CMAKE_OPTIONS: -DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=exec -DDEBUG_STRICT_ALLOC=ON -DDEBUG_STRICT_OPEN=ON
5757
- name: "Linux (Xenial, Clang, mbedTLS, libssh2)"
58-
id: xenial-clang-mbedtls
58+
id: xenial-gcc-mbedtls
5959
os: ubuntu-latest
6060
container:
6161
name: xenial
6262
env:
6363
CC: clang
64-
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2
6564
CMAKE_GENERATOR: Ninja
65+
CMAKE_OPTIONS: -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=libssh2
6666
- name: "macOS"
6767
id: macos
6868
os: macos-12
@@ -127,9 +127,9 @@ jobs:
127127
- name: "Sanitizer (Memory)"
128128
id: memorysanitizer
129129
container:
130-
name: focal
130+
name: noble
131131
env:
132-
CC: clang-10
132+
CC: clang-17
133133
CFLAGS: -fsanitize=memory -fsanitize-memory-track-origins=2 -fsanitize-blacklist=/home/libgit2/source/script/sanitizers.supp -fno-optimize-sibling-calls -fno-omit-frame-pointer
134134
CMAKE_OPTIONS: -DCMAKE_PREFIX_PATH=/usr/local/msan -DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON
135135
CMAKE_GENERATOR: Ninja
@@ -142,9 +142,9 @@ jobs:
142142
id: ubsanitizer
143143
os: ubuntu-latest
144144
container:
145-
name: focal
145+
name: noble
146146
env:
147-
CC: clang-10
147+
CC: clang-17
148148
CFLAGS: -fsanitize=undefined,nullability -fno-sanitize-recover=undefined,nullability -fsanitize-blacklist=/home/libgit2/source/script/sanitizers.supp -fno-optimize-sibling-calls -fno-omit-frame-pointer
149149
CMAKE_OPTIONS: -DCMAKE_PREFIX_PATH=/usr/local -DUSE_HTTPS=OpenSSL -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON
150150
CMAKE_GENERATOR: Ninja
@@ -156,9 +156,9 @@ jobs:
156156
id: threadsanitizer
157157
os: ubuntu-latest
158158
container:
159-
name: focal
159+
name: noble
160160
env:
161-
CC: clang-10
161+
CC: clang-17
162162
CFLAGS: -fsanitize=thread -fno-optimize-sibling-calls -fno-omit-frame-pointer
163163
CMAKE_OPTIONS: -DCMAKE_PREFIX_PATH=/usr/local -DUSE_HTTPS=OpenSSL -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_BUNDLED_ZLIB=ON -DUSE_SSH=ON
164164
CMAKE_GENERATOR: Ninja
@@ -277,12 +277,12 @@ jobs:
277277
CMAKE_OPTIONS: -DTHREADSAFE=OFF -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON -DUSE_SSH=ON
278278
CMAKE_GENERATOR: Ninja
279279
- name: "Linux (no mmap)"
280-
id: focal-nommap
280+
id: noble-nommap
281281
os: ubuntu-latest
282282
container:
283-
name: focal
283+
name: noble
284284
env:
285-
CC: clang-10
285+
CC: gcc
286286
CFLAGS: -DNO_MMAP
287287
CMAKE_OPTIONS: -DCMAKE_PREFIX_PATH=/usr/local
288288
CMAKE_GENERATOR: Ninja

ci/docker/centos7

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ RUN yum install -y \
1818

1919
FROM yum AS libssh2
2020
RUN cd /tmp && \
21-
curl --location --silent --show-error https://www.libssh2.org/download/libssh2-1.8.0.tar.gz | tar -xz && \
22-
cd libssh2-1.8.0 && \
21+
curl --location --silent --show-error https://www.libssh2.org/download/libssh2-1.11.0.tar.gz | tar -xz && \
22+
cd libssh2-1.11.0 && \
2323
./configure && \
2424
make && \
2525
make install && \
2626
cd .. && \
27-
rm -rf libssh-1.8.0
27+
rm -rf libssh-1.11.0
2828

2929
FROM libssh2 AS valgrind
3030
RUN cd /tmp && \

ci/docker/centos8

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ RUN yum install -y \
2424

2525
FROM yum AS libssh2
2626
RUN cd /tmp && \
27-
curl --location --silent --show-error https://www.libssh2.org/download/libssh2-1.8.0.tar.gz | tar -xz && \
28-
cd libssh2-1.8.0 && \
27+
curl --location --silent --show-error https://www.libssh2.org/download/libssh2-1.11.0.tar.gz | tar -xz && \
28+
cd libssh2-1.11.0 && \
2929
./configure && \
3030
make && \
3131
make install && \
3232
cd .. && \
33-
rm -rf libssh2-1.8.0
33+
rm -rf libssh2-1.11.0
3434

3535
FROM libssh2 AS valgrind
3636
RUN cd /tmp && \

ci/docker/focal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ RUN cd /tmp && \
5353
cd libssh2-1.9.0 && \
5454
mkdir build build-msan && \
5555
cd build && \
56-
CC=clang-10 CFLAGS="-fPIC" cmake -G Ninja -DBUILD_SHARED_LIBS=ON -DCRYPTO_BACKEND=Libgcrypt -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_INSTALL_PREFIX=/usr/local .. && \
56+
CC=clang-10 CFLAGS="-fPIC" cmake -G Ninja -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_INSTALL_PREFIX=/usr/local .. && \
5757
ninja install && \
5858
cd ../build-msan && \
5959
CC=clang-10 CFLAGS="-fPIC -fsanitize=memory -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer" LDFLAGS="-fsanitize=memory" cmake -G Ninja -DBUILD_SHARED_LIBS=ON -DCRYPTO_BACKEND=mbedTLS -DCMAKE_PREFIX_PATH=/usr/local/msan -DCMAKE_INSTALL_PREFIX=/usr/local/msan .. && \

ci/docker/noble

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
ARG BASE=ubuntu:noble
2+
3+
FROM ${BASE} AS apt
4+
RUN apt-get update && \
5+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
6+
bzip2 \
7+
clang \
8+
cmake \
9+
curl \
10+
gcc \
11+
git \
12+
krb5-user \
13+
libclang-rt-17-dev \
14+
libcurl4-gnutls-dev \
15+
libgcrypt20-dev \
16+
libkrb5-dev \
17+
libpcre3-dev \
18+
libssl-dev \
19+
libz-dev \
20+
llvm-17 \
21+
make \
22+
ninja-build \
23+
openjdk-8-jre-headless \
24+
openssh-server \
25+
openssl \
26+
pkgconf \
27+
python3 \
28+
sudo \
29+
valgrind \
30+
&& \
31+
rm -rf /var/lib/apt/lists/* && \
32+
mkdir /usr/local/msan
33+
34+
FROM apt AS mbedtls
35+
RUN cd /tmp && \
36+
curl --location --silent --show-error https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/mbedtls-2.28.6.tar.gz | \
37+
tar -xz && \
38+
cd mbedtls-mbedtls-2.28.6 && \
39+
scripts/config.pl unset MBEDTLS_AESNI_C && \
40+
scripts/config.pl set MBEDTLS_MD4_C 1 && \
41+
mkdir build build-msan && \
42+
cd build && \
43+
CC=clang-17 CFLAGS="-fPIC" cmake -G Ninja -DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=ON -DUSE_STATIC_MBEDTLS_LIBRARY=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_INSTALL_PREFIX=/usr/local .. && \
44+
ninja install && \
45+
cd ../build-msan && \
46+
CC=clang-17 CFLAGS="-fPIC" cmake -G Ninja -DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=ON -DUSE_STATIC_MBEDTLS_LIBRARY=OFF -DCMAKE_BUILD_TYPE=MemSanDbg -DCMAKE_INSTALL_PREFIX=/usr/local/msan .. && \
47+
ninja install && \
48+
cd .. && \
49+
rm -rf mbedtls-mbedtls-2.28.6
50+
51+
FROM mbedtls AS libssh2
52+
RUN cd /tmp && \
53+
curl --location --silent --show-error https://www.libssh2.org/download/libssh2-1.11.0.tar.gz | tar -xz && \
54+
cd libssh2-1.11.0 && \
55+
mkdir build build-msan && \
56+
cd build && \
57+
CC=clang-17 CFLAGS="-fPIC" cmake -G Ninja -DBUILD_SHARED_LIBS=ON -DCMAKE_PREFIX_PATH=/usr/local -DCMAKE_INSTALL_PREFIX=/usr/local .. && \
58+
ninja install && \
59+
cd ../build-msan && \
60+
CC=clang-17 CFLAGS="-fPIC -fsanitize=memory -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer" LDFLAGS="-fsanitize=memory" cmake -G Ninja -DBUILD_SHARED_LIBS=ON -DCRYPTO_BACKEND=mbedTLS -DCMAKE_PREFIX_PATH=/usr/local/msan -DCMAKE_INSTALL_PREFIX=/usr/local/msan .. && \
61+
ninja install && \
62+
cd .. && \
63+
rm -rf libssh2-1.11.0
64+
65+
FROM libssh2 AS valgrind
66+
RUN cd /tmp && \
67+
curl --insecure --location --silent --show-error https://sourceware.org/pub/valgrind/valgrind-3.22.0.tar.bz2 | \
68+
tar -xj && \
69+
cd valgrind-3.22.0 && \
70+
CC=clang-17 ./configure && \
71+
make MAKEFLAGS="-j -l$(grep -c ^processor /proc/cpuinfo)" && \
72+
make install && \
73+
cd .. && \
74+
rm -rf valgrind-3.22.0
75+
76+
FROM valgrind AS adduser
77+
ARG UID=""
78+
ARG GID=""
79+
RUN if [ "${UID}" != "" ]; then USER_ARG="--uid ${UID}"; fi && \
80+
if [ "${GID}" != "" ]; then GROUP_ARG="--gid ${GID}"; fi && \
81+
groupadd ${GROUP_ARG} libgit2 && \
82+
useradd ${USER_ARG} --gid libgit2 --shell /bin/bash --create-home libgit2
83+
84+
FROM adduser AS ldconfig
85+
RUN ldconfig
86+
87+
FROM ldconfig AS configure
88+
RUN mkdir /var/run/sshd

ci/docker/xenial

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ RUN cd /tmp && \
5353

5454
FROM mbedtls AS libssh2
5555
RUN cd /tmp && \
56-
curl --location --silent --show-error https://www.libssh2.org/download/libssh2-1.8.2.tar.gz | tar -xz && \
57-
cd libssh2-1.8.2 && \
58-
CFLAGS=-fPIC cmake -G Ninja -DBUILD_SHARED_LIBS=ON -DCRYPTO_BACKEND=Libgcrypt . && \
56+
curl --location --silent --show-error https://www.libssh2.org/download/libssh2-1.11.0.tar.gz | tar -xz && \
57+
cd libssh2-1.11.0 && \
58+
CFLAGS=-fPIC cmake -G Ninja -DBUILD_SHARED_LIBS=ON . && \
5959
ninja install && \
6060
cd .. && \
61-
rm -rf libssh2-1.8.2
61+
rm -rf libssh2-1.11.0
6262

6363
FROM libssh2 AS valgrind
6464
RUN cd /tmp && \

0 commit comments

Comments
 (0)
0