refactor: upgrade to Expo SDK 49 #379
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.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 | |
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.AWS_RUNTIME_KEY_STAGING }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_RUNTIME_SECRET_STAGING }} | |
- name: π± Deploy native runtime | |
if: ${{ contains('all native', github.event.inputs.platform) }} | |
run: yarn deploy:staging | |
env: | |
EXPO_TOKEN: ${{ secrets.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 | |
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.AWS_RUNTIME_KEY_PRODUCTION }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_RUNTIME_SECRET_PRODUCTION }} | |
- name: π± Deploy native runtime | |
if: ${{ contains('all native', github.event.inputs.platform) }} | |
run: yarn deploy:prod | |
env: | |
EXPO_TOKEN: ${{ secrets.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 }}" |