Skip to content

Commit a387b3c

Browse files
committed
Merge branch 'main' into feat/cli
2 parents ad826da + 3d256f7 commit a387b3c

File tree

8 files changed

+636
-1617
lines changed

8 files changed

+636
-1617
lines changed

.changeset/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Changesets
2+
3+
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4+
with multi-package repos, or single-package repos to help you version and publish your code. You can
5+
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6+
7+
We have a quick list of common questions to get you started engaging with this project in
8+
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

.changeset/config.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@3.0.4/schema.json",
3+
"changelog": [
4+
"@changesets/changelog-github",
5+
{ "repo": "callstack/react-native-brownfield" }
6+
],
7+
"commit": false,
8+
"fixed": [],
9+
"linked": [],
10+
"access": "public",
11+
"baseBranch": "main",
12+
"ignore": [
13+
"react-native-brownfield-docs",
14+
"@callstack/brownfield-example-android-app",
15+
"@callstack/brownfield-example-ios-app",
16+
"@callstack/brownfield-example-rn-app",
17+
"@callstack/react-native-brownfield-tester-integrated",
18+
"@callstack/brownfield-gradle-plugin-react"
19+
],
20+
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
21+
"onlyUpdatePeerDependentsWhenOutOfRange": true,
22+
"updateInternalDependents": "always"
23+
},
24+
"snapshot": {
25+
"useCalculatedVersion": true
26+
}
27+
}

.github/workflows/ci.yml

Lines changed: 58 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,13 @@ jobs:
3737
android:
3838
name: 'Android: integrated tester & integration workflow with CLI'
3939
runs-on: ubuntu-latest
40-
needs: build-lint
40+
env:
41+
TURBO_CACHE_DIR: .turbo/android
4142

4243
steps:
4344
- name: Checkout
4445
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
4546

46-
- name: Validate Gradle Wrapper
47-
uses: gradle/actions/wrapper-validation@6f229686ee4375cc4a86b2514c89bac4930e82c4 # v5
48-
49-
- name: Setup Java
50-
uses: actions/setup-java@5d7b2146334bacf88728daaa70414a99f5164e0f # v5
51-
with:
52-
distribution: 'zulu'
53-
java-version: '17'
54-
5547
- name: Setup Node.js
5648
uses: actions/setup-node@65d868f8d4d85d7d4abb7de0875cde3fcc8798f5 # v6
5749
with:
@@ -64,7 +56,35 @@ jobs:
6456
- name: Build packages
6557
run: yarn build
6658

59+
- name: Cache turborepo for Android
60+
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
61+
with:
62+
path: ${{ env.TURBO_CACHE_DIR }}
63+
key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }}
64+
restore-keys: |
65+
${{ runner.os }}-turborepo-android-
66+
67+
- name: Check turborepo cache for Android
68+
run: |
69+
TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:tester-integrated:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:tester-integrated:android').cache.status")
70+
71+
if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
72+
echo "turbo_cache_hit=1" >> $GITHUB_ENV
73+
fi
74+
75+
- name: Validate Gradle Wrapper
76+
if: env.turbo_cache_hit != 1
77+
uses: gradle/actions/wrapper-validation@6f229686ee4375cc4a86b2514c89bac4930e82c4 # v5
78+
79+
- name: Setup Java
80+
if: env.turbo_cache_hit != 1
81+
uses: actions/setup-java@5d7b2146334bacf88728daaa70414a99f5164e0f # v5
82+
with:
83+
distribution: 'zulu'
84+
java-version: '17'
85+
6786
- name: Restore android build cache
87+
if: env.turbo_cache_hit != 1
6888
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
6989
with:
7090
path: |
@@ -75,7 +95,8 @@ jobs:
7595
restore-keys: |
7696
${{ runner.os }}-tester-android-build-
7797
78-
- name: Resture Gradle cache
98+
- name: Restore Gradle cache
99+
if: env.turbo_cache_hit != 1
79100
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
80101
with:
81102
path: |
@@ -91,7 +112,10 @@ jobs:
91112
run: yarn run brownfield:codegen
92113

93114
- name: Build integrated Android tester app
94-
run: yarn run build:tester-integrated:android
115+
env:
116+
JAVA_OPTS: '-XX:MaxHeapSize=6g'
117+
run: |
118+
yarn turbo run build:tester-integrated:android --cache-dir="${{ env.TURBO_CACHE_DIR }}"
95119
96120
# == RNApp ==
97121

@@ -119,8 +143,9 @@ jobs:
119143
120144
ios:
121145
name: Integrated tester iOS App
122-
runs-on: macos-latest
123-
needs: build-lint
146+
runs-on: macos-15
147+
env:
148+
TURBO_CACHE_DIR: .turbo/ios
124149

125150
steps:
126151
- name: Checkout
@@ -149,7 +174,24 @@ jobs:
149174
- name: Build packages
150175
run: yarn build
151176

177+
- name: Cache turborepo for iOS
178+
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
179+
with:
180+
path: ${{ env.TURBO_CACHE_DIR }}
181+
key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }}
182+
restore-keys: |
183+
${{ runner.os }}-turborepo-ios-
184+
185+
- name: Check turborepo cache for iOS
186+
run: |
187+
TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:tester-integrated:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:tester-integrated:ios').cache.status")
188+
189+
if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
190+
echo "turbo_cache_hit=1" >> $GITHUB_ENV
191+
fi
192+
152193
- name: Restore Pods cache
194+
if: env.turbo_cache_hit != 1
153195
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
154196
with:
155197
path: |
@@ -159,6 +201,7 @@ jobs:
159201
${{ runner.os }}-tester-ios-pods-
160202
161203
- name: Install pods
204+
if: env.turbo_cache_hit != 1
162205
run: |
163206
cd apps/TesterIntegrated/swift
164207
pod install
@@ -167,7 +210,7 @@ jobs:
167210

168211
- name: Build integrated iOS tester app
169212
run: |
170-
yarn run build:tester-integrated:ios
213+
yarn turbo run build:tester-integrated:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}"
171214
172215
# == RNApp ==
173216

.github/workflows/release.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
concurrency: ${{ github.workflow }}-${{ github.ref }}
9+
10+
jobs:
11+
release:
12+
permissions:
13+
contents: write
14+
id-token: write
15+
pull-requests: write
16+
name: Release
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout Repo
20+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
21+
22+
- name: Setup Node.js 20
23+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
24+
with:
25+
node-version: 20
26+
27+
- name: Install Dependencies
28+
run: yarn
29+
30+
- name: Create Release Pull Request or Publish to NPM
31+
uses: changesets/action@e9cc34b540dd3ad1b030c57fd97269e8f6ad905a # v1.4.9
32+
with:
33+
version: yarn version-packages
34+
publish: yarn publish-packages
35+
commit: 'chore(release): version packages'
36+
title: 'chore(release): version packages'
37+
env:
38+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
39+
NPM_CONFIG_PROVENANCE: true
40+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
"build": "turbo run build",
1414
"dev": "yarn workspaces foreach -Api run dev",
1515
"release": "release-it --config packages/react-native-brownfield/.release-it.json",
16+
"version-packages": "changeset version && yarn install --no-immutable",
17+
"publish-packages": "turbo run build lint && changeset version && changeset publish",
1618
"brownfield:plugin:publish:local": "bash ./gradle-plugins/publish-to-maven-local.sh",
1719
"build:brownfield": "turbo run build:brownfield",
1820
"build:docs": "turbo run build:docs",
@@ -29,21 +31,21 @@
2931
},
3032
"packageManager": "yarn@4.12.0",
3133
"dependencies": {
34+
"@changesets/changelog-github": "^0.5.2",
35+
"@changesets/cli": "^2.29.8",
3236
"quicktype-core": "^23.2.6",
3337
"quicktype-typescript-input": "^23.2.6"
3438
},
3539
"devDependencies": {
3640
"@commitlint/cli": "^20.1.0",
3741
"@commitlint/config-conventional": "^20.0.0",
3842
"@react-native/eslint-config": "0.82.1",
39-
"@release-it/conventional-changelog": "^10.0.1",
4043
"babel-plugin-module-resolver": "5.0.2",
4144
"eslint": "^8.57.1",
4245
"eslint-config-prettier": "^10.1.8",
4346
"eslint-plugin-prettier": "^5.1.3",
4447
"lefthook": "^2.0.3",
4548
"prettier": "^3.5.3",
46-
"release-it": "^19.0.6",
4749
"turbo": "^2.7.3",
4850
"typescript": "5.8.3"
4951
},

packages/brownie/package.json

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"name": "@callstack/brownie",
3-
"version": "0.1.0",
3+
"version": "0.0.1",
44
"license": "MIT",
5-
"author": "Michal Chudziak <mike.chudziak@callstack.com>",
5+
"author": "Oskar Kwaśniewski <oskarkwasniewski@icloud.com>",
66
"contributors": [
7-
"Piotr Drapich <piotr.drapich@callstack.com>",
8-
"Oskar Kwaśniewski <oskar.kwasniewski@callstack.com>"
7+
"Artur Morys-Magiera <artus9033@gmail.com>",
8+
"Oskar Kwasniewski <oskarkwasniewski@icloud.com>"
99
],
1010
"homepage": "https://github.com/callstack/react-native-brownfield",
1111
"description": "Shared state management between React Native and Native apps",
@@ -53,7 +53,8 @@
5353
"!**/.*"
5454
],
5555
"publishConfig": {
56-
"access": "public"
56+
"access": "public",
57+
"tag": "alpha"
5758
},
5859
"peerDependencies": {
5960
"react": "*",

packages/react-native-brownfield/.release-it.json

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)