Skip to content

Commit df9f43b

Browse files
authored
ci: add conventional commits support & unstable releases (#588)
1 parent 28c19f3 commit df9f43b

File tree

6 files changed

+281
-117
lines changed

6 files changed

+281
-117
lines changed

.circleci/config.yml

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ defaults: &defaults
77
xcode: "11.4.0"
88
working_directory: ~/amplify-ios
99
environment:
10-
BUNDLE_PATH: vendor/bundle
10+
BUNDLE_PATH: vendor/bundle
1111

1212
references:
13-
repo_cache_key: &repo_cache_key
14-
v1-repo-{{ .Branch }}-{{ .Revision }}
13+
repo_cache_key: &repo_cache_key v1-repo-{{ .Branch }}-{{ .Revision }}
1514

1615
restore_repo: &restore_repo
1716
restore_cache:
@@ -20,11 +19,9 @@ references:
2019
- v1-repo-{{ .Branch }}
2120
- v1-repo
2221

23-
pods_cache_key: &pods_cache_key
24-
v3-dependency-pods-{{ checksum "~/amplify-ios/Podfile" }}
25-
26-
pods_backup_cache_key: &pods_backup_cache_key
27-
v3-dependency-pods
22+
pods_cache_key: &pods_cache_key v3-dependency-pods-{{ checksum "~/amplify-ios/Podfile" }}
23+
24+
pods_backup_cache_key: &pods_backup_cache_key v3-dependency-pods
2825

2926
restore_pods: &restore_pods
3027
restore_cache:
@@ -64,18 +61,18 @@ commands:
6461
- save_cache:
6562
key: v1-<< parameters.prefix >>-dependency-pods-{{ checksum "Podfile" }}
6663
paths:
67-
- ./Pods
68-
64+
- ./Pods
65+
6966
restore_plugin_pods:
7067
parameters:
7168
prefix:
7269
type: string
7370
steps:
7471
- restore_cache:
75-
keys:
72+
keys:
7673
- v1-<< parameters.prefix >>-dependency-pods-{{ checksum "Podfile" }}
7774
- v1-<< parameters.prefix >>-dependency-pods
78-
75+
7976
jobs:
8077
checkout_code:
8178
<<: *defaults
@@ -84,9 +81,9 @@ jobs:
8481
- checkout
8582
- save_cache:
8683
key: *repo_cache_key
87-
paths:
84+
paths:
8885
- ~/amplify-ios
89-
86+
9087
install_gems:
9188
<<: *defaults
9289
steps:
@@ -149,19 +146,37 @@ jobs:
149146
command: xcodebuild test -workspace << parameters.workspace >>.xcworkspace -scheme << parameters.scheme >> -sdk iphonesimulator -destination "${destination}" | xcpretty --simple --color --report junit
150147
- store_test_results:
151148
path: build/reports
152-
149+
153150
deploy:
154151
<<: *defaults
152+
parameters:
153+
lane:
154+
type: string
155+
default: "unstable"
155156
description: deploy pods to trunk
156-
steps:
157+
steps:
158+
- add_ssh_keys:
159+
fingerprints:
160+
- "80:9a:29:87:ac:5f:1a:9b:c5:a4:3d:37:c1:10:87:2f"
157161
- *restore_repo
158162
- restore_gems
159163
- check_bundle
160164
- run:
161165
name: Release pods
162-
command: bundle exec fastlane release_pods
166+
command: bundle exec fastlane << parameters.lane >>
163167
no_output_timeout: 20m
164168

169+
deploy_requires: &deploy_requires
170+
requires:
171+
- build_test_amplify
172+
- unit_test_analytics
173+
- unit_test_api
174+
- unit_test_auth
175+
- unit_test_core_ml
176+
- unit_test_datastore
177+
- unit_test_predictions
178+
- unit_test_storage
179+
165180
workflows:
166181
build_test_deploy:
167182
jobs:
@@ -222,16 +237,17 @@ workflows:
222237
requires:
223238
- install_gems
224239
- deploy:
240+
name: deploy unstable
241+
<<: *deploy_requires
242+
filters:
243+
branches:
244+
only:
245+
- main
246+
- deploy:
247+
name: deploy stable
248+
lane: release
249+
<<: *deploy_requires
225250
filters:
226251
branches:
227252
only:
228253
- release
229-
requires:
230-
- build_test_amplify
231-
- unit_test_analytics
232-
- unit_test_api
233-
- unit_test_auth
234-
- unit_test_core_ml
235-
- unit_test_datastore
236-
- unit_test_predictions
237-
- unit_test_storage

Gemfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@
33
source 'https://rubygems.org'
44
gem 'xcpretty'
55
gem 'cocoapods'
6-
gem 'fastlane'
6+
gem 'fastlane'
7+
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
8+
eval_gemfile(plugins_path) if File.exist?(plugins_path)

0 commit comments

Comments
 (0)