chore: prepare for v3 release #557
Workflow file for this run
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: pr-${{ github.event.pull_request.number }} | |
| cancel-in-progress: true | |
| jobs: | |
| check-changeset: | |
| name: Check changeset | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Check changeset | |
| if: github.ref != 'refs/heads/main' | |
| run: yarn changeset status --since=origin/${{ github.base_ref }} | |
| build-lint: | |
| name: Build & static code analysis | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Build packages | |
| run: yarn build | |
| - name: Lint files | |
| run: yarn lint | |
| - name: Typecheck files | |
| run: yarn typecheck | |
| - name: Test Brownfield CLI (version) | |
| run: | | |
| yarn workspace @callstack/react-native-brownfield brownfield --version | |
| android-tester-integrated: | |
| name: Android road test (TesterIntegrated) | |
| runs-on: ubuntu-latest | |
| needs: build-lint | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Prepare Android environment | |
| uses: ./.github/actions/prepare-android | |
| - name: Restore Gradle cache | |
| uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-android-tester-integrated-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-android-tester-integrated-gradle- | |
| # == TesterIntegrated == | |
| - name: Generate Brownie stores | |
| run: yarn run brownfield:codegen | |
| - name: Build integrated Android tester app | |
| run: yarn run build:tester-integrated:android | |
| android-androidapp-expo: | |
| name: Android road test (RNApp & AndroidApp - Expo) | |
| runs-on: ubuntu-latest | |
| needs: build-lint | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Run RNApp -> AndroidApp road test (Expo) | |
| uses: ./.github/actions/androidapp-road-test | |
| with: | |
| flavor: expo | |
| rn-project-path: apps/ExpoApp | |
| rn-project-maven-path: com/callstack/rnbrownfield/demo/expoapp/brownfieldlib | |
| android-androidapp-vanilla: | |
| name: Android road test (RNApp & AndroidApp - Vanilla) | |
| runs-on: ubuntu-latest | |
| needs: build-lint | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Run RNApp -> AndroidApp road test (Vanilla) | |
| uses: ./.github/actions/androidapp-road-test | |
| with: | |
| flavor: vanilla | |
| rn-project-path: apps/RNApp | |
| rn-project-maven-path: com/rnapp/brownfieldlib | |
| ios-tester-integrated: | |
| name: iOS road test (TesterIntegrated) | |
| runs-on: macos-26 | |
| needs: build-lint | |
| env: | |
| USE_CCACHE: 1 | |
| CCACHE_DIR: ${{ github.workspace }}/.ios_ccache | |
| CCACHE_BASEDIR: ${{ github.workspace }} | |
| CCACHE_COMPRESS: '1' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Prepare iOS environment | |
| uses: ./.github/actions/prepare-ios | |
| - name: Install ccache | |
| run: brew install ccache | |
| - name: Enable ccache | |
| run: echo "$(brew --prefix)/opt/ccache/libexec" >> $GITHUB_PATH | |
| - name: Restore TesterIntegrated ccache | |
| uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 | |
| with: | |
| path: | | |
| .ios_ccache | |
| key: ${{ runner.os }}-tester-integrated-ios-ccache-${{ hashFiles('apps/TesterIntegrated/swift/Podfile.lock', 'apps/TesterIntegrated/swift/SwiftExample.xcodeproj/project.pbxproj') }} | |
| restore-keys: | | |
| ${{ runner.os }}-tester-integrated-ios-ccache- | |
| # == TesterIntegrated == | |
| - name: Restore Pods cache (TesterIntegrated) | |
| uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5 | |
| with: | |
| path: | | |
| apps/TesterIntegrated/swift/Pods | |
| key: ${{ runner.os }}-tester-integrated-ios-pods-${{ hashFiles('apps/TesterIntegrated/swift/Podfile.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-tester-integrated-ios-pods- | |
| - name: Install pods (TesterIntegrated) | |
| run: | | |
| cd apps/TesterIntegrated/swift | |
| pod install | |
| - name: Restore DerivedData cache (TesterIntegrated) | |
| uses: actions/cache@v5 | |
| with: | |
| path: apps/TesterIntegrated/swift/build | |
| key: ${{ runner.os }}-ios-tester-integrated-derived-data-${{ hashFiles('apps/TesterIntegrated/swift/Podfile.lock', 'apps/TesterIntegrated/swift/SwiftExample.xcodeproj/project.pbxproj') }} | |
| restore-keys: | | |
| ${{ runner.os }}-ios-tester-integrated-derived-data- | |
| - name: Build integrated iOS tester app | |
| run: | | |
| yarn run build:tester-integrated:ios | |
| # ============== | |
| - name: Log ccache stats | |
| uses: ./.github/actions/ccache-summary | |
| with: | |
| name: TesterIntegrated | |
| ios-appleapp-vanilla: | |
| name: iOS road test (RNApp & AppleApp - Vanilla) | |
| runs-on: macos-26 | |
| needs: build-lint | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Run RNApp -> AppleApp road test (Vanilla) | |
| uses: ./.github/actions/appleapp-road-test | |
| with: | |
| variant: vanilla | |
| rn-project-path: apps/RNApp | |
| ios-appleapp-expo: | |
| name: iOS road test (RNApp & AppleApp - Expo) | |
| runs-on: macos-26 | |
| needs: build-lint | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 | |
| - name: Run ExpoApp -> AppleApp road test (Expo) | |
| uses: ./.github/actions/appleapp-road-test | |
| with: | |
| variant: expo | |
| rn-project-path: apps/ExpoApp |