- maint/*
jobs:
-- job: linux_trusty_gcc_openssl
- displayName: 'Linux (Trusty; GCC; OpenSSL)'
+- job: linux_amd64_xenial_gcc_openssl
+ displayName: 'Linux (amd64; Xenial; GCC; OpenSSL)'
pool:
- vmImage: 'Ubuntu 16.04'
+ vmImage: 'ubuntu-18.04'
steps:
- - template: ci/docker.yml
+ - template: azure-pipelines/docker.yml
parameters:
- imageName: 'libgit2/trusty-openssl:latest'
+ docker:
+ image: xenial
+ base: ubuntu:xenial
environmentVariables: |
CC=gcc
- LEAK_CHECK=valgrind
+ CMAKE_GENERATOR=Ninja
+ CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON
+ GITTEST_NEGOTIATE_PASSWORD=${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
-- job: linux_trusty_clang_openssl
- displayName: 'Linux (Trusty; Clang; OpenSSL)'
+- job: linux_amd64_xenial_gcc_mbedtls
+ displayName: 'Linux (amd64; Xenial; GCC; mbedTLS)'
pool:
- vmImage: 'Ubuntu 16.04'
+ vmImage: 'ubuntu-18.04'
steps:
- - template: ci/docker.yml
+ - template: azure-pipelines/docker.yml
parameters:
- imageName: 'libgit2/trusty-openssl:latest'
+ docker:
+ image: xenial
+ base: ubuntu:xenial
+ environmentVariables: |
+ CC=gcc
+ CMAKE_GENERATOR=Ninja
+ CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON
+ GITTEST_NEGOTIATE_PASSWORD=${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
+
+- job: linux_amd64_xenial_clang_openssl
+ displayName: 'Linux (amd64; Xenial; Clang; OpenSSL)'
+ pool:
+ vmImage: 'ubuntu-18.04'
+ steps:
+ - template: azure-pipelines/docker.yml
+ parameters:
+ docker:
+ image: xenial
+ base: ubuntu:xenial
environmentVariables: |
CC=clang
- LEAK_CHECK=valgrind
+ CMAKE_GENERATOR=Ninja
+ CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON
+ GITTEST_NEGOTIATE_PASSWORD=${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
+
+- job: linux_amd64_xenial_clang_mbedtls
+ displayName: 'Linux (amd64; Xenial; Clang; mbedTLS)'
+ pool:
+ vmImage: 'ubuntu-18.04'
+ steps:
+ - template: azure-pipelines/docker.yml
+ parameters:
+ docker:
+ image: xenial
+ base: ubuntu:xenial
+ environmentVariables: |
+ CC=clang
+ CMAKE_GENERATOR=Ninja
+ CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON
+ GITTEST_NEGOTIATE_PASSWORD=${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
- job: macos
- displayName: 'macOS'
+ displayName: 'macOS (amd64; 10.15)'
pool:
- vmImage: 'macOS 10.13'
+ vmImage: 'macOS-10.15'
steps:
- - bash: . '$(Build.SourcesDirectory)/ci/setup-osx.sh'
+ - bash: . '$(Build.SourcesDirectory)/azure-pipelines/setup-osx.sh'
displayName: Setup
- - template: ci/bash.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
TMPDIR: $(Agent.TempDirectory)
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
- LEAK_CHECK: leaks
+ CMAKE_GENERATOR: Ninja
+ CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON
+ SKIP_SSH_TESTS: true
+ GITTEST_NEGOTIATE_PASSWORD: ${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
- job: windows_vs_amd64
- displayName: 'Windows (Visual Studio; amd64)'
- pool: Hosted
+ displayName: 'Windows (amd64; Visual Studio)'
+ pool:
+ vmImage: 'vs2017-win2016'
steps:
- - template: ci/powershell.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
- CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013 Win64"
+ CMAKE_GENERATOR: Visual Studio 15 2017
+ CMAKE_OPTIONS: -A x64 -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON
+ SKIP_SSH_TESTS: true
+ SKIP_NEGOTIATE_TESTS: true
- job: windows_vs_x86
- displayName: 'Windows (Visual Studio; x86)'
- pool: Hosted
+ displayName: 'Windows (x86; Visual Studio)'
+ pool:
+ vmImage: 'vs2017-win2016'
steps:
- - template: ci/powershell.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
- CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013"
+ CMAKE_GENERATOR: Visual Studio 15 2017
+ CMAKE_OPTIONS: -A Win32 -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS
+ SKIP_SSH_TESTS: true
+ SKIP_NEGOTIATE_TESTS: true
- job: windows_mingw_amd64
- displayName: 'Windows (MinGW; amd64)'
- pool: Hosted
+ displayName: 'Windows (amd64; MinGW)'
+ pool:
+ vmImage: 'vs2017-win2016'
steps:
- - powershell: . '$(Build.SourcesDirectory)\ci\setup-mingw.ps1'
+ - bash: . '$(Build.SourcesDirectory)\azure-pipelines\setup-mingw.sh'
displayName: Setup
env:
TEMP: $(Agent.TempDirectory)
ARCH: amd64
- - template: ci/powershell.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
- 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
+ BUILD_PATH: $(Agent.TempDirectory)\mingw64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
+ CMAKE_GENERATOR: MinGW Makefiles
+ CMAKE_OPTIONS: -DDEPRECATE_HARD=ON
+ SKIP_SSH_TESTS: true
+ SKIP_NEGOTIATE_TESTS: true
- job: windows_mingw_x86
- displayName: 'Windows (MinGW; x86)'
- pool: Hosted
+ displayName: 'Windows (x86; MinGW)'
+ pool:
+ vmImage: 'vs2017-win2016'
steps:
- - powershell: . '$(Build.SourcesDirectory)\ci\setup-mingw.ps1'
+ - bash: . '$(Build.SourcesDirectory)\azure-pipelines\setup-mingw.sh'
displayName: Setup
workingDirectory: '$(Build.BinariesDirectory)'
env:
TEMP: $(Agent.TempDirectory)
ARCH: x86
- - template: ci/powershell.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
- 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
+ BUILD_PATH: $(Agent.TempDirectory)\mingw32\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
+ CMAKE_GENERATOR: MinGW Makefiles
+ CMAKE_OPTIONS: -DDEPRECATE_HARD=ON
+ SKIP_SSH_TESTS: true
+ SKIP_NEGOTIATE_TESTS: true
+
+- job: documentation
+ displayName: 'Generate Documentation'
+ pool:
+ vmImage: 'ubuntu-18.04'
+ steps:
+ - script: |
+ cd $(Build.SourcesDirectory)/azure-pipelines/docker
+ docker build -t libgit2/docurium --build-arg BASE=ubuntu:trusty -f docurium .
+ displayName: 'Build Docker image'
+ - script: |
+ git config user.name 'Documentation Generation'
+ git config user.email 'libgit2@users.noreply.github.com'
+ git branch gh-pages origin/gh-pages
+ docker run --rm -v $(Build.SourcesDirectory):/home/libgit2/source -w /home/libgit2/source libgit2/docurium:latest cm doc api.docurium
+ git checkout gh-pages
+ cp -R * '$(Build.BinariesDirectory)'
+ displayName: 'Generate Documentation'
+ - task: archivefiles@2
+ displayName: 'Archive Documentation'
+ inputs:
+ rootFolderOrFile: '$(Build.BinariesDirectory)'
+ includeRootFolder: false
+ archiveFile: '$(Build.ArtifactStagingDirectory)/api-documentation.zip'
+ - task: publishbuildartifacts@1
+ displayName: 'Upload Documentation Artifact'
+ inputs:
+ pathToPublish: '$(Build.ArtifactStagingDirectory)'
+ artifactName: 'docs'
+ - script: |
+ git remote -v
+ echo 'machine github.com' > ~/.netrc
+ echo 'login $(GITHUB_USERNAME)' >> ~/.netrc
+ echo 'password $(GITHUB_PAT)' >> ~/.netrc
+ git push origin gh-pages
+ displayName: 'Publish Documentation'
+ condition: and(eq(variables['Build.Repository.Name'], 'libgit2/libgit2'), eq(variables['Build.Reason'], 'IndividualCI'))