Skip to content

Commit 526ac7d

Browse files
committed
chore(ci): remove all caching, simplify agent workflows and skill instructions
1 parent a28024a commit 526ac7d

4 files changed

Lines changed: 16 additions & 104 deletions

File tree

.claude/skills/fix-github-issue/SKILL.md

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,46 +35,35 @@ cd fixture/react-native && yarn start
3535

3636
Verify: `curl -s http://localhost:8081/status`
3737

38-
## Building & Running the Fixture App
38+
## Building & Installing the Fixture App
3939

40-
On CI, the debug app is pre-installed on the simulator. For most changes you just need:
40+
**Only build the native app if it's not already installed.** Check first:
4141

4242
```bash
43-
yarn build # compile TS to dist/
43+
xcrun simctl get_app_container booted org.reactjs.native.example.FlatListPro 2>/dev/null
4444
```
4545

46-
Then relaunch the app so Metro serves the new JS bundle.
47-
48-
**Only rebuild native if you changed native files** (`ios/`, `Podfile`, `android/`, `build.gradle`):
46+
- If it **succeeds**: app is installed. Just `yarn build` (TS) and relaunch.
47+
- If it **fails**: app is not installed. Build and install:
4948

5049
```bash
5150
cd fixture/react-native && yarn react-native run-ios
5251
```
5352

54-
Locally, check if the app is already installed before rebuilding:
55-
56-
```bash
57-
xcrun simctl get_app_container booted org.reactjs.native.example.FlatListPro 2>/dev/null
58-
```
59-
6053
## E2E Tests
6154

6255
**Run E2E tests before raising a PR if any of these changed:**
6356
- E2E test files (`*.e2e.*`)
6457
- Example/sample screens in `fixture/react-native/src/`
6558
- New example screens added
6659

67-
On CI, use these scripts directly:
68-
6960
```bash
70-
cd fixture/react-native
71-
yarn e2e:build:ios # builds release .app (only if needed)
72-
yarn e2e:test:ios # runs Detox tests
61+
yarn e2e:ios
7362
```
7463

75-
E2E test files live in `fixture/react-native/e2e/tests/`.
64+
This runs `detox build -c ios.sim.release` followed by `detox test -c ios.sim.release`. E2E test files live in `fixture/react-native/e2e/tests/`.
7665

77-
**Warning:** `e2e:build:ios` produces a **release** build that replaces the debug app on the simulator. After running E2E, rebuild debug to continue interactive testing:
66+
**Warning:** E2E builds a **release** app that replaces the debug app on the simulator. After running E2E, rebuild debug to continue interactive testing:
7867

7968
```bash
8069
cd fixture/react-native && yarn react-native run-ios

.claude/skills/review-and-test/SKILL.md

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,9 @@ git diff main...HEAD --name-only | grep -E '\.e2e\.|fixture/react-native/src/'
6767
yarn e2e:ios
6868
```
6969

70-
E2E tests use Detox. On CI use the scripts directly:
70+
E2E tests use Detox. The `yarn e2e:ios` script handles both build and test.
7171

72-
```bash
73-
cd fixture/react-native
74-
yarn e2e:build:ios # builds release .app
75-
yarn e2e:test:ios # runs tests
76-
```
77-
78-
**Warning:** E2E builds a **release** app that replaces the debug build on the simulator. After running E2E, rebuild debug to continue interactive testing:
72+
**Warning:** E2E builds a **release** app that replaces the debug app on the simulator. After running E2E, rebuild debug to continue interactive testing:
7973

8074
```bash
8175
cd fixture/react-native && yarn react-native run-ios
@@ -93,17 +87,16 @@ If tests fail, investigate before proceeding to device testing.
9387
yarn build # runs tsc -b
9488
```
9589

96-
### Native build
97-
98-
On CI, the debug app is pre-installed — skip native build unless you changed native files (`ios/`, `Podfile`, `android/`, `build.gradle`).
90+
### Install the fixture app only if needed
9991

100-
Locally, check if the app is installed before rebuilding:
92+
Before building the native app, check if it's already installed on the simulator. **Only build if it's not installed:**
10193

10294
```bash
10395
xcrun simctl get_app_container booted org.reactjs.native.example.FlatListPro 2>/dev/null
10496
```
10597

106-
Only rebuild native if needed:
98+
- If the command **succeeds** (returns a path): the app is installed. Skip `run-ios` — just relaunch it.
99+
- If the command **fails**: the app is not installed. Build and install it:
107100

108101
```bash
109102
cd fixture/react-native && yarn react-native run-ios

.github/workflows/agent-bot.yml

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -57,43 +57,12 @@ jobs:
5757
node-version: "22.18.0"
5858
cache: "yarn"
5959

60-
- name: Ruby setup
61-
uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0
62-
with:
63-
bundler-cache: true
64-
65-
- name: Restore iOS debug build cache
66-
id: ios-debug-cache
67-
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
68-
with:
69-
path: fixture/react-native/ios/build-debug
70-
key: ios-debug-app-${{ hashFiles('fixture/react-native/ios/Podfile.lock', 'fixture/react-native/ios/FlatListPro.xcodeproj/project.pbxproj') }}
71-
7260
- name: Install dependencies
73-
run: |
74-
yarn install --frozen-lockfile
75-
yarn build
76-
cd fixture/react-native
77-
yarn
78-
cd ios
79-
bundle exec pod install
61+
run: yarn install --frozen-lockfile
8062

8163
- name: Install agent-device
8264
run: npm install -g agent-device
8365

84-
- name: Build debug app (native)
85-
if: steps.ios-debug-cache.outputs.cache-hit != 'true'
86-
run: |
87-
cd fixture/react-native/ios
88-
xcodebuild build -scheme FlatListPro -workspace FlatListPro.xcworkspace \
89-
-destination 'platform=iOS Simulator,name=iPhone 16' \
90-
-derivedDataPath build-debug -quiet
91-
92-
- name: Install debug app on simulator
93-
run: |
94-
APP_PATH=$(find fixture/react-native/ios/build-debug -name "FlatListPro.app" -path "*/Debug-iphonesimulator/*" | head -1)
95-
xcrun simctl install booted "$APP_PATH"
96-
9766
- name: Run agent
9867
uses: anthropics/claude-code-action@beta
9968
env:
@@ -108,9 +77,5 @@ jobs:
10877
custom_instructions: |
10978
You are running on CI (GitHub Actions).
11079
Environment: macOS runner with Xcode and iOS simulator. No Android emulator.
111-
The debug app is pre-installed on the simulator. Just run `yarn build` and relaunch to test JS changes.
112-
Only rebuild native (`yarn react-native run-ios`) if you change native files (ios/, Podfile, android/).
113-
If you run E2E tests (`yarn e2e:build:ios`), the release build replaces the debug app.
114-
To restore debug after E2E, run: `cd fixture/react-native/ios && xcrun simctl install booted build-debug/Build/Products/Debug-iphonesimulator/FlatListPro.app`
11580
Read and use skills from .claude/skills/ when relevant.
11681
CI notes: use default Metro port (8081).

.github/workflows/agent-fix.yml

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -52,43 +52,12 @@ jobs:
5252
node-version: "22.18.0"
5353
cache: "yarn"
5454

55-
- name: Ruby setup
56-
uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0
57-
with:
58-
bundler-cache: true
59-
60-
- name: Restore iOS debug build cache
61-
id: ios-debug-cache
62-
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
63-
with:
64-
path: fixture/react-native/ios/build-debug
65-
key: ios-debug-app-${{ hashFiles('fixture/react-native/ios/Podfile.lock', 'fixture/react-native/ios/FlatListPro.xcodeproj/project.pbxproj') }}
66-
6755
- name: Install dependencies
68-
run: |
69-
yarn install --frozen-lockfile
70-
yarn build
71-
cd fixture/react-native
72-
yarn
73-
cd ios
74-
bundle exec pod install
56+
run: yarn install --frozen-lockfile
7557

7658
- name: Install agent-device
7759
run: npm install -g agent-device
7860

79-
- name: Build debug app (native)
80-
if: steps.ios-debug-cache.outputs.cache-hit != 'true'
81-
run: |
82-
cd fixture/react-native/ios
83-
xcodebuild build -scheme FlatListPro -workspace FlatListPro.xcworkspace \
84-
-destination 'platform=iOS Simulator,name=iPhone 16' \
85-
-derivedDataPath build-debug -quiet
86-
87-
- name: Install debug app on simulator
88-
run: |
89-
APP_PATH=$(find fixture/react-native/ios/build-debug -name "FlatListPro.app" -path "*/Debug-iphonesimulator/*" | head -1)
90-
xcrun simctl install booted "$APP_PATH"
91-
9261
- name: Fix issue
9362
uses: anthropics/claude-code-action@beta
9463
env:
@@ -102,10 +71,6 @@ jobs:
10271
direct_prompt: |
10372
You are running on CI (GitHub Actions). There is no human to confirm with — act autonomously.
10473
Environment: macOS runner with Xcode and iOS simulator. No Android emulator.
105-
The debug app is pre-installed on the simulator. Just run `yarn build` and relaunch to test JS changes.
106-
Only rebuild native (`yarn react-native run-ios`) if you change native files (ios/, Podfile, android/).
107-
If you run E2E tests (`yarn e2e:build:ios`), the release build replaces the debug app.
108-
To restore debug after E2E, run: `cd fixture/react-native/ios && xcrun simctl install booted build-debug/Build/Products/Debug-iphonesimulator/FlatListPro.app`
10974
Fix this GitHub issue. Read and follow .claude/skills/fix-github-issue/SKILL.md for the full workflow.
11075
After fixing, read and follow .claude/skills/raise-pr/SKILL.md to raise a PR.
11176
CI notes: use default Metro port (8081).

0 commit comments

Comments
 (0)