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
24 changes: 24 additions & 0 deletions .github/actions/prepare-example-app/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
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:
- name: 'Build plugin'
working-directory: ./plugin
shell: bash
run: pnpm run build
- name: 'Build Web example app'
working-directory: ${{ inputs.app-dir }}
shell: bash
run: pnpm run build

@jcesarmobile jcesarmobile Jul 20, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think building the plugin and the example app is needed here, build-example-app needs verify-plugin, which needs build-packages, which builds the plugin and both example apps, so they should be built at this point.

And BTW, should we sync/build the example-app-spm too?
I don't think we are doing it in other plugins which has two example apps, but what's the point of having the spm variant if we are not doing anything with it?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accidentally didn't reply in thread, refer to my reply on #129 (comment)

- name: 'Sync example app native platforms'
working-directory: ${{ inputs.app-dir }}
shell: bash
run: pnpm exec cap sync
64 changes: 48 additions & 16 deletions .github/workflows/basic-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,38 +18,70 @@ 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'
runs-on: 'macos-15'
timeout-minutes: 30
steps:
- 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: pnpm run verify:android

build-example-app:
needs: ['verify-plugin']
runs-on: 'macos-latest'
verify-plugin-ios:
needs: ['setup', 'lint-test', 'build-packages']
runs-on: 'macos-15'
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: pnpm run verify:ios

build-example-app-android:
needs: ['verify-plugin-android']
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
- 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-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
- 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
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
2 changes: 1 addition & 1 deletion .github/workflows/reusable_lint-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
lint:
runs-on: 'macos-latest'
runs-on: 'macos-15'
timeout-minutes: 30
steps:
- uses: actions/checkout@v5
Expand Down
Loading