-
Notifications
You must be signed in to change notification settings - Fork 4
/
azure-pipelines.yml
136 lines (121 loc) · 3.79 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
#
trigger:
branches:
include:
- main
- releases/*
pr:
- main
- releases/*
pool:
vmImage: ubuntu-latest
resources:
containers:
- container: ubuntu18.04-gcc11-conan2-doxygen1.9.6
image: mattgomes28/cpp:0.0
options: --user 0:0
stages:
- stage: failfast
displayName: FailFast Checks
jobs:
- job: failfast
displayName: Failfast Scripts
container: ubuntu18.04-gcc11-conan2-doxygen1.9.6
continueOnError: false
steps:
- bash: scripts/shellcheck.sh
displayName: Linting Shell
workingDirectory: $(Build.SourcesDirectory)
- bash: scripts/cpp-lint.sh
displayName: Linting CPP files
workingDirectory: $(Build.SourcesDirectory)
- stage: build_cmake
displayName: Build CMake
dependsOn:
- failfast
jobs:
- template: scripts/pipeline/ubuntu_build.yml
parameters:
jobName: ubuntu_build_x86_64_fetch_debug
buildType: Debug
cmakePreset: unix-deb
containerName: ubuntu18.04-gcc11-conan2-doxygen1.9.6
sourceDir: $(Build.SourcesDirectory)/fetch-content
artifactName: CmakeDebugBuild
- template: scripts/pipeline/ubuntu_build.yml
parameters:
jobName: ubuntu_build_x86_64_fetch_release
buildType: Release
cmakePreset: unix-rel
containerName: ubuntu18.04-gcc11-conan2-doxygen1.9.6
sourceDir: $(Build.SourcesDirectory)/fetch-content
artifactName: CmakeReleaseBuild
- stage: build_conan
displayName: Build Conan
dependsOn:
- failfast
jobs:
- template: scripts/pipeline/ubuntu_build.yml
parameters:
jobName: ubuntu_build_x86_64_conan_debug
buildType: Debug
cmakePreset: unix-deb-conan
containerName: ubuntu18.04-gcc11-conan2-doxygen1.9.6
sourceDir: $(Build.SourcesDirectory)/conan
artifactName: ConanDebugBuild
preBuildCommand: ./scripts/helpers/conan-install.sh Debug
- template: scripts/pipeline/ubuntu_build.yml
parameters:
jobName: ubuntu_build_x86_64_conan_release
buildType: Release
cmakePreset: unix-rel-conan
containerName: ubuntu18.04-gcc11-conan2-doxygen1.9.6
sourceDir: $(Build.SourcesDirectory)/conan
artifactName: ConanReleaseBuild
preBuildCommand: ./scripts/helpers/conan-install.sh Release
- stage: build_vcpkg
displayName: Build Vcpkg
dependsOn:
- failfast
jobs:
- template: scripts/pipeline/ubuntu_build.yml
parameters:
jobName: ubuntu_build_x86_64_vcpkg_debug
buildType: Debug
cmakePreset: unix-deb-vcpkg
containerName: ubuntu18.04-gcc11-conan2-doxygen1.9.6
sourceDir: $(Build.SourcesDirectory)/vcpkg
artifactName: VcpkgDebugBuild
preBuildCommand: ./scripts/helpers/vcpkg-install.sh Debug
- stage: tests
displayName: Running Ubuntu Tests
dependsOn:
- build_cmake
- build_conan
- build_vcpkg
jobs:
- template: scripts/pipeline/ubuntu_test.yml
parameters:
displayName: CMake Fetch* Tests
cmakePreset: unix-deb
containerName: ubuntu18.04-gcc11-conan2-doxygen1.9.6
sourceDir: $(Build.SourcesDirectory)/fetch-content
artifactName: CmakeDebugBuild
- template: scripts/pipeline/ubuntu_test.yml
parameters:
displayName: Conan Tests
cmakePreset: unix-deb-conan
containerName: ubuntu18.04-gcc11-conan2-doxygen1.9.6
sourceDir: $(Build.SourcesDirectory)/conan
artifactName: ConanDebugBuild
- template: scripts/pipeline/ubuntu_test.yml
parameters:
displayName: Vcpkg Tests
cmakePreset: unix-deb-vcpkg
containerName: ubuntu18.04-gcc11-conan2-doxygen1.9.6
sourceDir: $(Build.SourcesDirectory)/vcpkg
artifactName: VcpkgDebugBuild