From 82c31e48a7337acd1145efc33728e618bbb5fb33 Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Fri, 17 Jul 2026 17:14:06 +0100 Subject: [PATCH 1/4] ci: separate native builds into Android and iOS --- .../actions/prepare-example-app/action.yml | 22 ++++++++++ .github/workflows/basic-tests.yml | 42 +++++++++++++------ 2 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 .github/actions/prepare-example-app/action.yml diff --git a/.github/actions/prepare-example-app/action.yml b/.github/actions/prepare-example-app/action.yml new file mode 100644 index 0000000..6ee354d --- /dev/null +++ b/.github/actions/prepare-example-app/action.yml @@ -0,0 +1,22 @@ +name: 'Prepare Example app' +description: 'Does necessary pre-work for the example app to compile natively' + +runs: + using: 'composite' + steps: + - name: 'Build plugin' + working-directory: ./plugin + shell: bash + run: npm run build + - name: 'Install example app dependencies' + working-directory: ./example-app + shell: bash + run: npm i + - name: 'Build Web example app' + working-directory: ./example-app + shell: bash + run: npm run build + - name: 'Sync example app native platforms' + working-directory: ./example-app + shell: bash + run: npx cap sync diff --git a/.github/workflows/basic-tests.yml b/.github/workflows/basic-tests.yml index 094ef7a..abd5e52 100644 --- a/.github/workflows/basic-tests.yml +++ b/.github/workflows/basic-tests.yml @@ -18,7 +18,7 @@ jobs: needs: 'setup' uses: ./.github/workflows/reusable_build-packages.yml - verify-plugin: + verify-plugin-android: needs: ['setup', 'lint-test', 'build-packages'] runs-on: 'macos-latest' timeout-minutes: 30 @@ -26,30 +26,46 @@ jobs: - uses: actions/checkout@v5 - name: 'Setup Tools' uses: ./.github/actions/setup-tools - - name: 'Verify iOS + Android + Web' + - name: 'Verify Android' working-directory: ./plugin - run: npm run verify + run: npm run verify:android - build-example-app: - needs: ['verify-plugin'] + verify-plugin-ios: + needs: ['setup', 'lint-test', 'build-packages'] runs-on: 'macos-latest' timeout-minutes: 30 steps: - uses: actions/checkout@v5 - name: 'Setup Tools' uses: ./.github/actions/setup-tools - - name: 'Build plugin' + - name: 'Verify iOS' working-directory: ./plugin - run: npm run build - - name: 'Build Web example app' - working-directory: ./example-app - run: npm run build - - name: 'Sync example app native platforms' - working-directory: ./example-app - run: npx cap sync + run: npm run verify:ios + + build-example-app-android: + needs: ['verify-plugin-android'] + runs-on: 'macos-latest' + timeout-minutes: 30 + steps: + - uses: actions/checkout@v5 + - name: 'Setup Tools' + uses: ./.github/actions/setup-tools + - name: 'Prepare example app' + uses: ./.github/actions/prepare-example-app - name: 'Build Android example app' working-directory: ./example-app/android run: ./gradlew clean assembleDebug + + build-example-app-ios: + needs: ['verify-plugin-ios'] + runs-on: 'macos-latest' + timeout-minutes: 30 + steps: + - uses: actions/checkout@v5 + - name: 'Setup Tools' + uses: ./.github/actions/setup-tools + - name: 'Prepare example app' + uses: ./.github/actions/prepare-example-app - name: 'Build iOS example app' working-directory: ./example-app/ios/App run: xcodebuild clean build -workspace App.xcworkspace -scheme App CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO \ No newline at end of file From dc1a36fa5bce7b9d3c8e9c1a8a61a4547521b97a Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Fri, 17 Jul 2026 17:31:57 +0100 Subject: [PATCH 2/4] ci: correct for pnpm --- .github/actions/prepare-example-app/action.yml | 10 +++------- .github/workflows/basic-tests.yml | 4 ++-- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/actions/prepare-example-app/action.yml b/.github/actions/prepare-example-app/action.yml index 6ee354d..304f1d9 100644 --- a/.github/actions/prepare-example-app/action.yml +++ b/.github/actions/prepare-example-app/action.yml @@ -7,16 +7,12 @@ runs: - name: 'Build plugin' working-directory: ./plugin shell: bash - run: npm run build - - name: 'Install example app dependencies' - working-directory: ./example-app - shell: bash - run: npm i + run: pnpm run build - name: 'Build Web example app' working-directory: ./example-app shell: bash - run: npm run build + run: pnpm run build - name: 'Sync example app native platforms' working-directory: ./example-app shell: bash - run: npx cap sync + run: pnpm exec cap sync diff --git a/.github/workflows/basic-tests.yml b/.github/workflows/basic-tests.yml index abd5e52..305fe22 100644 --- a/.github/workflows/basic-tests.yml +++ b/.github/workflows/basic-tests.yml @@ -28,7 +28,7 @@ jobs: uses: ./.github/actions/setup-tools - name: 'Verify Android' working-directory: ./plugin - run: npm run verify:android + run: pnpm run verify:android verify-plugin-ios: needs: ['setup', 'lint-test', 'build-packages'] @@ -40,7 +40,7 @@ jobs: uses: ./.github/actions/setup-tools - name: 'Verify iOS' working-directory: ./plugin - run: npm run verify:ios + run: pnpm run verify:ios build-example-app-android: needs: ['verify-plugin-android'] From acf2f05f60a6656a499134785681a2433db47ebd Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Fri, 17 Jul 2026 17:44:14 +0100 Subject: [PATCH 3/4] ci: stick with macos-15 for now --- .github/workflows/basic-tests.yml | 8 ++++---- .github/workflows/reusable_lint-packages.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/basic-tests.yml b/.github/workflows/basic-tests.yml index 305fe22..71c84df 100644 --- a/.github/workflows/basic-tests.yml +++ b/.github/workflows/basic-tests.yml @@ -20,7 +20,7 @@ jobs: verify-plugin-android: needs: ['setup', 'lint-test', 'build-packages'] - runs-on: 'macos-latest' + runs-on: 'macos-15' timeout-minutes: 30 steps: - uses: actions/checkout@v5 @@ -32,7 +32,7 @@ jobs: verify-plugin-ios: needs: ['setup', 'lint-test', 'build-packages'] - runs-on: 'macos-latest' + runs-on: 'macos-15' timeout-minutes: 30 steps: - uses: actions/checkout@v5 @@ -44,7 +44,7 @@ jobs: build-example-app-android: needs: ['verify-plugin-android'] - runs-on: 'macos-latest' + runs-on: 'macos-15' timeout-minutes: 30 steps: - uses: actions/checkout@v5 @@ -58,7 +58,7 @@ jobs: build-example-app-ios: needs: ['verify-plugin-ios'] - runs-on: 'macos-latest' + runs-on: 'macos-15' timeout-minutes: 30 steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/reusable_lint-packages.yml b/.github/workflows/reusable_lint-packages.yml index 7700a91..2a30d6d 100644 --- a/.github/workflows/reusable_lint-packages.yml +++ b/.github/workflows/reusable_lint-packages.yml @@ -8,7 +8,7 @@ on: jobs: lint: - runs-on: 'macos-latest' + runs-on: 'macos-15' timeout-minutes: 30 steps: - uses: actions/checkout@v5 From d9f53db52438c9197ea749f16ccf0a2fe8465d0c Mon Sep 17 00:00:00 2001 From: OS-pedrogustavobilro Date: Mon, 27 Jul 2026 12:30:42 +0100 Subject: [PATCH 4/4] ci: native build of example-app-spm --- .github/actions/prepare-example-app/action.yml | 10 ++++++++-- .github/workflows/basic-tests.yml | 18 +++++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.github/actions/prepare-example-app/action.yml b/.github/actions/prepare-example-app/action.yml index 304f1d9..349dc74 100644 --- a/.github/actions/prepare-example-app/action.yml +++ b/.github/actions/prepare-example-app/action.yml @@ -1,6 +1,12 @@ name: 'Prepare Example app' description: 'Does necessary pre-work for the example app to compile natively' +inputs: + app-dir: + description: 'Path to the example app directory' + required: false + default: './example-app' + runs: using: 'composite' steps: @@ -9,10 +15,10 @@ runs: shell: bash run: pnpm run build - name: 'Build Web example app' - working-directory: ./example-app + working-directory: ${{ inputs.app-dir }} shell: bash run: pnpm run build - name: 'Sync example app native platforms' - working-directory: ./example-app + working-directory: ${{ inputs.app-dir }} shell: bash run: pnpm exec cap sync diff --git a/.github/workflows/basic-tests.yml b/.github/workflows/basic-tests.yml index 71c84df..6b6c813 100644 --- a/.github/workflows/basic-tests.yml +++ b/.github/workflows/basic-tests.yml @@ -68,4 +68,20 @@ jobs: uses: ./.github/actions/prepare-example-app - name: 'Build iOS example app' working-directory: ./example-app/ios/App - run: xcodebuild clean build -workspace App.xcworkspace -scheme App CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO \ No newline at end of file + run: xcodebuild clean build -workspace App.xcworkspace -scheme App CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO + + build-example-app-spm-ios: + needs: ['verify-plugin-ios'] + runs-on: 'macos-15' + timeout-minutes: 30 + steps: + - uses: actions/checkout@v5 + - name: 'Setup Tools' + uses: ./.github/actions/setup-tools + - name: 'Prepare example app' + uses: ./.github/actions/prepare-example-app + with: + app-dir: './example-app-spm' + - name: 'Build iOS SPM example app' + working-directory: ./example-app-spm/ios/App + run: xcodebuild clean build -project App.xcodeproj -scheme App CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO \ No newline at end of file