Skip to content

Commit 5fb8967

Browse files
authored
added heartbeat test ios build infrastructure (#6842)
* [iOS] added yml version of ci updated path [ios] path update [iOS] variable updated [ios] added new test scheme * [iOS] added spec linting task added missing test file updated spect lint task added error handling added parallelism to jobs * added cert test added cert install yml updated pass Update ios-heartbeat.yml for Azure Pipelines added provisional file added script unimportant commit unimportant commit unimportant commit * added e-mail message simple update added e-mail message added e-mail message added e-mail message updated e-mail message updated e-mail message updated e-mail message * updated cron job * added false test Revert "added false test" This reverts commit ef302f0. * added false test added build task to cert task added build task to cert task added build task to cert task good cert bad prov added app push * parameterized template updated parameters updated params updated parameters updated to correct provisional file * updated trigger * updated e-mail address
1 parent b813d37 commit 5fb8967

File tree

7 files changed

+336
-0
lines changed

7 files changed

+336
-0
lines changed

.pipelines/ios-ci.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Xcode
2+
# Build, test, and archive an Xcode workspace on macOS.
3+
# Add steps that install certificates, test, sign, and distribute an app, save build artifacts, and more:
4+
# https://docs.microsoft.com/azure/devops/pipelines/languages/xcode
5+
6+
name: $(Year:yy).$(Month).$(DayOfMonth).$(rev:r)
7+
8+
pr:
9+
branches:
10+
include:
11+
- main
12+
- feature/*
13+
- release/*
14+
15+
schedules:
16+
- cron: "0 0 * * 6"
17+
displayName: testing
18+
branches:
19+
include:
20+
- main
21+
pool:
22+
vmImage: 'macos-latest'
23+
24+
steps:
25+
- template: templates/ios-ci-template.yml

.pipelines/ios-heartbeat.yml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: $(Year:yy).$(Month).$(DayOfMonth).$(rev:r)
2+
3+
pr: none
4+
trigger: none
5+
6+
schedules:
7+
- cron: "1 7 1,15 * *"
8+
displayName: Send Heartbeat
9+
branches:
10+
include:
11+
- main
12+
jobs:
13+
- job: specLint
14+
displayName: 'check podspec health'
15+
pool:
16+
vmImage: 'macos-latest'
17+
steps:
18+
- template: templates/ios-spec-lint-template.yml
19+
20+
- job: unitTest
21+
displayName: 'check code health'
22+
pool:
23+
vmImage: 'macos-latest'
24+
steps:
25+
- template: templates/ios-ci-template.yml
26+
27+
- job: certificateCheck
28+
displayName: 'check certificate health'
29+
pool:
30+
vmImage: 'macos-latest'
31+
steps:
32+
- template: templates/ios-install-cert-template.yml
33+
34+
- job:
35+
pool:
36+
vmImage: 'windows-latest'
37+
displayName: 'collect result'
38+
dependsOn:
39+
- specLint
40+
- unitTest
41+
- certificateCheck
42+
condition: always()
43+
variables:
44+
j1: $[dependencies.specLint.result]
45+
j2: $[dependencies.unitTest.result]
46+
j3: $[dependencies.certificateCheck.result]
47+
steps:
48+
- task: PkgESSendMail@10
49+
inputs:
50+
51+
subject: 'iOS Release Pipeline Health Check'
52+
bodyType: 'string'
53+
body: |
54+
<!DOCTYPE html>
55+
<html>
56+
<body>
57+
<h2>iOS Release Pipeline Health Check Report</h2>
58+
<ol>
59+
<li>spec linting check has $(j1)</li>
60+
<li>code health check has $(j2)</li>
61+
<li>certificate check has $(j3)</li>
62+
</ol>
63+
</body>
64+
</html>
65+
isHtml: true
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
parameters:
2+
- name: 'sdk'
3+
default: 'iphonesimulator'
4+
type: string
5+
6+
- name: 'signingOption'
7+
default: 'default'
8+
type: string
9+
10+
- name: 'packageApp'
11+
default: false
12+
type: boolean
13+
14+
- name: 'configuration'
15+
default: 'Debug'
16+
type: string
17+
18+
steps:
19+
- task: CocoaPods@0
20+
displayName: 'Installing dependency via pod'
21+
inputs:
22+
workingDirectory: 'source/ios/AdaptiveCards'
23+
forceRepoUpdate: false
24+
25+
- task: Xcode@5
26+
displayName: 'Compiling...'
27+
inputs:
28+
actions: 'build'
29+
xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace'
30+
scheme: 'ADCIOSVisualizer'
31+
xcodeVersion: '12'
32+
packageApp: ${{ parameters.packageApp }}
33+
signingOption: ${{ parameters.signingOption }}
34+
sdk: ${{ parameters.sdk }}
35+
configuration: ${{ parameters.configuration }}
36+
destinationPlatformOption: 'iOS'
37+
destinationSimulators: 'iPhone 12'
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
steps:
2+
- template: ios-build-template.yml
3+
4+
- task: Xcode@5
5+
displayName: 'Sample App Unit Test'
6+
inputs:
7+
actions: 'test'
8+
xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace'
9+
scheme: 'ADCIOSVisualizer'
10+
xcodeVersion: '12'
11+
packageApp: false
12+
signingOption: 'default'
13+
sdk: 'iphonesimulator'
14+
destinationPlatformOption: 'iOS'
15+
destinationSimulators: 'iPhone 12'
16+
17+
- task: Xcode@5
18+
19+
displayName: 'Framework Unit Test'
20+
inputs:
21+
actions: 'test'
22+
xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace'
23+
scheme: 'AdaptiveCards'
24+
xcodeVersion: '12'
25+
packageApp: false
26+
signingOption: 'default'
27+
sdk: 'iphonesimulator'
28+
destinationPlatformOption: 'iOS'
29+
destinationSimulators: 'iPhone 12'
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
steps:
2+
- task: InstallAppleCertificate@2
3+
displayName: 'Install Certificates'
4+
inputs:
5+
certSecureFile: 'Certificates_Nov_19_B.p12'
6+
certPwd: '$(P12password)'
7+
keychain: 'temp'
8+
9+
- task: InstallAppleProvisioningProfile@1
10+
displayName: 'Install Provisioning Profile'
11+
inputs:
12+
provisioningProfileLocation: 'secureFiles'
13+
provProfileSecureFile: 'a5e2ba07-6d9f-4254-abf0-ad59b7effefa.mobileprovision'
14+
15+
- template: ios-build-template.yml
16+
parameters:
17+
sdk: iphoneos
18+
signingOption: auto
19+
packageApp: true
20+
configuration: Release
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
steps:
2+
- task: Bash@3
3+
displayName: 'Spec Lint'
4+
inputs:
5+
targetType: 'inline'
6+
script: |
7+
# Write your commands here
8+
pod spec lint ./source/ios/tools/AdaptiveCards.podspec --allow-warnings
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
{
2+
"type": "AdaptiveCard",
3+
"version": "1.2",
4+
"body": [
5+
{
6+
"type": "TextBlock",
7+
"text": "Press the buttons to toggle the images!",
8+
"wrap": true
9+
},
10+
{
11+
"type": "TextBlock",
12+
"text": "Here are some images:",
13+
"isVisible": false,
14+
"id": "textToToggle"
15+
},
16+
{
17+
"type": "ColumnSet",
18+
"columns": [
19+
{
20+
"type": "Column",
21+
"expected": {
22+
"numberOfViews" : "0",
23+
"visible" : true
24+
},
25+
"items": [
26+
{
27+
"style": "person",
28+
"type": "Image",
29+
"url": "https://picsum.photos/100/100?image=112",
30+
"isVisible": false,
31+
"id": "imageToToggle",
32+
"altText": "sample image 1",
33+
"size": "medium"
34+
}
35+
]
36+
},
37+
{
38+
"type": "Column",
39+
"expected": {
40+
"numberOfViews" : "2",
41+
"visible" : true
42+
},
43+
"items": [
44+
45+
{
46+
"type": "Image",
47+
"url": "https://picsum.photos/100/100?image=123",
48+
"isVisible": true,
49+
"id": "imageToToggle2",
50+
"altText": "sample image 2",
51+
"size": "medium"
52+
}
53+
]
54+
}
55+
]
56+
}
57+
],
58+
"actions": [
59+
{
60+
"type": "Action.ToggleVisibility",
61+
"title": "Toggle!",
62+
"targetElements": [ "textToToggle", "imageToToggle", "imageToToggle2" ]
63+
},
64+
{
65+
"type": "Action.ToggleVisibility",
66+
"title": "Also Toggle!",
67+
"targetElements": [
68+
{
69+
"elementId": "textToToggle"
70+
},
71+
{
72+
"elementId": "imageToToggle"
73+
},
74+
{
75+
"elementId": "imageToToggle2"
76+
}
77+
]
78+
},
79+
{
80+
"type": "Action.ToggleVisibility",
81+
"title": "Show!",
82+
"targetElements": [
83+
{
84+
"elementId": "textToToggle",
85+
"isVisible": true
86+
},
87+
{
88+
"elementId": "imageToToggle",
89+
"isVisible": true
90+
},
91+
{
92+
"elementId": "imageToToggle2",
93+
"isVisible": true
94+
}
95+
]
96+
},
97+
{
98+
"type": "Action.ToggleVisibility",
99+
"title": "Hide!",
100+
"targetElements": [
101+
{
102+
"elementId": "textToToggle",
103+
"isVisible": false
104+
},
105+
{
106+
"elementId": "imageToToggle",
107+
"isVisible": false
108+
},
109+
{
110+
"elementId": "imageToToggle2",
111+
"isVisible": false
112+
}
113+
]
114+
},
115+
{
116+
"type": "Action.ToggleVisibility",
117+
"title": "Grain!",
118+
"targetElements": [
119+
{
120+
"elementId": "textToToggle",
121+
"isVisible": true
122+
},
123+
{
124+
"elementId": "imageToToggle",
125+
"isVisible": true
126+
},
127+
{
128+
"elementId": "imageToToggle2",
129+
"isVisible": false
130+
}
131+
]
132+
},
133+
{
134+
"type": "Action.ToggleVisibility",
135+
"title": "Water!",
136+
"targetElements": [
137+
{
138+
"elementId": "textToToggle",
139+
"isVisible": true
140+
},
141+
{
142+
"elementId": "imageToToggle",
143+
"isVisible": false
144+
},
145+
{
146+
"elementId": "imageToToggle2",
147+
"isVisible": true
148+
}
149+
]
150+
}
151+
]
152+
}

0 commit comments

Comments
 (0)