forked from realm/SwiftLint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines.yml
84 lines (80 loc) · 2.4 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
trigger:
- master
jobs:
- job: Xcode
pool:
vmImage: 'macOS-11'
strategy:
maxParallel: 10
matrix:
xcode125:
DEVELOPER_DIR: /Applications/Xcode_12.5.1.app
xcode13:
DEVELOPER_DIR: /Applications/Xcode_13.0.app
steps:
- script: |
sw_vers
xcodebuild -version
displayName: Version Informations
- script: >
set -o pipefail &&
xcodebuild -scheme swiftlint test -destination "platform=macOS" |
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: Analyze
pool:
vmImage: 'macOS-11'
variables:
DEVELOPER_DIR: /Applications/Xcode_13.0.app
steps:
- script: make analyze
displayName: Run SwiftLint Analyze
- job: TSan
pool:
vmImage: 'macOS-11'
variables:
DEVELOPER_DIR: /Applications/Xcode_13.0.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-11'
variables:
DEVELOPER_DIR: /Applications/Xcode_13.2.1.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')