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
1 change: 0 additions & 1 deletion .github/workflows/android-instrumentation-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ jobs:
- name: ➕ Add `bin` to GITHUB_PATH
run: echo "$(pwd)/bin" >> $GITHUB_PATH
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 📱 Run instrumented unit tests
timeout-minutes: 80
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/create-expo-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ jobs:
with:
yarn-workspace: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🛠 Build create-expo
run: yarn prepare
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/development-client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ jobs:
ndk: 'true'
ndk-version: ${{ matrix.ndk-version }}
- name: 🧶 Yarn install
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: Init new expo app
working-directory: ../
Expand Down Expand Up @@ -92,7 +91,6 @@ jobs:
with:
yarn-workspace: 'true'
- name: 🧶 Yarn install
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: Init new expo app
working-directory: ../
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ jobs:
yarn-workspace: 'true'
docs-api-data: 'true'
- name: 🧶 Install workspace deps on cache miss
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --immutable
- name: 🧶 Install tools deps on cache miss
if: steps.expo-caches.outputs.yarn-tools-hit != 'true'
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/fingerprint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ jobs:
with:
yarn-workspace: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
# NOTE(cedric): yarn v1 on Windows has networking issues, we need to set `--network-timeout` to a higher value
run: yarn install --frozen-lockfile --network-timeout 1000000
- name: E2E Test @expo/fingerprint
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/ios-static-frameworks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ jobs:
yarn-workspace: 'true'
yarn-tools: 'true'
- name: 🧶 Yarn install
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🍏 Build iOS Project
working-directory: ./apps/bare-expo
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/ios-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ jobs:
yarn-tools: 'true'
native-tests-pods: 'true'
- name: 🧶 Yarn install
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🥥 Install CocoaPods in `apps/native-tests/ios`
if: steps.expo-caches.outputs.bare-expo-pods-hit != 'true'
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/issue-closed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ jobs:
with:
yarn-tools: 'true'
- name: 🔎 Close Linear issue
# accepted issues should have a corresponding Linear issue (from issue-triage.yml)
# if not, we don't want to fail the workflow
continue-on-error: true
run: expotools close-linear-issue-from-github --issue "${{ github.event.issue.number }}"
env:
GITHUB_TOKEN: ${{ secrets.EXPO_BOT_GITHUB_TOKEN }}
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/native-component-list.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ jobs:
yarn-workspace: 'true'
yarn-tools: 'true'
- name: 🧶 Install workspace node modules
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🛠 Compile NCL sources
run: yarn tsc
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/pr-labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ jobs:
with:
yarn-workspace: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: Get the base commit
id: base-commit
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/publish-canaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ jobs:
yarn-workspace: 'true'
yarn-tools: 'true'
- name: 🧶 Install workspace node modules
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🧶 Install modules in tools dir
if: steps.expo-caches.outputs.yarn-tools-hit != 'true'
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/router.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ jobs:
yarn-workspace: 'true'
yarn-tools: 'true'
- name: 🧶 Install workspace node modules
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🧪 Run types tests
working-directory: packages/expo-router
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,17 +59,14 @@ jobs:
yarn-workspace: 'true'
yarn-tools: 'true'
- name: 🧶 Install workspace node modules
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🧐 Check all packages
if:
github.event_name == 'schedule' ||
if: github.event_name == 'schedule' ||
github.event.inputs.checkAll == 'check-all' ||
steps.filter.outputs.module-scripts == 'true'
run: node bin/expotools check-packages --all
- name: 🧐 Check changed packages
if:
github.event_name != 'schedule' &&
if: github.event_name != 'schedule' &&
github.event.inputs.checkAll != 'check-all' &&
steps.filter.outputs.module-scripts != 'true'
env:
Expand Down Expand Up @@ -104,7 +101,6 @@ jobs:
yarn-workspace: 'true'
yarn-tools: 'true'
- name: 🧶 Install workspace node modules
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🧐 Check all packages
run: node bin/expotools check-packages --all
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/test-suite-brownfield-isolated.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,6 @@ jobs:
yarn-tools: 'true'
react-native-gradle-downloads: 'true'
- name: 🧶 Install workspace node modules
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🤖 Build and publish Android artifacts (apps/brownfield-tester/expo-app)
run: |
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/test-suite-brownfield.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ jobs:
yarn-workspace: 'true'
yarn-tools: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🍏 Build iOS Project
working-directory: ./apps/brownfield-tester
Expand Down Expand Up @@ -127,7 +126,6 @@ jobs:
yarn-tools: 'true'
react-native-gradle-downloads: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🤖 Build Android project
run: |
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/test-suite-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ jobs:
with:
yarn-workspace: 'true'
- name: 🧶 Install workspace node modules
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🚨 Lint test-suite files
run: yarn lint --max-warnings 0
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/test-suite-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ jobs:
yarn-tools: 'true'
bare-expo-macos-pods: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🕵️ Debug CocoaPods lockfiles
run: git diff Podfile.lock Pods/Manifest.lock
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-suite-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ jobs:
with:
yarn-workspace: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🍏 Run iOS tests
run: ./scripts/start-ios-e2e-test.ts --test
Expand Down Expand Up @@ -246,6 +245,7 @@ jobs:
- name: 🔔 Notify on Slack
uses: ./.github/actions/slack-notify
if: failure() && (github.event_name == 'schedule' || github.event.ref == 'refs/heads/main')
with:
webhook: ${{ secrets.slack_webhook_android }}
channel: '#expo-android'
author_name: Test Suite Nightly (Android)
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { Host, Section, Text, VStack, HStack, Button, Form } from '@expo/ui/swift-ui';
import {
animation,
Animation,
contentTransition,
font,
contentShape,
shapes,
buttonStyle,
} from '@expo/ui/swift-ui/modifiers';
import { useRef, useState } from 'react';

export default function ContentTransitionScreen() {
const [count, setCount] = useState(0);
const countsDown = useRef(false);

return (
<Host style={{ flex: 1 }}>
<Form>
<Section
title="Numeric Text (Count Up/Down)"
modifiers={[contentShape(shapes.rectangle())]}>
<VStack spacing={16}>
<Text
modifiers={[
font({ size: 48, weight: 'bold', design: 'rounded' }),
contentTransition('numericText', { countsDown: countsDown.current }),
animation(Animation.default, count),
]}>
{count.toLocaleString()}
</Text>
<HStack spacing={16}>
<Button
label="Increment"
modifiers={[buttonStyle('bordered')]}
onPress={() => {
countsDown.current = false;
setCount((c) => c + 1);
}}
/>
<Button
modifiers={[buttonStyle('bordered')]}
label="Decrement"
onPress={() => {
countsDown.current = true;
setCount((c) => c - 1);
}}
/>
</HStack>
</VStack>
</Section>
</Form>
</Host>
);
}
8 changes: 8 additions & 0 deletions apps/native-component-list/src/screens/UI/UIScreen.ios.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,14 @@ export const UIScreens = [
return optionalRequire(() => require('./AnimationModifierScreen'));
},
},
{
name: 'Content Transition',
route: 'ui/content-transition',
options: {},
getComponent() {
return optionalRequire(() => require('./ContentTransitionScreen'));
},
},
{
name: 'Glass Effect',
route: 'ui/glass-effect',
Expand Down
1 change: 1 addition & 0 deletions docs/constants/navigation.js
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,7 @@ export const eas = [
),
makeSection('AI', [makePage('eas/ai/mcp.mdx')]),
makeSection('EAS Workflows', [
makePage('eas/workflows/introduction.mdx'),
makePage('eas/workflows/get-started.mdx'),
makePage('eas/workflows/pre-packaged-jobs.mdx'),
makePage('eas/workflows/syntax.mdx'),
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/deploy/build-project.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ If you are a member of an organization and your build is on its behalf, you will

## Create builds automatically

You can automatically create builds on commits to specific branches with [EAS Workflows](/eas/workflows/get-started/). First, you'll need to [configure your project](/eas/workflows/get-started/#configure-your-project), add a file named **.eas/workflows/create-builds.yml** at the root of your project, then add the following workflow configuration:
You can automatically create builds on commits to specific branches with [EAS Workflows](/eas/workflows/introduction/). First, you'll need to [configure your project](/eas/workflows/get-started/), add a file named **.eas/workflows/create-builds.yml** at the root of your project, then add the following workflow configuration:

```yaml .eas/workflows/create-builds.yml
name: Create builds
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/deploy/send-over-the-air-updates.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ You can verify the update works by force closing the app and reopening it two ti

## Send updates automatically

You can automatically send updates with [EAS Workflows](/eas/workflows/get-started/). First, you'll need to [configure your project](/eas/workflows/get-started/#configure-your-project), add a file named **.eas/workflows/send-updates.yml** at the root of your project, then add the following workflow configuration:
You can automatically send updates with [EAS Workflows](/eas/workflows/introduction/). First, you'll need to [configure your project](/eas/workflows/get-started/), add a file named **.eas/workflows/send-updates.yml** at the root of your project, then add the following workflow configuration:

```yaml .eas/workflows/send-updates.yml
name: Send updates
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/deploy/submit-to-app-stores.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ The command will lead you step by step through the process of submitting the app

## Build and submit automatically

You can automatically create builds and submit them to the app stores with [EAS Workflows](/eas/workflows/get-started/). First, you'll need to [configure your project](/eas/workflows/get-started/#configure-your-project), add a file named **.eas/workflows/build-and-submit.yml** at the root of your project, then add the following workflow configuration:
You can automatically create builds and submit them to the app stores with [EAS Workflows](/eas/workflows/introduction/). First, you'll need to [configure your project](/eas/workflows/get-started/), add a file named **.eas/workflows/build-and-submit.yml** at the root of your project, then add the following workflow configuration:

```yaml .eas/workflows/build-and-submit.yml
name: Build and submit
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/deploy/web.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Once your deployment is complete, the EAS CLI will output a production URL to ac

## Deploy automatically

You can automatically deploy your app to the web with [EAS Workflows](/eas/workflows/get-started/). First, you'll need to [configure your project](/eas/workflows/get-started/#configure-your-project), add a file named **.eas/workflows/deploy-web.yml** at the root of your project, then add the following workflow configuration:
You can automatically deploy your app to the web with [EAS Workflows](/eas/workflows/introduction/). First, you'll need to [configure your project](/eas/workflows/get-started/), add a file named **.eas/workflows/deploy-web.yml** at the root of your project, then add the following workflow configuration:

```yaml .eas/workflows/deploy-web.yml
name: Deploy web
Expand Down
2 changes: 1 addition & 1 deletion docs/pages/eas/hosting/workflows.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ EAS Workflows is a great way to automate the React Native CI/CD pipeline for dep

## Set up workflows

To use [EAS Workflows](/eas/workflows/get-started/) to automatically deploy your project, follow the instructions in [Get started with EAS Workflows](/eas/workflows/get-started/). You can also add the [GitHub integration](/eas/workflows/get-started/#configure-your-project) to connect a GitHub repository to your workflows.
To use [EAS Workflows](/eas/workflows/get-started/) to automatically deploy your project, follow the instructions in [Get started with EAS Workflows](/eas/workflows/get-started/). You can also add the [GitHub integration](/eas/workflows/get-started/) to connect a GitHub repository to your workflows.

## Create a deployment workflow

Expand Down
2 changes: 1 addition & 1 deletion docs/pages/eas/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Read the full pitch at [expo.dev/eas](https://expo.dev/eas), or follow the links
<BoxLink
title="EAS Workflows"
description="Automate your development and release workflows with CI/CD jobs."
href="/eas/workflows/get-started/"
href="/eas/workflows/introduction/"
Icon={Dataflow03Icon}
/>

Expand Down
2 changes: 1 addition & 1 deletion docs/pages/eas/workflows/examples/e2e-tests.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ In this guide, you'll learn how to run end-to-end (E2E) tests on EAS Workflows u

If you haven't already, create a new project and sync it with EAS.

Follow the [Get started with EAS Workflows guide](/eas/workflows/get-started/#set-up-your-project) to create a new project and sync it with EAS. Then, [configure your project](/eas/workflows/get-started/#configure-your-project) and link your GitHub repository.
Follow the [Get started with EAS Workflows guide](/eas/workflows/get-started/) to create a new project and sync it with EAS. Then, [configure your project](/eas/workflows/get-started/) and link your GitHub repository.

</Step>

Expand Down
10 changes: 5 additions & 5 deletions docs/pages/eas/workflows/examples/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Common React Native CI/CD workflows for developing, reviewing, and
hideTOC: true
---

import { BookOpen02Icon } from '@expo/styleguide-icons/outline/BookOpen02Icon';
import { Dataflow03Icon } from '@expo/styleguide-icons/outline/Dataflow03Icon';

import { BoxLink } from '~/ui/components/BoxLink';

Expand All @@ -17,26 +17,26 @@ The following workflows are examples of how you can use EAS Workflows to automat
title="Create development builds"
description="Learn how to kick off development builds in parallel for each platform."
href="/eas/workflows/examples/create-development-builds"
Icon={BookOpen02Icon}
Icon={Dataflow03Icon}
/>

<BoxLink
title="Publish preview updates"
description="Learn how to publish preview updates for each commit on every branch."
href="/eas/workflows/examples/publish-preview-update"
Icon={BookOpen02Icon}
Icon={Dataflow03Icon}
/>

<BoxLink
title="Deploy to production"
description="Learn how to build and submit to the app stores or send an over-the-air update when merging to main."
href="/eas/workflows/examples/deploy-to-production"
Icon={BookOpen02Icon}
Icon={Dataflow03Icon}
/>

<BoxLink
title="Run E2E tests"
description="Learn how to run E2E tests."
href="/eas/workflows/examples/e2e-tests"
Icon={BookOpen02Icon}
Icon={Dataflow03Icon}
/>
Loading
Loading