resources: - repo: self trigger: - master - maint/* jobs: - job: linux_amd64_xenial_gcc_openssl displayName: 'Linux (amd64; Xenial; GCC; OpenSSL)' pool: vmImage: 'ubuntu-18.04' steps: - template: azure-pipelines/docker.yml parameters: docker: image: xenial base: ubuntu:xenial environmentVariables: | CC=gcc 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_amd64_xenial_gcc_mbedtls displayName: 'Linux (amd64; Xenial; GCC; mbedTLS)' pool: vmImage: 'ubuntu-18.04' steps: - template: azure-pipelines/docker.yml parameters: 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 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 (amd64; 10.15)' pool: vmImage: 'macOS-10.15' steps: - bash: . '$(Build.SourcesDirectory)/azure-pipelines/setup-osx.sh' displayName: Setup - template: azure-pipelines/bash.yml parameters: environmentVariables: TMPDIR: $(Agent.TempDirectory) PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig 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 (amd64; Visual Studio)' pool: vmImage: 'vs2017-win2016' steps: - template: azure-pipelines/bash.yml parameters: environmentVariables: 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 (x86; Visual Studio)' pool: vmImage: 'vs2017-win2016' steps: - template: azure-pipelines/bash.yml parameters: environmentVariables: 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 (amd64; MinGW)' pool: vmImage: 'vs2017-win2016' steps: - bash: . '$(Build.SourcesDirectory)\azure-pipelines\setup-mingw.sh' displayName: Setup env: TEMP: $(Agent.TempDirectory) ARCH: amd64 - template: azure-pipelines/bash.yml parameters: environmentVariables: 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 (x86; MinGW)' pool: vmImage: 'vs2017-win2016' steps: - bash: . '$(Build.SourcesDirectory)\azure-pipelines\setup-mingw.sh' displayName: Setup workingDirectory: '$(Build.BinariesDirectory)' env: TEMP: $(Agent.TempDirectory) ARCH: x86 - template: azure-pipelines/bash.yml parameters: environmentVariables: 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'))