+6
-2
.github/workflows/build-submit-android.yml
+6
-2
.github/workflows/build-submit-android.yml
···
79
79
echo "$json" > google-services.json
80
80
81
81
- name: ๐๏ธ EAS Build
82
+
env:
83
+
PROFILE: ${{ inputs.profile || 'testflight-android' }}
82
84
run: >
83
85
SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}
84
86
SENTRY_RELEASE=${{ steps.env.outputs.EXPO_PUBLIC_RELEASE_VERSION }}
85
87
SENTRY_DIST=${{ steps.env.outputs.EXPO_PUBLIC_BUNDLE_IDENTIFIER }}
86
88
yarn use-build-number-with-bump
87
89
eas build -p android
88
-
--profile ${{ inputs.profile || 'testflight-android' }}
90
+
--profile $PROFILE
89
91
--local --output build.aab --non-interactive
90
92
91
93
- name: โ๏ธ Rename Testflight bundle
···
194
196
195
197
- name: โ๏ธ Write commit hash to cache
196
198
if: ${{ inputs.profile == 'testflight-android' }}
197
-
run: echo ${{ github.sha }} > most-recent-testflight-commit.txt
199
+
env:
200
+
GITHUB_SHA: ${{ github.sha }}
201
+
run: echo $GITHUB_SHA > most-recent-testflight-commit.txt
+6
-2
.github/workflows/build-submit-ios.yml
+6
-2
.github/workflows/build-submit-ios.yml
···
91
91
echo "${{ secrets.GOOGLE_SERVICES_TOKEN }}" > google-services.json
92
92
93
93
- name: ๐๏ธ EAS Build
94
+
env:
95
+
PROFILE: ${{ inputs.profile || 'testflight' }}
94
96
run: >
95
97
SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}
96
98
SENTRY_RELEASE=${{ steps.env.outputs.EXPO_PUBLIC_RELEASE_VERSION }}
97
99
SENTRY_DIST=${{ steps.env.outputs.EXPO_PUBLIC_BUNDLE_IDENTIFIER }}
98
100
yarn use-build-number-with-bump
99
101
eas build -p ios
100
-
--profile ${{ inputs.profile || 'testflight' }}
102
+
--profile $PROFILE
101
103
--local --output build.tar.gz --non-interactive
102
104
103
105
- name: ๐ Extract build artifact
···
147
149
key: most-recent-testflight-commit
148
150
149
151
- name: โ๏ธ Write commit hash to cache
152
+
env:
153
+
GITHUB_SHA: ${{ github.sha }}
150
154
if: ${{ inputs.profile == 'testflight' }}
151
-
run: echo ${{ github.sha }} > most-recent-testflight-commit.txt
155
+
run: echo $GITHUB_SHA > most-recent-testflight-commit.txt
+15
-6
.github/workflows/bundle-deploy-eas-update.yml
+15
-6
.github/workflows/bundle-deploy-eas-update.yml
···
39
39
40
40
# Validate the version if one is supplied. This should generally happen if the update is for a production client
41
41
- name: ๐ง Validate version
42
+
env:
43
+
RUNTIME_VERSION: ${{ inputs.runtimeVersion }}
42
44
if: ${{ inputs.runtimeVersion }}
43
45
run: |
44
-
if [ -z "${{ inputs.runtimeVersion }}" ]; then
45
-
[[ "${{ inputs.runtimeVersion }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] && echo "Version is valid" || exit 1
46
+
if [ -z "$RUNTIME_VERSION" ]; then
47
+
[[ "$RUNTIME_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] && echo "Version is valid" || exit 1
46
48
fi
47
49
48
50
- name: โฌ๏ธ Checkout
···
103
105
104
106
# eas.json not used here, set EXPO_PUBLIC_ENV
105
107
- name: Env
108
+
env:
109
+
CHANNEL: ${{ inputs.channel || 'testflight' }}
110
+
GITHUB_SHA: ${{ github.sha }}
106
111
id: env
107
112
if: ${{ !steps.fingerprint.outputs.includes-changes }}
108
113
run: |
109
114
export json='${{ secrets.GOOGLE_SERVICES_TOKEN }}'
110
115
echo "${{ secrets.ENV_TOKEN }}" > .env
111
-
echo "EXPO_PUBLIC_ENV=${{ inputs.channel || 'testflight' }}" >> .env
116
+
echo "EXPO_PUBLIC_ENV=$CHANNEL" >> .env
112
117
echo "EXPO_PUBLIC_RELEASE_VERSION=$(jq -r '.version' package.json)" >> .env
113
118
echo "EXPO_PUBLIC_RELEASE_VERSION=$(jq -r '.version' package.json)" >> $GITHUB_OUTPUT
114
119
echo "EXPO_PUBLIC_BUNDLE_IDENTIFIER=$(git rev-parse HEAD)" >> .env
···
145
150
146
151
- name: โ๏ธ Write commit hash to cache
147
152
if: ${{ !steps.fingerprint.outputs.includes-changes }}
148
-
run: echo ${{ github.sha }} > most-recent-testflight-commit.txt
153
+
run: echo $GITHUB_SHA > most-recent-testflight-commit.txt
149
154
150
155
# GitHub actions are horrible so let's just copy paste this in
151
156
buildIfNecessaryIOS:
···
249
254
250
255
- name: โ๏ธ Write commit hash to cache
251
256
if: ${{ inputs.channel == 'testflight' }}
252
-
run: echo ${{ github.sha }} > most-recent-testflight-commit.txt
257
+
env:
258
+
GITHUB_SHA: ${{ github.sha }}
259
+
run: echo $GITHUB_SHA > most-recent-testflight-commit.txt
253
260
254
261
buildIfNecessaryAndroid:
255
262
name: Build and Submit Android
···
363
370
key: most-recent-testflight-commit
364
371
365
372
- name: โ๏ธ Write commit hash to cache
373
+
env:
374
+
GITHUB_SHA: ${{ github.sha }}
366
375
if: ${{ inputs.channel != 'testflight' && inputs.channel != 'production' }}
367
-
run: echo ${{ github.sha }} > most-recent-testflight-commit.txt
376
+
run: echo $GITHUB_SHA > most-recent-testflight-commit.txt
+7
-3
.github/workflows/pull-request-comment.yml
+7
-3
.github/workflows/pull-request-comment.yml
···
32
32
fi
33
33
34
34
35
-
if [[ "${{ github.event.comment.body }}" == *"ota"* ]]; then
35
+
if [[ "$COMMENT" == *"ota"* ]]; then
36
36
has_ota=true
37
37
else
38
38
has_ota=false
···
75
75
76
76
steps:
77
77
- name: Get PR HEAD SHA
78
+
env:
79
+
ISSUE_NUMBER: ${{ github.event.issue.number }}
78
80
id: pr-info
79
81
uses: actions/github-script@v7
80
82
with:
···
82
84
const pr = await github.rest.pulls.get({
83
85
owner: context.repo.owner,
84
86
repo: context.repo.repo,
85
-
pull_number: ${{ github.event.issue.number }}
87
+
pull_number: process.env.ISSUE_NUMBER,
86
88
});
87
89
88
90
console.log(`PR HEAD SHA: ${pr.data.head.sha}`);
···
184
186
185
187
- name: ๐ฌ Drop a comment
186
188
uses: marocchino/sticky-pull-request-comment@v2
189
+
env:
190
+
ISSUE_NUMBER: ${{ github.event.issue.number }}
187
191
with:
188
192
header: pull-request-eas-build-${{ steps.pr-info.outputs.head-sha }}
189
193
number: ${{ github.event.issue.number }}
190
194
message: |
191
195
Your requested OTA deployment was successful! You may now apply it by either scanning the QR code or opening the deep link below in your browser:
192
196
193
-
<img src="https://bsky-qr.vercel.app?channel=pull-request-${{ github.event.issue.number }}" width=300 height=300>
197
+
<img src="https://bsky-qr.vercel.app?channel=pull-request-$ISSUE_NUMBER" width=300 height=300>
194
198
195
199
`bluesky://intent/apply-ota?channel=pull-request-${{ github.event.issue.number }}`
196
200
---
+11
-4
.github/workflows/pull-request-commit.yml
+11
-4
.github/workflows/pull-request-commit.yml
···
35
35
cache: yarn
36
36
37
37
- name: Ensure tracking relevant branches and checkout base
38
+
env:
39
+
HEAD_REF: ${{ github.head_ref }}
40
+
BASE_REF: ${{ github.base_ref }}
38
41
run: |
39
-
git checkout ${{ github.head_ref }}
40
-
git checkout ${{ github.base_ref }}
42
+
git checkout $HEAD_REF
43
+
git checkout $BASE_REF
41
44
42
45
- name: Get the base commit
43
46
id: base-commit
44
-
run: echo base-commit=$(git log -n 1 ${{ github.base_ref }} --pretty=format:'%H') >> "$GITHUB_OUTPUT"
47
+
env:
48
+
BASE_REF: ${{ github.base_ref }}
49
+
run: echo base-commit=$(git log -n 1 $BASE_REF --pretty=format:'%H') >> "$GITHUB_OUTPUT"
45
50
46
51
- name: Merge PR commit
52
+
env:
53
+
HEAD_REF: ${{ github.head_ref }}
47
54
run: |
48
55
# Have to set a git config for the merge to work
49
56
git config --global user.email "github-actions[bot]@users.noreply.github.com"
50
57
git config --global user.name "github-actions[bot]"
51
-
git merge --no-edit ${{ github.head_ref }}
58
+
git merge --no-edit $HEAD_REF
52
59
yarn install
53
60
yarn intl:build
54
61
+6
-2
.github/workflows/verify-yarn-lock.yml
+6
-2
.github/workflows/verify-yarn-lock.yml
···
17
17
fetch-depth: 0
18
18
19
19
- name: Fetch base branch
20
-
run: git fetch origin ${{ github.base_ref }} --depth=1
20
+
env:
21
+
BASE_REF: ${{ github.base_ref }}
22
+
run: git fetch origin $BASE_REF --depth=1
21
23
22
24
- name: Install node
23
25
uses: actions/setup-node@v6
···
25
27
node-version-file: .nvmrc
26
28
27
29
- name: Reset yarn.lock to base
28
-
run: git show "origin/${{ github.base_ref }}:yarn.lock" > yarn.lock
30
+
env:
31
+
BASE_REF: ${{ github.base_ref }}
32
+
run: git show "origin/$BASE_REF:yarn.lock" > yarn.lock
29
33
30
34
- name: Yarn install
31
35
uses: Wandalen/wretry.action@master