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