forked from realm/SwiftLint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
130 lines (123 loc) · 3.45 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
trigger:
- master
jobs:
- job: linux
pool:
vmImage: 'Ubuntu 16.04'
strategy:
maxParallel: 10
matrix:
swift53:
containerImage: swift:5.3
container: $[ variables['containerImage'] ]
steps:
- script: swift test --parallel
displayName: swift test
- job: Xcode
pool:
vmImage: 'macOS-10.15'
strategy:
maxParallel: 10
matrix:
xcode12:
DEVELOPER_DIR: /Applications/Xcode_12.app
xcode124:
DEVELOPER_DIR: /Applications/Xcode_12.4.app
steps:
- script: |
sw_vers
xcodebuild -version
displayName: Version Informations
- script: >
set -o pipefail &&
xcodebuild -scheme swiftlint test |
xcpretty -r junit -o build/reports/xcodebuild.xml
displayName: xcodebuild test
- script: bash <(curl -s https://codecov.io/bash)
displayName: Export code coverage
- task: PublishTestResults@2
inputs:
testRunner: JUnit
testResultsFiles: build/reports/**
condition: succeededOrFailed()
- job: SwiftPM
pool:
vmImage: 'macOS-10.15'
strategy:
maxParallel: 10
matrix:
xcode12:
DEVELOPER_DIR: /Applications/Xcode_12.app
xcode124:
DEVELOPER_DIR: /Applications/Xcode_12.4.app
steps:
- script: |
sw_vers
xcodebuild -version
displayName: Version Informations
- script: >
set -o pipefail &&
swift test --parallel
displayName: swift test
- job: CocoaPods
pool:
vmImage: 'macOS-10.15'
variables:
DEVELOPER_DIR: /Applications/Xcode_12.4.app
steps:
- script: bundle install --path vendor/bundle
displayName: bundle install
- script: bundle exec pod repo update
displayName: pod repo update
- script: bundle exec pod lib lint --verbose SwiftLintFramework.podspec
displayName: pod lib lint
- job: Analyze
pool:
vmImage: 'macOS-10.15'
variables:
DEVELOPER_DIR: /Applications/Xcode_12.4.app
steps:
- script: make analyze
displayName: Run SwiftLint Analyze
- job: TSan
pool:
vmImage: 'macOS-10.15'
variables:
DEVELOPER_DIR: /Applications/Xcode_12.4.app
steps:
- script: swift run --sanitize=thread swiftlint lint --lenient
displayName: Pre-cache SwiftLint Run
- script: swift run --sanitize=thread swiftlint lint --lenient
displayName: Post-cache SwiftLint Run
- script: make test_tsan
displayName: Test With TSan
- job: jazzy
pool:
vmImage: 'macOS-10.15'
variables:
DEVELOPER_DIR: /Applications/Xcode_12.4.app
steps:
- script: swift run swiftlint generate-docs
displayName: Run swiftlint generate-docs
- script: bundle install --path vendor/bundle
displayName: bundle install
- script: bundle exec jazzy
displayName: Run jazzy
- script: >
if ruby -rjson -e "j = JSON.parse(File.read('docs/undocumented.json')); exit j['warnings'].length != 0"; then
echo "Undocumented declarations:"
cat docs/undocumented.json
exit 1
fi
displayName: Validate documentation coverage
- task: PublishPipelineArtifact@0
inputs:
artifactName: 'API Docs'
targetPath: 'docs'
- task: DownloadSecureFile@1
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
secureFile: doc_deploy_key
- script: ./script/push-docs
displayName: Publish
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')