-
Notifications
You must be signed in to change notification settings - Fork 7
158 lines (135 loc) · 5.8 KB
/
build-internal.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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: Build Internal
# This worflow is used to create internal testing builds to allow for testing features before merge into main
permissions:
contents: write
pull-requests: write
on:
workflow_dispatch:
inputs:
environment:
description: "Select the environment"
required: false
default: "Production"
type: choice
options:
- Production
- Preview
jobs:
build-android:
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.environment || 'Production' }}
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: "18"
- name: Install dependencies
run: yarn install
- name: 🏗 Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: Create .env file from secrets
run: |
if [ "${{ github.event.inputs.environment || 'Production' }}" == "Production" ]; then
env_file=".env.production"
else
env_file=".env"
fi
echo "EXPO_PUBLIC_CONTACT_ADDRESS=${{ secrets.EXPO_PUBLIC_CONTACT_ADDRESS }}" >> $env_file
echo "EXPO_PUBLIC_DEBUG_ADDRESSES=${{ secrets.EXPO_PUBLIC_DEBUG_ADDRESSES }}" >> $env_file
echo "EXPO_PUBLIC_SENTRY_DSN=${{ secrets.EXPO_PUBLIC_SENTRY_DSN }}" >> $env_file
echo "EXPO_PUBLIC_WALLETCONNECT_PROJECT_ID=${{ secrets.EXPO_PUBLIC_WALLETCONNECT_PROJECT_ID }}" >> $env_file
echo "EXPO_PUBLIC_THIRDWEB_CLIENT_ID=${{ secrets.EXPO_PUBLIC_THIRDWEB_CLIENT_ID }}" >> $env_file
echo "EXPO_PUBLIC_EXPO_PROJECT_ID=${{ secrets.EXPO_PUBLIC_EXPO_PROJECT_ID }}" >> $env_file
echo "EXPO_PUBLIC_PRIVY_APP_ID=${{ secrets.EXPO_PUBLIC_PRIVY_APP_ID }}" >> $env_file
echo "EXPO_PUBLIC_EVM_RPC_ENDPOINT=${{ secrets.EXPO_PUBLIC_EVM_RPC_ENDPOINT }}" >> $env_file
- name: Update EAS config with env variables
run: |
if [ "${{ github.event.inputs.environment || 'Production' }}" == "Production" ]; then
node scripts/build/eas.js --env production
else
node scripts/build/eas.js --env preview
fi
- name: Build for Android
run: |
if [ "${{ github.event.inputs.environment || 'Production' }}" == "Production" ]; then
eas build --profile production --platform android --non-interactive --auto-submit --no-wait
else
eas build --profile preview --platform android --non-interactive --auto-submit --no-wait
fi
build-ios:
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.environment || 'Production' }}
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: "18"
- name: Install dependencies
run: yarn install
- name: 🏗 Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: Create .env file from secrets
run: |
if [ "${{ github.event.inputs.environment || 'Production' }}" == "Production" ]; then
env_file=".env.production"
else
env_file=".env"
fi
echo "EXPO_PUBLIC_CONTACT_ADDRESS=${{ secrets.EXPO_PUBLIC_CONTACT_ADDRESS }}" >> $env_file
echo "EXPO_PUBLIC_DEBUG_ADDRESSES=${{ secrets.EXPO_PUBLIC_DEBUG_ADDRESSES }}" >> $env_file
echo "EXPO_PUBLIC_SENTRY_DSN=${{ secrets.EXPO_PUBLIC_SENTRY_DSN }}" >> $env_file
echo "EXPO_PUBLIC_WALLETCONNECT_PROJECT_ID=${{ secrets.EXPO_PUBLIC_WALLETCONNECT_PROJECT_ID }}" >> $env_file
echo "EXPO_PUBLIC_THIRDWEB_CLIENT_ID=${{ secrets.EXPO_PUBLIC_THIRDWEB_CLIENT_ID }}" >> $env_file
echo "EXPO_PUBLIC_EXPO_PROJECT_ID=${{ secrets.EXPO_PUBLIC_EXPO_PROJECT_ID }}" >> $env_file
echo "EXPO_PUBLIC_PRIVY_APP_ID=${{ secrets.EXPO_PUBLIC_PRIVY_APP_ID }}" >> $env_file
echo "EXPO_PUBLIC_EVM_RPC_ENDPOINT=${{ secrets.EXPO_PUBLIC_EVM_RPC_ENDPOINT }}" >> $env_file
- name: Update EAS config with env variables
run: |
if [ "${{ github.event.inputs.environment || 'Production' }}" == "Production" ]; then
node scripts/build/eas.js --env production
else
node scripts/build/eas.js --env preview
fi
- name: Update iOS Files
# TODO: This should be handled by schemes in the future
run: |
if [ "${{ github.event.inputs.environment || 'Production' }}" == "Production" ]; then
node scripts/build/ios/production.js
else
node scripts/build/ios/preview.js
fi
- name: Build for iOS
run: |
if [ "${{ github.event.inputs.environment || 'Production' }}" == "Production" ]; then
eas build --profile production --platform ios --non-interactive --auto-submit --no-wait
else
eas build --profile preview --platform ios --non-interactive --auto-submit --no-wait
fi
increment-build-numbers:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: "18"
- name: Increment version numbers
run: node scripts/build/incrementBuildNumbers.js
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: increment-version
title: "Increment version numbers"
body: "This PR increments the buildNumber for iOS and the versionCode for Android."