azure-pipelines.yml 5.28 KB
Newer Older
1 2 3
resources:
- repo: self

4 5 6 7
trigger:
- master
- maint/*

David Staheli committed
8
jobs:
Edward Thomson committed
9 10
- job: linux_amd64_trusty_gcc_openssl
  displayName: 'Linux (amd64; Trusty; GCC; OpenSSL)'
11 12 13
  pool:
    vmImage: 'Ubuntu 16.04'
  steps:
Edward Thomson committed
14 15 16 17 18
  - template: azure-pipelines/docker.yml
    parameters:
      imageName: 'libgit2/trusty-amd64:latest'
      environmentVariables: |
       CC=gcc
19
       CMAKE_GENERATOR=Unix Makefiles
20
       CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DREGEX_BACKEND=builtin -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
Edward Thomson committed
21 22 23 24 25 26 27 28 29 30 31

- job: linux_amd64_trusty_gcc_mbedtls
  displayName: 'Linux (amd64; Trusty; GCC; mbedTLS)'
  pool:
    vmImage: 'Ubuntu 16.04'
  steps:
  - template: azure-pipelines/docker.yml
    parameters:
      imageName: 'libgit2/trusty-amd64:latest'
      environmentVariables: |
       CC=gcc
32
       CMAKE_GENERATOR=Unix Makefiles
33
       CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
Edward Thomson committed
34 35 36 37 38 39 40 41 42 43 44

- job: linux_amd64_trusty_clang_openssl
  displayName: 'Linux (amd64; Trusty; Clang; OpenSSL)'
  pool:
    vmImage: 'Ubuntu 16.04'
  steps:
  - template: azure-pipelines/docker.yml
    parameters:
      imageName: 'libgit2/trusty-amd64:latest'
      environmentVariables: |
       CC=clang
45
       CMAKE_GENERATOR=Unix Makefiles
46
       CMAKE_OPTIONS=-DUSE_HTTPS=OpenSSL -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
Edward Thomson committed
47 48 49 50 51 52 53 54 55 56 57

- job: linux_amd64_trusty_clang_mbedtls
  displayName: 'Linux (amd64; Trusty; Clang; mbedTLS)'
  pool:
    vmImage: 'Ubuntu 16.04'
  steps:
  - template: azure-pipelines/docker.yml
    parameters:
      imageName: 'libgit2/trusty-amd64:latest'
      environmentVariables: |
       CC=clang
58
       CMAKE_GENERATOR=Unix Makefiles
59
       CMAKE_OPTIONS=-DUSE_HTTPS=mbedTLS -DUSE_SHA1=HTTPS -DREGEX_BACKEND=pcre -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=valgrind
Edward Thomson committed
60 61 62 63 64 65

- job: macos
  displayName: 'macOS'
  pool:
    vmImage: 'macOS 10.13'
  steps:
66
  - bash: . '$(Build.SourcesDirectory)/azure-pipelines/setup-osx.sh'
Edward Thomson committed
67 68
    displayName: Setup
  - template: azure-pipelines/bash.yml
69 70
    parameters:
      environmentVariables:
Edward Thomson committed
71 72
        TMPDIR: $(Agent.TempDirectory)
        PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig
73 74
        CMAKE_GENERATOR: Ninja
        CMAKE_OPTIONS: -DREGEX_BACKEND=regcomp_l -DDEPRECATE_HARD=ON -DUSE_LEAK_CHECKER=leaks
75 76
        SKIP_SSH_TESTS: true

Edward Thomson committed
77 78 79 80
- job: windows_vs_amd64
  displayName: 'Windows (amd64; Visual Studio)'
  pool: Hosted
  steps:
81
  - template: azure-pipelines/bash.yml
Edward Thomson committed
82 83
    parameters:
      environmentVariables:
84 85
        CMAKE_GENERATOR: Visual Studio 12 2013 Win64
        CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON
86
        SKIP_SSH_TESTS: true
Edward Thomson committed
87 88 89 90 91

- job: windows_vs_x86
  displayName: 'Windows (x86; Visual Studio)'
  pool: Hosted
  steps:
92
  - template: azure-pipelines/bash.yml
Edward Thomson committed
93 94
    parameters:
      environmentVariables:
95 96
        CMAKE_GENERATOR: Visual Studio 12 2013
        CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -DDEPRECATE_HARD=ON -DUSE_SHA1=HTTPS
97
        SKIP_SSH_TESTS: true
Edward Thomson committed
98 99 100 101 102

- job: windows_mingw_amd64
  displayName: 'Windows (amd64; MinGW)'
  pool: Hosted
  steps:
103
  - bash: . '$(Build.SourcesDirectory)\azure-pipelines\setup-mingw.sh'
Edward Thomson committed
104 105 106 107
    displayName: Setup
    env:
      TEMP: $(Agent.TempDirectory)
      ARCH: amd64
108
  - template: azure-pipelines/bash.yml
Edward Thomson committed
109 110
    parameters:
      environmentVariables:
111
        BUILD_PATH: $(Agent.TempDirectory)\mingw64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
112 113
        CMAKE_GENERATOR: MinGW Makefiles
        CMAKE_OPTIONS: -DDEPRECATE_HARD=ON
114
        SKIP_SSH_TESTS: true
Edward Thomson committed
115 116 117 118 119

- job: windows_mingw_x86
  displayName: 'Windows (x86; MinGW)'
  pool: Hosted
  steps:
120
  - bash: . '$(Build.SourcesDirectory)\azure-pipelines\setup-mingw.sh'
Edward Thomson committed
121 122 123 124 125
    displayName: Setup
    workingDirectory: '$(Build.BinariesDirectory)'
    env:
      TEMP: $(Agent.TempDirectory)
      ARCH: x86
126
  - template: azure-pipelines/bash.yml
Edward Thomson committed
127 128
    parameters:
      environmentVariables:
129
        BUILD_PATH: $(Agent.TempDirectory)\mingw32\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
130 131
        CMAKE_GENERATOR: MinGW Makefiles
        CMAKE_OPTIONS: -DDEPRECATE_HARD=ON
132
        SKIP_SSH_TESTS: true
Edward Thomson committed
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165

- job: documentation
  displayName: 'Generate Documentation'
  pool:
    vmImage: 'Ubuntu 16.04'
  steps:
  - 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):/src -w /src 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: eq(variables['Build.Reason'], 'IndividualCI')