Skip to content

Commit c97cf08

Browse files
authored
Merge pull request libgit2#5198 from pks-t/pks/azure-docker-builds
azure: build Docker images as part of the pipeline
2 parents 5d8a465 + 212b6f6 commit c97cf08

File tree

11 files changed

+173
-51
lines changed

11 files changed

+173
-51
lines changed

azure-pipelines.yml

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,56 +6,64 @@ trigger:
66
- maint/*
77

88
jobs:
9-
- job: linux_amd64_trusty_gcc_openssl
10-
displayName: 'Linux (amd64; Trusty; GCC; OpenSSL)'
9+
- job: linux_amd64_xenial_gcc_openssl
10+
displayName: 'Linux (amd64; Xenial; GCC; OpenSSL)'
1111
pool:
1212
vmImage: 'Ubuntu 16.04'
1313
steps:
1414
- template: azure-pipelines/docker.yml
1515
parameters:
16-
imageName: 'libgit2/trusty-amd64:latest'
16+
docker:
17+
image: xenial
18+
base: ubuntu:xenial
1719
environmentVariables: |
1820
CC=gcc
19-
CMAKE_GENERATOR=Unix Makefiles
21+
CMAKE_GENERATOR=Ninja
2022
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
2123
22-
- job: linux_amd64_trusty_gcc_mbedtls
23-
displayName: 'Linux (amd64; Trusty; GCC; mbedTLS)'
24+
- job: linux_amd64_xenial_gcc_mbedtls
25+
displayName: 'Linux (amd64; Xenial; GCC; mbedTLS)'
2426
pool:
2527
vmImage: 'Ubuntu 16.04'
2628
steps:
2729
- template: azure-pipelines/docker.yml
2830
parameters:
29-
imageName: 'libgit2/trusty-amd64:latest'
31+
docker:
32+
image: xenial
33+
base: ubuntu:xenial
3034
environmentVariables: |
3135
CC=gcc
32-
CMAKE_GENERATOR=Unix Makefiles
36+
CMAKE_GENERATOR=Ninja
3337
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
3438
35-
- job: linux_amd64_trusty_clang_openssl
36-
displayName: 'Linux (amd64; Trusty; Clang; OpenSSL)'
39+
- job: linux_amd64_xenial_clang_openssl
40+
displayName: 'Linux (amd64; Xenial; Clang; OpenSSL)'
3741
pool:
3842
vmImage: 'Ubuntu 16.04'
3943
steps:
4044
- template: azure-pipelines/docker.yml
4145
parameters:
42-
imageName: 'libgit2/trusty-amd64:latest'
46+
docker:
47+
image: xenial
48+
base: ubuntu:xenial
4349
environmentVariables: |
4450
CC=clang
45-
CMAKE_GENERATOR=Unix Makefiles
51+
CMAKE_GENERATOR=Ninja
4652
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
4753
48-
- job: linux_amd64_trusty_clang_mbedtls
49-
displayName: 'Linux (amd64; Trusty; Clang; mbedTLS)'
54+
- job: linux_amd64_xenial_clang_mbedtls
55+
displayName: 'Linux (amd64; Xenial; Clang; mbedTLS)'
5056
pool:
5157
vmImage: 'Ubuntu 16.04'
5258
steps:
5359
- template: azure-pipelines/docker.yml
5460
parameters:
55-
imageName: 'libgit2/trusty-amd64:latest'
61+
docker:
62+
image: xenial
63+
base: ubuntu:xenial
5664
environmentVariables: |
5765
CC=clang
58-
CMAKE_GENERATOR=Unix Makefiles
66+
CMAKE_GENERATOR=Ninja
5967
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
6068
6169
- job: macos
@@ -136,6 +144,10 @@ jobs:
136144
pool:
137145
vmImage: 'Ubuntu 16.04'
138146
steps:
147+
- script: |
148+
cd $(Build.SourcesDirectory)/azure-pipelines/docker
149+
docker build -t libgit2/docurium --build-arg BASE=ubuntu:trusty -f docurium .
150+
displayName: 'Build Docker image'
139151
- script: |
140152
git config user.name 'Documentation Generation'
141153
git config user.email 'libgit2@users.noreply.github.com'

azure-pipelines/coverity.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ jobs:
1111
displayName: Build
1212
inputs:
1313
action: 'Run an image'
14-
imageName: 'libgit2/trusty-openssl:latest'
14+
docker:
15+
image: xenial
16+
base: xenial
1517
volumes: |
1618
$(Build.SourcesDirectory):/src
1719
$(Build.BinariesDirectory):/build

azure-pipelines/docker.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@ steps:
44
- script: docker run --rm --privileged multiarch/qemu-user-static:register --reset
55
displayName: 'Register Docker QEMU'
66

7+
- script: |
8+
cd $(Build.SourcesDirectory)/azure-pipelines/docker
9+
docker build -t libgit2/${{parameters.docker.image}} --build-arg BASE=${{parameters.docker.base}} -f ${{parameters.docker.image}} .
10+
displayName: 'Build Docker image'
711
- task: docker@0
812
displayName: Build
913
inputs:
1014
action: 'Run an image'
11-
imageName: ${{ parameters.imageName }}
15+
imageName: libgit2/${{ parameters.docker.image }}
1216
volumes: |
1317
$(Build.SourcesDirectory):/src
1418
$(Build.BinariesDirectory):/build
@@ -20,7 +24,7 @@ steps:
2024
displayName: Test
2125
inputs:
2226
action: 'Run an image'
23-
imageName: ${{ parameters.imageName }}
27+
imageName: libgit2/${{ parameters.docker.image }}
2428
volumes: |
2529
$(Build.SourcesDirectory):/src
2630
$(Build.BinariesDirectory):/build

azure-pipelines/docker/bionic

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
ARG BASE
2+
FROM $BASE
3+
RUN apt-get update && \
4+
apt-get install -y --no-install-recommends \
5+
clang \
6+
cmake \
7+
curl \
8+
gcc \
9+
git \
10+
libcurl4-openssl-dev \
11+
libpcre3-dev \
12+
libssh2-1-dev \
13+
libssl-dev \
14+
libz-dev \
15+
ninja-build \
16+
openjdk-8-jre-headless \
17+
openssh-server \
18+
openssl \
19+
pkgconf \
20+
python \
21+
valgrind \
22+
&& \
23+
rm -rf /var/lib/apt/lists/*
24+
RUN mkdir /var/run/sshd
25+
26+
RUN cd /tmp && \
27+
curl -LO https://tls.mbed.org/download/mbedtls-2.16.2-apache.tgz && \
28+
tar -xf mbedtls-2.16.2-apache.tgz && \
29+
rm -f mbedtls-2.16.2-apache.tgz && \
30+
cd mbedtls-2.16.2 && \
31+
scripts/config.pl set MBEDTLS_MD4_C 1 && \
32+
CFLAGS=-fPIC cmake -G Ninja -DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=OFF -DUSE_STATIC_MBEDTLS_LIBRARY=ON . && \
33+
ninja install && \
34+
cd .. && \
35+
rm -rf mbedtls-2.16.2

azure-pipelines/docker/docurium

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FROM debian:jessie-slim
2+
ARG CACHEBUST=1
3+
RUN apt-get update
4+
RUN apt install -y cmake pkg-config ruby ruby-dev llvm libclang-3.5-dev libssl-dev python-pygments
5+
ARG CACHEBUST=1
6+
RUN gem install docurium

azure-pipelines/docker/xenial

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
ARG BASE
2+
FROM $BASE
3+
RUN echo 'deb http://ppa.launchpad.net/hola-launchpad/valgrind/ubuntu xenial main' >/etc/apt/sources.list.d/valgrind.list && \
4+
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8A0303A7544D59A08EBD1D621BCFD9273D292CF6 && \
5+
apt-get update && \
6+
apt-get install -y --no-install-recommends \
7+
clang \
8+
cmake \
9+
curl \
10+
gcc \
11+
git \
12+
libcurl4-gnutls-dev \
13+
libpcre3-dev \
14+
libssh2-1-dev \
15+
libssl-dev \
16+
libz-dev \
17+
ninja-build \
18+
openjdk-8-jre-headless \
19+
openssh-server \
20+
openssl \
21+
pkgconf \
22+
python \
23+
valgrind \
24+
&& \
25+
rm -rf /var/lib/apt/lists/*
26+
RUN mkdir /var/run/sshd
27+
28+
RUN cd /tmp && \
29+
curl -LO https://tls.mbed.org/download/mbedtls-2.16.2-apache.tgz && \
30+
tar -xf mbedtls-2.16.2-apache.tgz && \
31+
rm -f mbedtls-2.16.2-apache.tgz && \
32+
cd mbedtls-2.16.2 && \
33+
scripts/config.pl set MBEDTLS_MD4_C 1 && \
34+
CFLAGS=-fPIC cmake -G Ninja -DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=OFF -DUSE_STATIC_MBEDTLS_LIBRARY=ON . && \
35+
ninja install && \
36+
cd .. && \
37+
rm -rf mbedtls-2.16.2
38+
39+
RUN cd /tmp && \
40+
curl -LO https://www.libssh2.org/download/libssh2-1.8.2.tar.gz && \
41+
tar -xf libssh2-1.8.2.tar.gz && \
42+
rm -f libssh2-1.8.2.tar.gz && \
43+
cd libssh2-1.8.2 && \
44+
CFLAGS=-fPIC cmake -G Ninja -DCRYPTO_BACKEND=Libgcrypt . && \
45+
ninja install && \
46+
cd .. && \
47+
rm -rf libssh2-1.8.2

azure-pipelines/nightly.yml

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,59 +2,67 @@ resources:
22
- repo: self
33

44
jobs:
5-
- job: linux_amd64_trusty_gcc_openssl
6-
displayName: 'Linux (amd64; Trusty; GCC; OpenSSL)'
5+
- job: linux_amd64_xenial_gcc_openssl
6+
displayName: 'Linux (amd64; Xenial; GCC; OpenSSL)'
77
pool:
88
vmImage: 'Ubuntu 16.04'
99
steps:
1010
- template: docker.yml
1111
parameters:
12-
imageName: 'libgit2/trusty-amd64:latest'
12+
docker:
13+
image: xenial
14+
base: ubuntu:xenial
1315
environmentVariables: |
1416
CC=gcc
15-
CMAKE_GENERATOR=Unix Makefiles
17+
CMAKE_GENERATOR=Ninja
1618
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
1719
RUN_INVASIVE_TESTS=true
1820
19-
- job: linux_amd64_trusty_gcc_mbedtls
20-
displayName: 'Linux (amd64; Trusty; GCC; mbedTLS)'
21+
- job: linux_amd64_xenial_gcc_mbedtls
22+
displayName: 'Linux (amd64; Xenial; GCC; mbedTLS)'
2123
pool:
2224
vmImage: 'Ubuntu 16.04'
2325
steps:
2426
- template: docker.yml
2527
parameters:
26-
imageName: 'libgit2/trusty-amd64:latest'
28+
docker:
29+
image: xenial
30+
base: ubuntu:xenial
2731
environmentVariables: |
2832
CC=gcc
29-
CMAKE_GENERATOR=Unix Makefiles
33+
CMAKE_GENERATOR=Ninja
3034
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
3135
RUN_INVASIVE_TESTS=true
3236
33-
- job: linux_amd64_trusty_clang_openssl
34-
displayName: 'Linux (amd64; Trusty; Clang; OpenSSL)'
37+
- job: linux_amd64_xenial_clang_openssl
38+
displayName: 'Linux (amd64; Xenial; Clang; OpenSSL)'
3539
pool:
3640
vmImage: 'Ubuntu 16.04'
3741
steps:
3842
- template: docker.yml
3943
parameters:
40-
imageName: 'libgit2/trusty-amd64:latest'
44+
docker:
45+
image: xenial
46+
base: ubuntu:xenial
4147
environmentVariables: |
4248
CC=clang
43-
CMAKE_GENERATOR=Unix Makefiles
49+
CMAKE_GENERATOR=Ninja
4450
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
4551
RUN_INVASIVE_TESTS=true
4652
47-
- job: linux_amd64_trusty_clang_mbedtls
48-
displayName: 'Linux (amd64; Trusty; Clang; mbedTLS)'
53+
- job: linux_amd64_xenial_clang_mbedtls
54+
displayName: 'Linux (amd64; Xenial; Clang; mbedTLS)'
4955
pool:
5056
vmImage: 'Ubuntu 16.04'
5157
steps:
5258
- template: docker.yml
5359
parameters:
54-
imageName: 'libgit2/trusty-amd64:latest'
60+
docker:
61+
image: xenial
62+
base: ubuntu:xenial
5563
environmentVariables: |
5664
CC=clang
57-
CMAKE_GENERATOR=Unix Makefiles
65+
CMAKE_GENERATOR=Ninja
5866
CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
5967
RUN_INVASIVE_TESTS=true
6068
@@ -144,10 +152,12 @@ jobs:
144152
- template: docker.yml
145153
parameters:
146154
qemu: 'true'
147-
imageName: 'libgit2/bionic-x86:latest'
155+
docker:
156+
image: bionic
157+
base: multiarch/ubuntu-core:x86-bionic
148158
environmentVariables: |
149159
CC=gcc
150-
CMAKE_GENERATOR=Unix Makefiles
160+
CMAKE_GENERATOR=Ninja
151161
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
152162
RUN_INVASIVE_TESTS=true
153163
@@ -159,10 +169,12 @@ jobs:
159169
- template: docker.yml
160170
parameters:
161171
qemu: 'true'
162-
imageName: 'libgit2/bionic-x86:latest'
172+
docker:
173+
image: bionic
174+
base: multiarch/ubuntu-core:x86-bionic
163175
environmentVariables: |
164176
CC=clang
165-
CMAKE_GENERATOR=Unix Makefiles
177+
CMAKE_GENERATOR=Ninja
166178
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
167179
RUN_INVASIVE_TESTS=true
168180
@@ -174,10 +186,12 @@ jobs:
174186
- template: docker.yml
175187
parameters:
176188
qemu: 'true'
177-
imageName: 'libgit2/bionic-arm32:latest'
189+
docker:
190+
image: bionic
191+
base: multiarch/ubuntu-core:armhf-bionic
178192
environmentVariables: |
179193
CC=gcc
180-
CMAKE_GENERATOR=Unix Makefiles
194+
CMAKE_GENERATOR=Ninja
181195
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
182196
RUN_INVASIVE_TESTS=true
183197
SKIP_PROXY_TESTS=true
@@ -190,10 +204,12 @@ jobs:
190204
- template: docker.yml
191205
parameters:
192206
qemu: 'true'
193-
imageName: 'libgit2/bionic-arm64:latest'
207+
docker:
208+
image: bionic
209+
base: multiarch/ubuntu-core:arm64-bionic
194210
environmentVariables: |
195211
CC=gcc
196-
CMAKE_GENERATOR=Unix Makefiles
212+
CMAKE_GENERATOR=Ninja
197213
CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON
198214
RUN_INVASIVE_TESTS=true
199215
SKIP_PROXY_TESTS=true

cmake/Modules/FindCoreFoundation.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ FIND_PATH(COREFOUNDATION_INCLUDE_DIR NAMES CoreFoundation.h)
1010
FIND_LIBRARY(COREFOUNDATION_LIBRARIES NAMES CoreFoundation)
1111
IF (COREFOUNDATION_INCLUDE_DIR AND COREFOUNDATION_LIBRARIES)
1212
IF (NOT CoreFoundation_FIND_QUIETLY)
13-
MESSAGE("-- Found CoreFoundation ${COREFOUNDATION_LIBRARIES}")
13+
MESSAGE(STATUS "Found CoreFoundation ${COREFOUNDATION_LIBRARIES}")
1414
ENDIF()
1515
SET(COREFOUNDATION_FOUND TRUE)
1616
SET(COREFOUNDATION_LDFLAGS "-framework CoreFoundation")
1717
ENDIF ()
1818

1919
IF (CoreFoundation_FIND_REQUIRED AND NOT COREFOUNDATION_FOUND)
20-
MESSAGE(FATAL "-- CoreFoundation not found")
20+
MESSAGE(FATAL_ERROR "CoreFoundation not found")
2121
ENDIF()
2222

2323
MARK_AS_ADVANCED(

cmake/Modules/FindSecurity.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ FIND_PATH(SECURITY_INCLUDE_DIR NAMES Security/Security.h)
1111
FIND_LIBRARY(SECURITY_LIBRARIES NAMES Security)
1212
IF (SECURITY_INCLUDE_DIR AND SECURITY_LIBRARIES)
1313
IF (NOT Security_FIND_QUIETLY)
14-
MESSAGE("-- Found Security ${SECURITY_LIBRARIES}")
14+
MESSAGE(STATUS "Found Security ${SECURITY_LIBRARIES}")
1515
ENDIF()
1616
SET(SECURITY_FOUND TRUE)
1717
SET(SECURITY_LDFLAGS "-framework Security")
1818
CHECK_LIBRARY_EXISTS("${SECURITY_LIBRARIES}" SSLCreateContext "Security/SecureTransport.h" SECURITY_HAS_SSLCREATECONTEXT)
1919
ENDIF ()
2020

2121
IF (Security_FIND_REQUIRED AND NOT SECURITY_FOUND)
22-
MESSAGE(FATAL "-- Security not found")
22+
MESSAGE(FATAL_ERROR "Security not found")
2323
ENDIF()
2424

2525
MARK_AS_ADVANCED(

0 commit comments

Comments
 (0)