summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2018-07-26 14:04:19 +0100
committerEdward Thomson <ethomson@edwardthomson.com>2018-07-26 15:35:39 +0100
commitdc6e80e2ce7c4d1017ce41a67a0df50b29b36cc4 (patch)
tree76c9e330bba283825b378d7a784e61df7a32e72f
parent6eb97b6ba93019741e7cf6147f0fab05dd3f831d (diff)
downloadlibgit2-dc6e80e2ce7c4d1017ce41a67a0df50b29b36cc4.tar.gz
ci: perform clang builds on Linux
-rw-r--r--.vsts-ci.yml79
-rwxr-xr-xci/build.sh3
-rwxr-xr-xci/setup-linux.sh2
3 files changed, 77 insertions, 7 deletions
diff --git a/.vsts-ci.yml b/.vsts-ci.yml
index ace22f4ef..4d3bf50c2 100644
--- a/.vsts-ci.yml
+++ b/.vsts-ci.yml
@@ -2,8 +2,8 @@ resources:
- repo: self
phases:
-- phase: linux_trusty_openssl
- displayName: 'Linux (Trusty; OpenSSL)'
+- phase: linux_trusty_gcc_openssl
+ displayName: 'Linux (Trusty; GCC; OpenSSL)'
queue:
name: 'Hosted Linux Preview'
steps:
@@ -26,13 +26,79 @@ phases:
volumes: |
$(Build.SourcesDirectory):/src
$(Build.BinariesDirectory):/build
+ envVars: |
+ CC=gcc
+ LEAK_CHECK=valgrind
+ workDir: '/build'
+ containerCommand: '/src/ci/test.sh'
+ detached: false
+
+- phase: linux_trusty_gcc_mbedtls
+ displayName: 'Linux (Trusty; GCC; mbedTLS)'
+ queue:
+ name: 'Hosted Linux Preview'
+ steps:
+ - task: Docker@0
+ displayName: Build
+ inputs:
+ action: 'Run an image'
+ imageName: 'ethomson/libgit2-trusty-mbedtls:latest'
+ volumes: |
+ $(Build.SourcesDirectory):/src
+ $(Build.BinariesDirectory):/build
+ envVars: |
+ CC=gcc
+ CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS
+ LEAK_CHECK=valgrind
+ workDir: '/build'
+ containerCommand: '/src/ci/build.sh'
+ detached: false
+ - task: Docker@0
+ displayName: Test
+ inputs:
+ action: 'Run an image'
+ imageName: 'ethomson/libgit2-trusty-mbedtls:latest'
+ volumes: |
+ $(Build.SourcesDirectory):/src
+ $(Build.BinariesDirectory):/build
envVars: 'LEAK_CHECK=valgrind'
workDir: '/build'
containerCommand: '/src/ci/test.sh'
detached: false
-- phase: linux_trusty_mbedtls
- displayName: 'Linux (Trusty; mbedTLS)'
+- phase: linux_trusty_clang_openssl
+ displayName: 'Linux (Trusty; Clang; OpenSSL)'
+ queue:
+ name: 'Hosted Linux Preview'
+ steps:
+ - task: Docker@0
+ displayName: Build
+ inputs:
+ action: 'Run an image'
+ imageName: 'ethomson/libgit2-trusty-openssl:latest'
+ volumes: |
+ $(Build.SourcesDirectory):/src
+ $(Build.BinariesDirectory):/build
+ workDir: '/build'
+ containerCommand: '/src/ci/build.sh'
+ detached: false
+ - task: Docker@0
+ displayName: Test
+ inputs:
+ action: 'Run an image'
+ imageName: 'ethomson/libgit2-trusty-openssl:latest'
+ volumes: |
+ $(Build.SourcesDirectory):/src
+ $(Build.BinariesDirectory):/build
+ envVars: |
+ CC=clang
+ LEAK_CHECK=valgrind
+ workDir: '/build'
+ containerCommand: '/src/ci/test.sh'
+ detached: false
+
+- phase: linux_trusty_clang_mbedtls
+ displayName: 'Linux (Trusty; Clang; mbedTLS)'
queue:
name: 'Hosted Linux Preview'
steps:
@@ -44,7 +110,10 @@ phases:
volumes: |
$(Build.SourcesDirectory):/src
$(Build.BinariesDirectory):/build
- envVars: 'CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS'
+ envVars: |
+ CC=clang
+ CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS
+ LEAK_CHECK=valgrind
workDir: '/build'
containerCommand: '/src/ci/build.sh'
detached: false
diff --git a/ci/build.sh b/ci/build.sh
index 45f074810..a1deab3f2 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -9,6 +9,7 @@ set -e
SOURCE_DIR=${SOURCE_DIR:-$( cd "$( dirname "${BASH_SOURCE[0]}" )" && dirname $( pwd ) )}
BUILD_DIR=$(pwd)
+CC=${CC:-cc}
indent() { sed "s/^/ /"; }
@@ -20,7 +21,7 @@ uname -a 2>&1 | indent
echo "CMake version:"
cmake --version 2>&1 | indent
echo "Compiler version:"
-gcc --version 2>&1 | indent
+$CC --version 2>&1 | indent
echo ""
echo "##############################################################################"
diff --git a/ci/setup-linux.sh b/ci/setup-linux.sh
index 5de286668..03e4a1d2f 100755
--- a/ci/setup-linux.sh
+++ b/ci/setup-linux.sh
@@ -3,6 +3,6 @@
set -x
apt-get update
-apt-get -y install build-essential pkg-config cmake openssl libssl-dev libssh2-1-dev libcurl4-gnutls-dev openssh-server
+apt-get -y install build-essential pkg-config clang cmake openssl libssl-dev libssh2-1-dev libcurl4-gnutls-dev openssh-server
mkdir -p /var/run/sshd