You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CICD.md
+14-10Lines changed: 14 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ CI/CD for Tree Tracker has been configured with GitHub Actions to allow new buil
3
3
4
4
## Workflow
5
5
6
-
The GitHub Actions workflow is located in `.github/workflows/build-release.yaml` and will trigger on any push or pull request for the repository. If the triggering event is a merge to `main`, the resulting application will also be published to TestFlight. Unit tests are executed early on in the workflow, which will exit if these do not pass.
6
+
The GitHub Actions workflow is located in `.github/workflows/build-release.yaml` and will trigger on any push or pull request for the repository. If the triggering event is a merge to `main` AND it is not a pull request (i.e. a validation build as part of PR review), the resulting application will also be published to TestFlight. Unit tests are executed early on in the workflow, which will exit if these do not pass.
7
7
8
8
## Pre-requisites
9
9
@@ -12,26 +12,30 @@ In order for the workflow to run successfully, repository secrets must be config
12
12
To add these, navigate to _Settings > Security > Secrets > Actions_ and add the following as repository secrets with the appropriate values:
13
13
14
14
```
15
-
AIRTABLE_API_KEY
16
-
AIRTABLE_BASE_ID
17
-
AIRTABLE_TREES_TABLE_NAME
18
-
AIRTABLE_SPECIES_TABLE_NAME
19
-
AIRTABLE_SUPERVISORS_TABLE_NAME
20
-
AIRTABLE_SITES_TABLE_NAME
21
15
CLOUDINARY_CLOUD_NAME
22
16
CLOUDINARY_UPLOAD_PRESET_NAME
17
+
PROTECT_EARTH_API_TOKEN
18
+
PROTECT_EARTH_API_BASE_URL
19
+
PROTECT_EARTH_ENV_NAME
20
+
ROLLBAR_AUTH_TOKEN
23
21
```
24
22
25
-
Finally, additional secrets must be configured to store the details required for signing and publishing the app to the AppStore. Add the following secrets in the same way as before, with the appropriate values:
23
+
Finally, additional secrets must be configured to store the details required for signing and publishing the app to the AppStore. Add the following secrets in the same way as before, with the appropriate values. Note that `KEYCHAIN_PASSWORD` can be any random string. It is used to secure the temporary keychain created during the build process, and is not referenced anywhere outside of the build.
26
24
27
25
```
28
26
PROVISIONING_PROFILE_BASE64
29
27
DISTRIBUTION_CERT_BASE64
28
+
DISTRIBUTION_CERT_PASSWORD
29
+
KEYCHAIN_PASSWORD
30
30
APPLE_APPLE_ID
31
31
APPLE_APP_SPECIFIC_PASSWORD
32
32
```
33
33
34
-
The provisioning profile used is currently _iOS App Store Distribution Profile 20220213_, which may be downloaded from AppStore Connect. Both files should be encoded to base64 via the following command line:
34
+
The provisioning profile used is currently _iOS AppStore Profile 07Mar2023_, which may be downloaded from AppStore Connect. Signing certificates may be managed in XCode and exported from there as a `.p12` file. See https://help.apple.com/xcode/mac/current/#/dev154b28f09 for instructions.
35
+
36
+
> **_NOTE:_** A new provisioning profile will need to be created annually since both the profile and the signing certificate it references expire after 1 year.
37
+
38
+
Both files should be encoded to base64 via the following command line:
35
39
36
40
`cat <path/to/file> | base64`
37
41
@@ -43,4 +47,4 @@ The App Specific Password is essentially an additional password which you can us
43
47
44
48
## TestFlight notes
45
49
46
-
The build number of the app is set to the run number of the workflow using `agvtool`. Updates to the release number should be made manually via a PR. Once published, compliance requirements will need to be accepted manually in TestFlight, and the appropriate tester groups will need to be added in order to get access to the latest build.
50
+
The build number of the app is set to the run number of the workflow using `agvtool`. Updates to the release number (_marketing version_) should be made manually via `agvtool new-marketing-version` and committed via a PR. Once published, the appropriate tester groups will need to be added in order to get access to the latest build.
0 commit comments