]> git.proxmox.com Git - libgit2.git/blame - azure-pipelines.yml
Release 1.0.0+dfsg.1-2 to Debian experimental.
[libgit2.git] / azure-pipelines.yml
CommitLineData
6c7cee42
RD
1resources:
2- repo: self
3
4trigger:
5- master
6- maint/*
7
8jobs:
0c9c969a
UG
9- job: linux_amd64_xenial_gcc_openssl
10 displayName: 'Linux (amd64; Xenial; GCC; OpenSSL)'
6c7cee42 11 pool:
66a70851 12 vmImage: 'ubuntu-18.04'
6c7cee42 13 steps:
ac3d33df 14 - template: azure-pipelines/docker.yml
6c7cee42 15 parameters:
0c9c969a
UG
16 docker:
17 image: xenial
18 base: ubuntu:xenial
6c7cee42
RD
19 environmentVariables: |
20 CC=gcc
0c9c969a
UG
21 CMAKE_GENERATOR=Ninja
22 CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON
23 GITTEST_NEGOTIATE_PASSWORD=${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
6c7cee42 24
0c9c969a
UG
25- job: linux_amd64_xenial_gcc_mbedtls
26 displayName: 'Linux (amd64; Xenial; GCC; mbedTLS)'
6c7cee42 27 pool:
66a70851 28 vmImage: 'ubuntu-18.04'
6c7cee42 29 steps:
ac3d33df 30 - template: azure-pipelines/docker.yml
6c7cee42 31 parameters:
0c9c969a
UG
32 docker:
33 image: xenial
34 base: ubuntu:xenial
ac3d33df
JK
35 environmentVariables: |
36 CC=gcc
0c9c969a
UG
37 CMAKE_GENERATOR=Ninja
38 CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON
39 GITTEST_NEGOTIATE_PASSWORD=${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
ac3d33df 40
0c9c969a
UG
41- job: linux_amd64_xenial_clang_openssl
42 displayName: 'Linux (amd64; Xenial; Clang; OpenSSL)'
ac3d33df 43 pool:
66a70851 44 vmImage: 'ubuntu-18.04'
ac3d33df
JK
45 steps:
46 - template: azure-pipelines/docker.yml
47 parameters:
0c9c969a
UG
48 docker:
49 image: xenial
50 base: ubuntu:xenial
ac3d33df
JK
51 environmentVariables: |
52 CC=clang
0c9c969a
UG
53 CMAKE_GENERATOR=Ninja
54 CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON
55 GITTEST_NEGOTIATE_PASSWORD=${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
ac3d33df 56
0c9c969a
UG
57- job: linux_amd64_xenial_clang_mbedtls
58 displayName: 'Linux (amd64; Xenial; Clang; mbedTLS)'
ac3d33df 59 pool:
66a70851 60 vmImage: 'ubuntu-18.04'
ac3d33df
JK
61 steps:
62 - template: azure-pipelines/docker.yml
63 parameters:
0c9c969a
UG
64 docker:
65 image: xenial
66 base: ubuntu:xenial
6c7cee42
RD
67 environmentVariables: |
68 CC=clang
0c9c969a
UG
69 CMAKE_GENERATOR=Ninja
70 CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind -DUSE_GSSAPI=ON
71 GITTEST_NEGOTIATE_PASSWORD=${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
6c7cee42
RD
72
73- job: macos
66a70851 74 displayName: 'macOS (amd64; 10.15)'
6c7cee42 75 pool:
66a70851 76 vmImage: 'macOS-10.15'
6c7cee42 77 steps:
0c9c969a 78 - bash: . '$(Build.SourcesDirectory)/azure-pipelines/setup-osx.sh'
6c7cee42 79 displayName: Setup
ac3d33df 80 - template: azure-pipelines/bash.yml
6c7cee42
RD
81 parameters:
82 environmentVariables:
83 TMPDIR: $(Agent.TempDirectory)
84 PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
0c9c969a
UG
85 CMAKE_GENERATOR: Ninja
86 CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks -DUSE_GSSAPI=ON
ac3d33df 87 SKIP_SSH_TESTS: true
0c9c969a 88 GITTEST_NEGOTIATE_PASSWORD: ${{ variables.GITTEST_NEGOTIATE_PASSWORD }}
6c7cee42
RD
89
90- job: windows_vs_amd64
ac3d33df 91 displayName: 'Windows (amd64; Visual Studio)'
66a70851
UG
92 pool:
93 vmImage: 'vs2017-win2016'
6c7cee42 94 steps:
0c9c969a 95 - template: azure-pipelines/bash.yml
6c7cee42
RD
96 parameters:
97 environmentVariables:
66a70851
UG
98 CMAKE_GENERATOR: Visual Studio 15 2017
99 CMAKE_OPTIONS: -A x64 -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON
0c9c969a
UG
100 SKIP_SSH_TESTS: true
101 SKIP_NEGOTIATE_TESTS: true
6c7cee42
RD
102
103- job: windows_vs_x86
ac3d33df 104 displayName: 'Windows (x86; Visual Studio)'
66a70851
UG
105 pool:
106 vmImage: 'vs2017-win2016'
6c7cee42 107 steps:
0c9c969a 108 - template: azure-pipelines/bash.yml
6c7cee42
RD
109 parameters:
110 environmentVariables:
66a70851
UG
111 CMAKE_GENERATOR: Visual Studio 15 2017
112 CMAKE_OPTIONS: -A Win32 -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS
0c9c969a
UG
113 SKIP_SSH_TESTS: true
114 SKIP_NEGOTIATE_TESTS: true
6c7cee42
RD
115
116- job: windows_mingw_amd64
ac3d33df 117 displayName: 'Windows (amd64; MinGW)'
66a70851
UG
118 pool:
119 vmImage: 'vs2017-win2016'
6c7cee42 120 steps:
0c9c969a 121 - bash: . '$(Build.SourcesDirectory)\azure-pipelines\setup-mingw.sh'
6c7cee42
RD
122 displayName: Setup
123 env:
124 TEMP: $(Agent.TempDirectory)
125 ARCH: amd64
0c9c969a 126 - template: azure-pipelines/bash.yml
6c7cee42
RD
127 parameters:
128 environmentVariables:
0c9c969a
UG
129 BUILD_PATH: $(Agent.TempDirectory)\mingw64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
130 CMAKE_GENERATOR: MinGW Makefiles
131 CMAKE_OPTIONS: -DDEPRECATE_HARD=ON
132 SKIP_SSH_TESTS: true
133 SKIP_NEGOTIATE_TESTS: true
6c7cee42
RD
134
135- job: windows_mingw_x86
ac3d33df 136 displayName: 'Windows (x86; MinGW)'
66a70851
UG
137 pool:
138 vmImage: 'vs2017-win2016'
6c7cee42 139 steps:
0c9c969a 140 - bash: . '$(Build.SourcesDirectory)\azure-pipelines\setup-mingw.sh'
6c7cee42
RD
141 displayName: Setup
142 workingDirectory: '$(Build.BinariesDirectory)'
143 env:
144 TEMP: $(Agent.TempDirectory)
145 ARCH: x86
0c9c969a 146 - template: azure-pipelines/bash.yml
6c7cee42
RD
147 parameters:
148 environmentVariables:
0c9c969a
UG
149 BUILD_PATH: $(Agent.TempDirectory)\mingw32\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
150 CMAKE_GENERATOR: MinGW Makefiles
151 CMAKE_OPTIONS: -DDEPRECATE_HARD=ON
152 SKIP_SSH_TESTS: true
153 SKIP_NEGOTIATE_TESTS: true
ac3d33df
JK
154
155- job: documentation
156 displayName: 'Generate Documentation'
157 pool:
66a70851 158 vmImage: 'ubuntu-18.04'
ac3d33df 159 steps:
0c9c969a
UG
160 - script: |
161 cd $(Build.SourcesDirectory)/azure-pipelines/docker
162 docker build -t libgit2/docurium --build-arg BASE=ubuntu:trusty -f docurium .
163 displayName: 'Build Docker image'
ac3d33df
JK
164 - script: |
165 git config user.name 'Documentation Generation'
0c9c969a
UG
166 git config user.email 'libgit2@users.noreply.github.com'
167 git branch gh-pages origin/gh-pages
168 docker run --rm -v $(Build.SourcesDirectory):/home/libgit2/source -w /home/libgit2/source libgit2/docurium:latest cm doc api.docurium
ac3d33df
JK
169 git checkout gh-pages
170 cp -R * '$(Build.BinariesDirectory)'
0c9c969a 171 displayName: 'Generate Documentation'
ac3d33df
JK
172 - task: archivefiles@2
173 displayName: 'Archive Documentation'
174 inputs:
175 rootFolderOrFile: '$(Build.BinariesDirectory)'
176 includeRootFolder: false
177 archiveFile: '$(Build.ArtifactStagingDirectory)/api-documentation.zip'
178 - task: publishbuildartifacts@1
0c9c969a 179 displayName: 'Upload Documentation Artifact'
ac3d33df
JK
180 inputs:
181 pathToPublish: '$(Build.ArtifactStagingDirectory)'
182 artifactName: 'docs'
0c9c969a
UG
183 - script: |
184 git remote -v
185 echo 'machine github.com' > ~/.netrc
186 echo 'login $(GITHUB_USERNAME)' >> ~/.netrc
187 echo 'password $(GITHUB_PAT)' >> ~/.netrc
188 git push origin gh-pages
189 displayName: 'Publish Documentation'
190 condition: and(eq(variables['Build.Repository.Name'], 'libgit2/libgit2'), eq(variables['Build.Reason'], 'IndividualCI'))