refactor: upgrade to Expo SDK 52 #675
Workflow file for this run
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: Runtime | |
defaults: | |
run: | |
working-directory: runtime | |
concurrency: | |
group: runtime-${{ github.event_name }}-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
workflow_dispatch: | |
inputs: | |
deploy: | |
description: What environment should be deployed | |
type: choice | |
default: no-deploy | |
options: | |
- no-deploy | |
- staging | |
- production | |
platform: | |
description: What platform should be deployed | |
type: choice | |
default: all | |
options: | |
- all | |
- web | |
- native | |
pull_request: | |
paths: | |
- .github/actions/setup-runtime/** | |
- .github/workflows/runtime.yml | |
- runtime/** | |
- .eslint* | |
- .prettier* | |
push: | |
branches: [main] | |
paths: | |
- .github/actions/setup-runtime/** | |
- .github/workflows/runtime.yml | |
- runtime/** | |
- .eslint* | |
- .prettier* | |
jobs: | |
review: | |
runs-on: ubuntu-latest | |
steps: | |
- name: π Setup repository | |
uses: actions/checkout@v3 | |
- name: π Setup runtime | |
uses: ./.github/actions/setup-runtime | |
- name: π¨ Lint runtime | |
run: | | |
yarn tsc --noEmit | |
yarn lint --max-warnings 0 | |
- name: π§ͺ Run runtime tests | |
run: | | |
yarn test --ci --maxWorkers 1 | |
deploy-staging: | |
if: ${{ (github.event.inputs.deploy == 'staging' && github.event_name != 'pull_request') || (github.event_name == 'push' && github.ref == 'refs/heads/main') }} | |
needs: review | |
runs-on: ubuntu-latest | |
environment: | |
name: runtime-staging | |
url: https://staging.expo.dev/@exponent/snack | |
env: | |
EXPO_PROJECT_ID: 2dce2748-c51f-4865-bae0-392af794d60a # Configure the EAS Update project | |
EXPO_PUBLIC_SNACK_ENV: staging # Configure Snack to use staging endpoints | |
EXPO_STAGING: 'true' # Configure Expo tooling to use staging endpoints | |
steps: | |
- name: π Setup repository | |
uses: actions/checkout@v3 | |
- name: π Setup runtime | |
uses: ./.github/actions/setup-runtime | |
- name: π Deploy web-player | |
if: ${{ contains('all web', github.event.inputs.platform) }} | |
run: yarn deploy:web:staging | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.SNACK_RUNTIME_AWS_STAGING_KEY }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.SNACK_RUNTIME_AWS_STAGING_SECRET }} | |
- name: π± Deploy native runtime | |
if: ${{ contains('all native', github.event.inputs.platform) }} | |
run: yarn deploy:staging | |
env: | |
EXPO_TOKEN: ${{ secrets.SNACK_RUNTIME_EXPO_STAGING }} | |
NODE_OPTIONS: --max-old-space-size=4096 | |
- name: π¬ Notify Slack | |
uses: 8398a7/action-slack@v3 | |
if: ${{ always() }} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_SNACK }} | |
with: | |
channel: '#snack' | |
status: ${{ job.status }} | |
author_name: Deploy Runtime to Staging | |
fields: message,commit,author,job,took | |
text: "platform: ${{ github.event.inputs.platform }}" | |
deploy-production: | |
if: ${{ github.event.inputs.deploy == 'production' && github.ref == 'refs/heads/main' }} | |
needs: review | |
runs-on: ubuntu-latest | |
environment: | |
name: runtime-production | |
url: https://expo.dev/@exponent/snack | |
env: | |
EXPO_PROJECT_ID: 933fd9c0-1666-11e7-afca-d980795c5824 # Configure the EAS Update project | |
EXPO_PUBLIC_SNACK_ENV: production # Configure Snack to use production endpoints | |
steps: | |
- name: π Setup repository | |
uses: actions/checkout@v3 | |
- name: π Setup runtime | |
uses: ./.github/actions/setup-runtime | |
- name: π Deploy web-player | |
if: ${{ contains('all web', github.event.inputs.platform) }} | |
run: yarn deploy:web:prod | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.SNACK_RUNTIME_AWS_PRODUCTION_KEY }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.SNACK_RUNTIME_AWS_PRODUCTION_SECRET }} | |
- name: π± Deploy native runtime | |
if: ${{ contains('all native', github.event.inputs.platform) }} | |
run: yarn deploy:prod | |
env: | |
EXPO_TOKEN: ${{ secrets.SNACK_RUNTIME_EXPO_PRODUCTION }} | |
NODE_OPTIONS: --max-old-space-size=4096 | |
- name: π¬ Notify Slack | |
uses: 8398a7/action-slack@v3 | |
if: ${{ always() }} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_SNACK }} | |
with: | |
channel: '#snack' | |
status: ${{ job.status }} | |
author_name: Deploy Runtime to Production | |
fields: message,commit,author,job,took | |
text: "platform: ${{ github.event.inputs.platform }}" |