Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
156 changes: 156 additions & 0 deletions .github/workflows/brownfield.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
name: Brownfield E2E Tests (CLI + Plugin)

on:
workflow_dispatch: {}
push:
branches: [main, 'sdk-*']
paths:
- .github/workflows/brownfield.yml
- packages/expo-brownfield/**
- yarn.lock
- '!**.md'
pull_request:
paths:
- .github/workflows/brownfield.yml
- packages/expo-brownfield/**
- yarn.lock

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true

jobs:
jest-ubuntu-cli:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3]
steps:
- name: 🏗️ Setup Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: 🏗️ Setup Bun
uses: oven-sh/setup-bun@v2
with:
# Version `1.x` fails due to https://github.com/oven-sh/setup-bun/issues/37
# TODO(cedric): swap `latest` back once the issue is resolved
bun-version: latest

- name: 👀 Checkout
uses: actions/checkout@v4
with:
fetch-depth: 100
- name: ⬇️ Fetch commits from base branch
run: git fetch origin ${{ github.event.before || github.base_ref || 'main' }}:${{ github.event.before || github.base_ref || 'main' }} --depth 100
if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'

- name: 🔎 Find Yarn Cache
id: yarn-cache
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
shell: bash
- name: ♻️ Restore Yarn Cache
uses: actions/cache@v4
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-

- name: 🧶 Install node modules in root dir
run: yarn install --prefer-offline --frozen-lockfile
env:
YARN_IGNORE_SCRIPTS: 'true'

- name: 👷 Build Expo CLI
run: yarn workspace @expo/cli prepare

- name: 👷 Build Create Expo CLI
run: yarn workspace create-expo build:prod

- name: 👷 Build Expo Brownfield
run: yarn workspace expo-brownfield prepare

- name: 📦 Generate expo-brownfield tarball
run: npm pack --json
working-directory: packages/expo-brownfield

- name: 📦 Generate expo-template-default tarball
run: npm pack --json
working-directory: templates/expo-template-default

- name: 🧪 E2E Test Brownfield CLI
working-directory: packages/expo-brownfield
run: yarn test:e2e-cli --testPathIgnorePatterns e2e-cli/__tests__/build-ios.test.ts --max-workers 1 --shard ${{ matrix.shard }}/${{ strategy.job-total }}

jest-macos-cli:
runs-on: macos-15
steps:
- name: 🏗️ Setup Node
uses: actions/setup-node@v4
with:
node-version: 20

- name: 🏗️ Setup Bun
uses: oven-sh/setup-bun@v2
with:
# Version `1.x` fails due to https://github.com/oven-sh/setup-bun/issues/37
# TODO(cedric): swap `latest` back once the issue is resolved
bun-version: latest

- name: 💎 Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: 3.2.2

- name: 💎 Install cocoapods
run: sudo gem install cocoapods

- name: 👀 Checkout
uses: actions/checkout@v4
with:
fetch-depth: 100
- name: ⬇️ Fetch commits from base branch
run: git fetch origin ${{ github.event.before || github.base_ref || 'main' }}:${{ github.event.before || github.base_ref || 'main' }} --depth 100
if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'

- name: 🔎 Find Yarn Cache
id: yarn-cache
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
shell: bash
- name: ♻️ Restore Yarn Cache
uses: actions/cache@v4
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-

- name: 🧶 Install node modules in root dir
run: yarn install --prefer-offline --frozen-lockfile
env:
YARN_IGNORE_SCRIPTS: 'true'

- name: 👷 Build Expo CLI
run: yarn workspace @expo/cli prepare

- name: 👷 Build Create Expo CLI
run: yarn workspace create-expo build:prod

- name: 👷 Build Expo Brownfield
run: yarn workspace expo-brownfield prepare

- name: 📦 Generate expo-brownfield tarball
run: npm pack --json
working-directory: packages/expo-brownfield

- name: 📦 Generate expo-template-default tarball
run: npm pack --json
working-directory: templates/expo-template-default

- name: 🧪 E2E Test Brownfield CLI
working-directory: packages/expo-brownfield
run: yarn test:e2e-cli e2e-cli/__tests__/build-ios.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9007,12 +9007,7 @@ in order to enable/disable the permission.
class="text-default text-[13px] font-normal leading-[130%] tracking-[-0.003rem] inline-block rounded-md border border-secondary bg-subtle px-1 py-0.5 [&>span]:!text-inherit"
data-text="true"
>
<a
class="cursor-pointer decoration-0 hocus:opacity-80 font-normal text-link visited:text-link hocus:underline [&_code]:hocus:underline [&_b]:text-link [&_code]:text-link [&_em]:text-link [&_i]:text-link [&_span]:text-link [&_strong]:text-link"
href="#permissionstatus"
>
PermissionStatus
</a>
PermissionStatus
</code>
</td>
<td
Expand Down
Loading
Loading