Build Internal #105
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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." |