Commit 67f5304f552a287dd46951b8ef96695f080c5ff2

Edward Thomson 2018-07-14T12:42:50

ci: introduce vsts builds

diff --git a/.vsts-ci.yml b/.vsts-ci.yml
new file mode 100644
index 0000000..b461d2e
--- /dev/null
+++ b/.vsts-ci.yml
@@ -0,0 +1,134 @@
+resources:
+- repo: self
+
+phases:
+- phase: linux_trusty_openssl
+  displayName: 'Linux (Trusty; 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
+      workDir: '/build'
+      containerCommand: '/src/ci/test.sh'
+      detached: false
+
+- phase: linux_trusty_mbedtls
+  displayName: 'Linux (Trusty; 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: 'CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DSHA1_BACKEND=mbedTLS'
+      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
+      workDir: '/build'
+      containerCommand: '/src/ci/test.sh'
+      detached: false
+
+- phase: macos
+  displayName: 'macOS'
+  queue:
+    name: 'Hosted macOS Preview'
+  steps:
+  - bash: . '$(Build.SourcesDirectory)/ci/setup-macos.sh'
+    displayName: Setup
+  - bash: . '$(Build.SourcesDirectory)/ci/build.sh'
+    displayName: Build
+    env:
+      PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
+  - bash: . '$(Build.SourcesDirectory)/ci/test.sh'
+    displayName: Test
+    env:
+      TMPDIR: $(Agent.TempDirectory)
+
+- phase: windows_vs_amd64
+  displayName: 'Windows (Visual Studio; amd64)'
+  queue:
+    name: Hosted
+  steps:
+  - powershell: . '$(Build.SourcesDirectory)\ci\build.ps1'
+    displayName: Build
+    env:
+      CMAKE_OPTIONS: -G"Visual Studio 12 2013 Win64"
+  - powershell: . '$(Build.SourcesDirectory)\ci\test.ps1'
+    displayName: Test
+
+- phase: windows_vs_x86
+  displayName: 'Windows (Visual Studio; x86)'
+  queue:
+    name: Hosted
+  steps:
+  - powershell: . '$(Build.SourcesDirectory)\ci\build.ps1'
+    displayName: Build
+    env:
+      CMAKE_OPTIONS: -G"Visual Studio 12 2013"
+  - powershell: . '$(Build.SourcesDirectory)\ci\test.ps1'
+    displayName: Test
+
+- phase: windows_mingw_amd64
+  displayName: 'Windows (MinGW; amd64)'
+  queue:
+    name: Hosted
+  steps:
+  - powershell: . '$(Build.SourcesDirectory)\ci\setup-mingw-amd64.ps1'
+    displayName: Setup
+    env:
+      TEMP: $(Agent.TempDirectory)
+  - powershell: . '$(Build.SourcesDirectory)\ci\build.ps1'
+    displayName: Build
+    env:
+      CMAKE_OPTIONS: -G"MinGW Makefiles"
+      PATH: $(Agent.TempDirectory)\mingw64\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin
+  - powershell: . '$(Build.SourcesDirectory)\ci\test.ps1'
+    displayName: Test
+
+- phase: windows_mingw_x86
+  displayName: 'Windows (MinGW; x86)'
+  queue:
+    name: Hosted
+  steps:
+  - powershell: . '$(Build.SourcesDirectory)\ci\setup-mingw-x86.ps1'
+    displayName: Setup
+    env:
+      TEMP: $(Agent.TempDirectory)
+  - powershell: . '$(Build.SourcesDirectory)\ci\build.ps1'
+    displayName: Build
+    env:
+      CMAKE_OPTIONS: -G"MinGW Makefiles"
+      PATH: $(Agent.TempDirectory)\mingw32\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin
+  - powershell: . '$(Build.SourcesDirectory)\ci\test.ps1'
+    displayName: Test
diff --git a/ci/build.sh b/ci/build.sh
index 39d35f1..45f0748 100755
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -27,6 +27,7 @@ echo "##########################################################################
 echo "## Configuring build environment"
 echo "##############################################################################"
 
+echo cmake ${SOURCE_DIR} -DBUILD_EXAMPLES=ON ${CMAKE_OPTIONS}
 cmake ${SOURCE_DIR} -DBUILD_EXAMPLES=ON ${CMAKE_OPTIONS}
 
 echo ""