forked from KomodoPlatform/komodo-defi-framework
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
113 lines (100 loc) · 3.85 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
# 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
variables:
- group: passphrases
trigger:
branches:
include:
- refs/heads/*
paths:
exclude:
- docs/*
- README.md
- mm2src/README.md
- etomic_build/*
- iguana/Readme.md
- .gitignore
pr: # https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema%2Cparameter-schema#pr-trigger
drafts: false
# https://docs.microsoft.com/ru-ru/azure/devops/pipelines/process/scheduled-triggers?view=azure-devops&tabs=yaml#scheduled-triggers
# Triggers clean checkout to compile from scratch, remove old builds artifacts, and free disk space on CI agents.
# https://github.com/KomodoPlatform/atomicDEX-API/blob/957fd856fb74d462058a5ad47ec46d79e3bf1d83/azure-pipelines-build-stage-job.yml#L20
schedules:
- cron: "0 0 * * *"
displayName: Scheduled clean midnight UTC build
branches:
include:
- dev
stages:
- stage: Lint
displayName: Formatting, Clippy, and other checks
jobs:
- template: azure-pipelines-lint-stage-job.yml # Template reference
parameters:
name: 'MM2_Lint_Linux'
os: 'Linux'
- template: azure-pipelines-lint-stage-job.yml # Template reference
parameters:
name: 'MM2_Lint_MacOS'
os: 'Darwin'
- template: azure-pipelines-lint-stage-job.yml # Template reference
parameters:
name: 'MM2_Lint_Win'
os: 'Windows_NT'
- stage: WASM
displayName: WASM build and test
condition: succeeded('Lint')
jobs:
- template: azure-pipelines-wasm-stage-job.yml # Template reference
parameters:
name: 'MM2_WASM_Linux'
os: 'Linux'
bob_passphrase: 'BOB_PASSPHRASE_LINUX'
bob_userpass: 'BOB_USERPASS_LINUX'
alice_passphrase: 'ALICE_PASSPHRASE_LINUX'
alice_userpass: 'ALICE_USERPASS_LINUX'
telegram_api_key: 'TELEGRAM_API_KEY'
- stage: Mobile
displayName: Mobile libs build
condition: and(succeeded('WASM'), or(eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranchName'], 'main'), eq(variables['Build.SourceBranchName'], 'dev')))
jobs:
- template: azure-pipelines-android-job.yml
parameters:
os: 'Linux'
- template: azure-pipelines-ios-job.yml
parameters:
os: 'Darwin'
- stage: Desktop
displayName: Desktop Build and test
condition: or(eq(dependencies.Mobile.result, 'Succeeded'), and(eq(dependencies.Mobile.result, 'Skipped'), succeeded('WASM')))
dependsOn: Mobile
jobs:
- template: azure-pipelines-build-stage-job.yml # Template reference
parameters:
name: 'MM2_Build_Linux'
os: 'Linux'
bob_passphrase: 'BOB_PASSPHRASE_LINUX'
bob_userpass: 'BOB_USERPASS_LINUX'
alice_passphrase: 'ALICE_PASSPHRASE_LINUX'
alice_userpass: 'ALICE_USERPASS_LINUX'
telegram_api_key: 'TELEGRAM_API_KEY'
- template: azure-pipelines-build-stage-job.yml # Template reference
parameters:
name: 'MM2_Build_MacOS'
os: 'Darwin'
bob_passphrase: 'BOB_PASSPHRASE_MAC'
bob_userpass: 'BOB_USERPASS_MAC'
alice_passphrase: 'ALICE_PASSPHRASE_MAC'
alice_userpass: 'ALICE_USERPASS_MAC'
telegram_api_key: 'TELEGRAM_API_KEY'
- template: azure-pipelines-build-stage-job.yml # Template reference
parameters:
name: 'MM2_Build_Windows'
os: 'Windows_NT'
bob_passphrase: 'BOB_PASSPHRASE_WIN'
bob_userpass: 'BOB_USERPASS_WIN'
alice_passphrase: 'ALICE_PASSPHRASE_WIN'
alice_userpass: 'ALICE_USERPASS_WIN'
telegram_api_key: 'TELEGRAM_API_KEY'