From 33c2e1baad0b4c62c99b964b14b04bf2700adcc1 Mon Sep 17 00:00:00 2001 From: Nick Burkhart Date: Mon, 31 Jul 2023 09:50:58 -0400 Subject: [PATCH 01/13] chore: simplify pr test --- .github/workflows/pr-test.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 01b345aca7..6680703ed4 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -2,12 +2,12 @@ name: PR Test -on: [ push, pull_request ] +on: [pull_request] jobs: build: - - runs-on: macos-latest + runs-on: ubuntu-latest + timeout-minutes: 10 steps: - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # pin@v3 @@ -21,5 +21,3 @@ jobs: run: yarn build - name: Run tests run: yarn test - - name: Initialize react native app - run: yarn workspace @brandingbrand/code-app run init -v From e67b2a68e2999704f49eebbc04e158264ae1d449 Mon Sep 17 00:00:00 2001 From: Nick Burkhart Date: Mon, 31 Jul 2023 12:56:54 -0400 Subject: [PATCH 02/13] chore: add init step back in --- .github/workflows/pr-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 6680703ed4..295957c57d 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -7,7 +7,7 @@ on: [pull_request] jobs: build: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 25 steps: - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # pin@v3 @@ -21,3 +21,5 @@ jobs: run: yarn build - name: Run tests run: yarn test + - name: Initialize react native app + run: yarn workspace @brandingbrand/code-app run init -v From f285b15939698538ada41422f4ecde03ecc21d18 Mon Sep 17 00:00:00 2001 From: Nick Burkhart Date: Mon, 31 Jul 2023 14:57:29 -0400 Subject: [PATCH 03/13] chore: init android only skips ios since requires cocoapods step --- .github/workflows/pr-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 295957c57d..5e048f55a2 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -22,4 +22,4 @@ jobs: - name: Run tests run: yarn test - name: Initialize react native app - run: yarn workspace @brandingbrand/code-app run init -v + run: yarn workspace @brandingbrand/code-app run init -p android -v From dba52d39a3363e453565d7e2fafb7ae9a7f0673b Mon Sep 17 00:00:00 2001 From: Brian Gaines Date: Mon, 7 Aug 2023 07:15:36 -0700 Subject: [PATCH 04/13] heading should only be incremented by one level --- docs/src/pages/en/faq.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/src/pages/en/faq.md b/docs/src/pages/en/faq.md index 2ae1c07dd9..d4ba61fe22 100644 --- a/docs/src/pages/en/faq.md +++ b/docs/src/pages/en/faq.md @@ -7,18 +7,18 @@ lang: en ## FAQ -#### How does this help me? +### How does this help me? `Flagship Code™` provides you a typed configuration with idempotent native code generation. This is important for scalability, managing third-party dependencies, managing build configurations, managing runtime configurations, and staying up to date with the latest stable release of React Native. -#### React Native Support Version? +### React Native Support Version? We support the latest stable release of React Native which we define as the latest released version minus one semantic minor version e.g., latest released is `0.71.2` and we support `0.70.6`. This will be the continued pattern unless there is a necessary upgrade. -#### Can I opt-in at any time? +### Can I opt-in at any time? Yes, at any time you can opt-in. To opt-in, stop persisting the `ios` and `android` directories and create a new `code` runtime configuration directory with all necessary assets and packages. To see a detailed implementation, head over to the [**integration**](/en/usage/integration) page. -#### Can I opt-out at any time? +### Can I opt-out at any time? Yes, at any time you can opt-out. To opt-out you will start persisting the `ios` and `android` directories and remove all `code` dependencies. From 6c07ce8d9a567d2281566acdc078bcb4603c3cb8 Mon Sep 17 00:00:00 2001 From: Brian Gaines Date: Mon, 7 Aug 2023 07:24:27 -0700 Subject: [PATCH 05/13] fix a few typos --- docs/src/pages/en/packages/cli/v12.0.0.mdx | 10 +++++----- docs/src/pages/en/packages/plugins/app-icon/v1.0.0.mdx | 2 +- docs/src/pages/en/packages/plugins/asset/v1.0.0.mdx | 2 +- docs/src/pages/en/packages/plugins/fastlane/v1.0.0.mdx | 2 +- .../pages/en/packages/plugins/fbsdk-next/v1.0.0.mdx | 2 +- .../en/packages/plugins/firebase-analytics/v1.0.0.mdx | 2 +- .../pages/en/packages/plugins/firebase-app/v1.0.0.mdx | 2 +- .../pages/en/packages/plugins/google-signin/v1.0.0.mdx | 2 +- docs/src/pages/en/packages/plugins/leanplum/v1.0.1.mdx | 2 +- .../en/packages/plugins/native-navigation/v1.0.0.mdx | 2 +- .../pages/en/packages/plugins/permissions/v1.0.0.mdx | 2 +- .../pages/en/packages/plugins/splash-screen/v1.0.0.mdx | 2 +- .../en/packages/plugins/target-application/v1.0.0.mdx | 2 +- .../en/packages/plugins/target-extension/v1.0.0.mdx | 2 +- docs/src/pages/en/usage/troubleshooting.md | 2 +- 15 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/src/pages/en/packages/cli/v12.0.0.mdx b/docs/src/pages/en/packages/cli/v12.0.0.mdx index 57adf09c94..336c0a6085 100644 --- a/docs/src/pages/en/packages/cli/v12.0.0.mdx +++ b/docs/src/pages/en/packages/cli/v12.0.0.mdx @@ -9,7 +9,7 @@ import CodeCopy from "../../../../components/code-copy.astro"; ## CLI -`@brandingbrand/code-cli` is a package that listens commands that will invoke initializing an iOS and/or Android React Native project, add native code-signing keys and cleaning out native code + compiled configuration files. +`@brandingbrand/code-cli` is a package that listens to commands that will invoke initializing an iOS and/or Android React Native project, add native code-signing keys and cleaning out native code + compiled configuration files. ### Getting Started @@ -21,15 +21,15 @@ Add the above noted package and the `code` command is now available to use via ` ### Usage -The 3 commands that are available to use with `code` are: `init`, `keys` and `clean`. Each command accepts different options but do follow the same execution life-cycle hooks: pre, pre-platform, platform, post-platform, post. +The 3 commands that are available to use with `code` are: `init`, `keys` and `clean`. Each command accepts different options but follows the same execution life-cycle hooks: pre, pre-platform, platform, post-platform, post. These explicit life-cycle hooks exist to give full customization to the execution workflow. Each execution life-cycle hook exports an array of executors which each have a use case. To learn more about executors and the execution life-cycle hooks jump over to the [**Core**](/en/packages/core) package. The CLI package doesn't know any specifics of the executors, it only knows of the life-cycle hooks to invoke. ### Init -Initializes a specificed platform project. +Initializes a specified platform project. -To invoke this `init` command run: `yarn code init`. This will invoke all the execution life-cycle hooks for `init`. There are a few options that can be sent to this command. +To invoke the `init` command run: `yarn code init`. This will invoke all the execution life-cycle hooks for `init`. There are a few options that can be sent to this command. #### Options @@ -46,7 +46,7 @@ To invoke this `init` command run: `yarn code init`. This will invoke all the ex Adds codesigning keys for a specified platform. -To invoke this `keys` command run: `yarn code keys`. This will invoke all the execution life-cycle hooks for `keys`. There are a few options that can be sent to this command. +To invoke the `keys` command run: `yarn code keys`. This will invoke all the execution life-cycle hooks for `keys`. There are a few options that can be sent to this command. #### Options diff --git a/docs/src/pages/en/packages/plugins/app-icon/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/app-icon/v1.0.0.mdx index a6227c81d1..127141fd65 100644 --- a/docs/src/pages/en/packages/plugins/app-icon/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/app-icon/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/asset/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/asset/v1.0.0.mdx index c4508aa4e0..90d046b725 100644 --- a/docs/src/pages/en/packages/plugins/asset/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/asset/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/fastlane/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/fastlane/v1.0.0.mdx index e074f94555..1ca029d2be 100644 --- a/docs/src/pages/en/packages/plugins/fastlane/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/fastlane/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/fbsdk-next/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/fbsdk-next/v1.0.0.mdx index bfa9d1002c..fd027c9cac 100644 --- a/docs/src/pages/en/packages/plugins/fbsdk-next/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/fbsdk-next/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/firebase-analytics/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/firebase-analytics/v1.0.0.mdx index 9352f97c9f..99c9b5b2f8 100644 --- a/docs/src/pages/en/packages/plugins/firebase-analytics/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/firebase-analytics/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/firebase-app/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/firebase-app/v1.0.0.mdx index 99cf9815d7..405a413f16 100644 --- a/docs/src/pages/en/packages/plugins/firebase-app/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/firebase-app/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/google-signin/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/google-signin/v1.0.0.mdx index d8628c6169..96565cf0ce 100644 --- a/docs/src/pages/en/packages/plugins/google-signin/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/google-signin/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/leanplum/v1.0.1.mdx b/docs/src/pages/en/packages/plugins/leanplum/v1.0.1.mdx index 01b12684b3..58e052905f 100644 --- a/docs/src/pages/en/packages/plugins/leanplum/v1.0.1.mdx +++ b/docs/src/pages/en/packages/plugins/leanplum/v1.0.1.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/native-navigation/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/native-navigation/v1.0.0.mdx index 438c4a8664..43f97c31ee 100644 --- a/docs/src/pages/en/packages/plugins/native-navigation/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/native-navigation/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/permissions/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/permissions/v1.0.0.mdx index 11354a0a43..bfa28cc284 100644 --- a/docs/src/pages/en/packages/plugins/permissions/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/permissions/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/splash-screen/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/splash-screen/v1.0.0.mdx index a8a78fccde..9216a2f6ec 100644 --- a/docs/src/pages/en/packages/plugins/splash-screen/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/splash-screen/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/target-application/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/target-application/v1.0.0.mdx index 9bbffec1d0..9c065800d9 100644 --- a/docs/src/pages/en/packages/plugins/target-application/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/target-application/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/packages/plugins/target-extension/v1.0.0.mdx b/docs/src/pages/en/packages/plugins/target-extension/v1.0.0.mdx index aae9da734e..ab7fe9bd6b 100644 --- a/docs/src/pages/en/packages/plugins/target-extension/v1.0.0.mdx +++ b/docs/src/pages/en/packages/plugins/target-extension/v1.0.0.mdx @@ -17,7 +17,7 @@ import CodeCopy from "../../../../../components/code-copy.astro"; -Add the above noted package and the plugin is avaialble in the Flagship Code plugin ecosystem. +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. ### Usage diff --git a/docs/src/pages/en/usage/troubleshooting.md b/docs/src/pages/en/usage/troubleshooting.md index e64addd593..26d6caccaa 100644 --- a/docs/src/pages/en/usage/troubleshooting.md +++ b/docs/src/pages/en/usage/troubleshooting.md @@ -19,7 +19,7 @@ As a first step to troubleshooting iOS, we recommend you clear your Xcode Derive If you are upgrading from a previous version of FS to FS12, all text elements in Android that do not have a value for their color will be white when the device is in dark mode. To resolve this, patch the template style values XML file so that the application defaults to light mode, regardless of the device’s current theme. -### Java Vesion +### Java Version It's possible OS updates have caused this issue when reported; however, if a Java version issue is encountered while building the Android application, you can resolve it by making sure you set the JAVA_HOME path equal to the one used by Android Studio in your path file. Open and edit your .zshrc file `code .zshrc` (or .bashrc if using Linux, or WSL) From 0340df3e90fad167e136f5ec309ae07580362153 Mon Sep 17 00:00:00 2001 From: Brian Gaines Date: Wed, 9 Aug 2023 10:49:25 -0700 Subject: [PATCH 06/13] fix indenting --- docs/src/pages/en/introduction.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/src/pages/en/introduction.md b/docs/src/pages/en/introduction.md index 777fb05a9c..de15a89616 100644 --- a/docs/src/pages/en/introduction.md +++ b/docs/src/pages/en/introduction.md @@ -19,17 +19,17 @@ lang: en This toolkit can be broken into three models: Core, CLI, and Plugins. -### Core +## Core The core SDK contains utility functions, executors, and a template. Utility functions are foundational functions that executors and more complex functions are built upon to manipulate or generate native code. -### CLI +## CLI The CLI SDK is a command line interface that listens for options that conditionally run executors. > Executors are complex functions that are executed at different native-specific lifecycles. -### Plugins +## Plugins Plugins are published or local native-specific scripts (e.g., iOS and/or Android) that manipulate or generate native code for a specific third-party SDK. These plugins are run generically based on a priority list captured in the package.json file. From d6e97816b126e5f4fc0aea3acbcd9b3096f3d193 Mon Sep 17 00:00:00 2001 From: Chris Herman Date: Mon, 11 Mar 2024 13:02:18 -0400 Subject: [PATCH 07/13] feat(fastlane): update fastlane actions --- .changeset/honest-windows-study.md | 5 + .changeset/pre.json | 26 ++++++ .gitignore | 1 + apps/react-native/.coderc/env/env.dev.ts | 4 + apps/react-native/.coderc/env/env.prod.ts | 12 ++- .../.coderc/signing/AppleWWDRCA.cert | 0 .../.coderc/signing/example.keystore | Bin 0 -> 2257 bytes apps/react-native/.coderc/signing/store.cert | 0 .../.coderc/signing/store.mobileprovision | 0 apps/react-native/.coderc/signing/store.p12 | 0 apps/react-native/package.json | 2 +- package.json | 2 +- packages/plugin-fastlane/CHANGELOG.md | 6 ++ .../assets/android/fastlane/Fastfile | 37 ++++---- .../assets/ios/fastlane/Fastfile | 77 ++++++++++++---- packages/plugin-fastlane/package.json | 2 +- packages/plugin-fastlane/src/index.ts | 86 +++++++++++++++++- .../fixtures/.coderc/signing/AppleWWDRCA.cert | 0 .../fixtures/.coderc/signing/example.keystore | 0 .../test/fixtures/.coderc/signing/store.cert | 0 .../test/fixtures/.coderc/signing/store.p12 | 0 .../test/index--increment.test.ts | 38 -------- .../test/index--not-increment.test.ts | 33 ------- .../test/index--not-release.test.ts | 42 --------- .../test/index--release.test.ts | 43 --------- packages/plugin-fastlane/test/index.test.ts | 32 +++++-- yarn.lock | 83 +++++++++++------ 27 files changed, 298 insertions(+), 233 deletions(-) create mode 100644 .changeset/honest-windows-study.md create mode 100644 .changeset/pre.json create mode 100644 apps/react-native/.coderc/signing/AppleWWDRCA.cert create mode 100644 apps/react-native/.coderc/signing/example.keystore create mode 100644 apps/react-native/.coderc/signing/store.cert create mode 100644 apps/react-native/.coderc/signing/store.mobileprovision create mode 100644 apps/react-native/.coderc/signing/store.p12 create mode 100644 packages/plugin-fastlane/test/fixtures/.coderc/signing/AppleWWDRCA.cert create mode 100644 packages/plugin-fastlane/test/fixtures/.coderc/signing/example.keystore create mode 100644 packages/plugin-fastlane/test/fixtures/.coderc/signing/store.cert create mode 100644 packages/plugin-fastlane/test/fixtures/.coderc/signing/store.p12 delete mode 100644 packages/plugin-fastlane/test/index--increment.test.ts delete mode 100644 packages/plugin-fastlane/test/index--not-increment.test.ts delete mode 100644 packages/plugin-fastlane/test/index--not-release.test.ts delete mode 100644 packages/plugin-fastlane/test/index--release.test.ts diff --git a/.changeset/honest-windows-study.md b/.changeset/honest-windows-study.md new file mode 100644 index 0000000000..82d00d6996 --- /dev/null +++ b/.changeset/honest-windows-study.md @@ -0,0 +1,5 @@ +--- +"@brandingbrand/code-plugin-fastlane": major +--- + +Update fastlane plugin to use fastlane actions diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000000..819f09f199 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,26 @@ +{ + "mode": "pre", + "tag": "alpha", + "initialVersions": { + "@brandingbrand/code-app": "0.0.0", + "@brandingbrand/code-docs": "0.0.0", + "@brandingbrand/code-cli": "12.0.0", + "@brandingbrand/code-core": "12.0.1", + "@brandingbrand/code-plugin-app-icon": "1.0.0", + "@brandingbrand/code-plugin-asset": "1.0.0", + "@brandingbrand/code-plugin-fastlane": "1.0.0", + "@brandingbrand/code-plugin-fbsdk-next": "1.0.0", + "@brandingbrand/code-plugin-firebase-analytics": "1.0.0", + "@brandingbrand/code-plugin-firebase-app": "1.0.0", + "@brandingbrand/code-plugin-google-signin": "1.0.0", + "@brandingbrand/code-plugin-leanplum": "1.0.1", + "@brandingbrand/code-plugin-native-navigation": "1.0.0", + "@brandingbrand/code-plugin-permissions": "1.0.0", + "@brandingbrand/code-plugin-splash-screen": "1.0.0", + "@brandingbrand/code-plugin-target-application": "1.0.0", + "@brandingbrand/code-plugin-target-extension": "1.0.0" + }, + "changesets": [ + "honest-windows-study" + ] +} diff --git a/.gitignore b/.gitignore index 4dec23218c..db84e03bae 100644 --- a/.gitignore +++ b/.gitignore @@ -147,6 +147,7 @@ yarn-error.log buck-out/ \.buckd/ *.keystore +!example.keystore !debug.keystore # fastlane diff --git a/apps/react-native/.coderc/env/env.dev.ts b/apps/react-native/.coderc/env/env.dev.ts index 52c11c75c7..6c2de388cf 100644 --- a/apps/react-native/.coderc/env/env.dev.ts +++ b/apps/react-native/.coderc/env/env.dev.ts @@ -47,6 +47,10 @@ const dev: ENV = { version: '0.0.1', build: 1, }, + signing: { + keyAlias: 'androiddebugkey', + storeFile: 'signing/example.keystore', + }, manifest: { urlScheme: { scheme: 'code', diff --git a/apps/react-native/.coderc/env/env.prod.ts b/apps/react-native/.coderc/env/env.prod.ts index 7fb91f8771..a8d4e4a2b4 100644 --- a/apps/react-native/.coderc/env/env.prod.ts +++ b/apps/react-native/.coderc/env/env.prod.ts @@ -29,10 +29,10 @@ const prod: ENV = { exportTeamId: '762H5V79XV', exportMethod: 'app-store', provisioningProfileName: 'Test Provisioning Profile', - profilesDir: 'xx/xx', - appleCert: 'xx/xx', - distCert: 'xx/xx', - distP12: 'xx/xx', + profilesDir: 'signing', + appleCert: 'signing/AppleWWDRCA.cert', + distCert: 'signing/store.cert', + distP12: 'signing/store.p12', }, frameworks: [ { @@ -48,6 +48,10 @@ const prod: ENV = { version: '0.0.1', build: 1, }, + signing: { + keyAlias: 'androiddebugkey', + storeFile: 'signing/example.keystore', + }, manifest: { mainActivityAttributes: { 'android:screenOrientation': 'portrait', diff --git a/apps/react-native/.coderc/signing/AppleWWDRCA.cert b/apps/react-native/.coderc/signing/AppleWWDRCA.cert new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/react-native/.coderc/signing/example.keystore b/apps/react-native/.coderc/signing/example.keystore new file mode 100644 index 0000000000000000000000000000000000000000..364e105ed39fbfd62001429a68140672b06ec0de GIT binary patch literal 2257 zcmchYXEfYt8;7T1^dLH$VOTZ%2NOdOH5j5LYLtZ0q7x-V8_6gU5)#7dkq{HTmsfNq zB3ZqcAxeY^G10@?efK?Q&)M(qInVv!xjx+IKEL}p*K@LYvIzo#AZG>st5|P)KF1_Z;y){W{<7K{nl!CPuE z_^(!C(Ol0n8 zK13*rzAtW>(wULKPRYLd7G18F8#1P`V*9`(Poj26eOXYyBVZPno~Cvvhx7vPjAuZo zF?VD!zB~QG(!zbw#qsxT8%BSpqMZ4f70ZPn-3y$L8{EVbbN9$H`B&Z1quk9tgp5FM zuxp3pJ0b8u|3+#5bkJ4SRnCF2l7#DyLYXYY8*?OuAwK4E6J{0N=O3QNVzQ$L#FKkR zi-c@&!nDvezOV$i$Lr}iF$XEcwnybQ6WZrMKuw8gCL^U#D;q3t&HpTbqyD%vG=TeDlzCT~MXUPC|Leb-Uk+ z=vnMd(|>ld?Fh>V8poP;q;;nc@en$|rnP0ytzD&fFkCeUE^kG9Kx4wUh!!rpjwKDP zyw_e|a^x_w3E zP}}@$g>*LLJ4i0`Gx)qltL}@;mDv}D*xR^oeWcWdPkW@Uu)B^X&4W1$p6}ze!zudJ zyiLg@uggoMIArBr*27EZV7djDg@W1MaL+rcZ-lrANJQ%%>u8)ZMWU@R2qtnmG(acP z0d_^!t>}5W zpT`*2NR+0+SpTHb+6Js4b;%LJB;B_-ChhnU5py}iJtku*hm5F0!iql8Hrpcy1aYbT z1*dKC5ua6pMX@@iONI?Hpr%h;&YaXp9n!ND7-=a%BD7v&g zOO41M6EbE24mJ#S$Ui0-brR5ML%@|ndz^)YLMMV1atna{Fw<;TF@>d&F|!Z>8eg>>hkFrV)W+uv=`^F9^e zzzM2*oOjT9%gLoub%(R57p-`TXFe#oh1_{&N-YN z<}artH|m=d8TQuKSWE)Z%puU|g|^^NFwC#N=@dPhasyYjoy(fdEVfKR@cXKHZV-`06HsP`|Ftx;8(YD$fFXumLWbGnu$GMqRncXYY9mwz9$ap zQtfZB^_BeNYITh^hA7+(XNFox5WMeG_LtJ%*Q}$8VKDI_p8^pqX)}NMb`0e|wgF7D zuQACY_Ua<1ri{;Jwt@_1sW9zzdgnyh_O#8y+C;LcZq6=4e^cs6KvmK@$vVpKFGbQ= z$)Eux5C|Fx;Gtmv9^#Y-g@7Rt7*eLp5n!gJmn7&B_L$G?NCN`AP>cXQEz}%F%K;vUs{+l4Q{}eWW;ATe2 zqvXzxoIDy(u;F2q1JH7Sf;{jy_j})F+cKlIOmNfjBGHoG^CN zM|Ho&&X|L-36f}Q-obEACz`sI%2f&k>z5c$2TyTSj~vmO)BW~+N^kt`Jt@R|s!){H ze1_eCrlNaPkJQhL$WG&iRvF*YG=gXd1IyYQ9ew|iYn7r~g!wOnw;@n42>enAxBv*A zEmV*N#sxdicyNM=A4|yaOC5MByts}s_Hpfj|y<6G=o=!3S@eIFKDdpR7|FY>L&Wat&oW&cm&X~ z5Bt>Fcq(fgnvlvLSYg&o6>&fY`ODg4`V^lWWD=%oJ#Kbad2u~! zLECFS*??>|vDsNR&pH=Ze0Eo`sC_G`OjoEKVHY|wmwlX&(XBE<@sx3Hd^gtd-fNwUHsylg06p`U2y_={u}Bc lane :increment_build do begin version = appcenter_fetch_version_number( owner_name: "<%= codePluginFastlane.plugin.android.appCenter.organization %>", app_name: "<%= codePluginFastlane.plugin.android.appCenter.appName %>", - <%_ if (!release) { -%> - version: "<%- android.versioning?.version || "1.0.0" %>" - <%_ } -%> + version: "<%- android.versioning && android.versioning.version || "1.0.0" %>" ) if version["build_number"] @@ -20,11 +29,13 @@ lane :increment_build do puts "Fastlane: did not find any applicable versions for appcenter_fetch_version_number" end end +<% } -%> -lane :appcenter do +<% if(codePluginFastlane.plugin && codePluginFastlane.plugin.android && codePluginFastlane.plugin.android.appCenter) { -%> +lane :appcenter_assemble do increment_build - # build the release variant - gradle(task: "app:assembleRelease") + + assemble appcenter_upload( owner_name: "<%= codePluginFastlane.plugin.android.appCenter.organization %>", @@ -35,12 +46,7 @@ lane :appcenter do end lane :appcenter_bundle do - <%_ if (!android.versioning?.build) { -%> - increment_build - <%_ } -%> - - # build the release variant - gradle(task: "bundleRelease") + bundle appcenter_upload( owner_name: "<%= codePluginFastlane.plugin.android.appCenter.organization %>", @@ -49,9 +55,4 @@ lane :appcenter_bundle do destinations: "<%= codePluginFastlane.plugin.android.appCenter.destinations %>" ) end - -lane :build do - # build the release variant - gradle(task: "app:assembleRelease") - -end +<% } -%> diff --git a/packages/plugin-fastlane/assets/ios/fastlane/Fastfile b/packages/plugin-fastlane/assets/ios/fastlane/Fastfile index 30dce719b1..1b336b4b26 100644 --- a/packages/plugin-fastlane/assets/ios/fastlane/Fastfile +++ b/packages/plugin-fastlane/assets/ios/fastlane/Fastfile @@ -1,11 +1,66 @@ default_platform :ios +# make a provisioned build and upload to appcenter +lane :build do + keychain_password = SecureRandom.uuid + keychain_name = 'ios-build.keychain' + @profiles = [] + + create_keychain( + name: keychain_name, + password: keychain_password, + unlock: true, + timeout: 3600 + ) + + import_certificate( + certificate_path: 'ios-build-key.p12', + certificate_password: ENV['DISTRIBUTION_CERT_PASS'], + keychain_name: keychain_name, + keychain_password: keychain_password, + log_output: true + ) + + import_certificate( + certificate_path: 'ios-build-key.cer', + certificate_password: ENV['DISTRIBUTION_CERT_PASS'], + keychain_name: keychain_name, + keychain_password: keychain_password, + log_output: true + ) + + import_certificate( + certificate_path: 'AppleWWDRCA.cer', + keychain_name: keychain_name, + keychain_password: keychain_password, + log_output: true + ) + + @profiles.each { |profile| install_provisioning_profile(path: profile) } + + gym( + clean: true, + export_method: "<%= ios.signing.exportMethod %>", + export_team_id: "<%= ios.signing.exportTeamId %>" + ) + + delete_keychain(name: keychain_name) +end + +# make an unprovisioned build +lane :compile do + gym( + xcargs: "CODE_SIGN_IDENTITY='' CODE_SIGNING_REQUIRED='NO' CODE_SIGN_ENTITLEMENTS='' CODE_SIGNING_ALLOWED='NO'" + ) +end + +<% if(codePluginFastlane.plugin && codePluginFastlane.plugin.ios && codePluginFastlane.plugin.ios.appCenter) { -%> lane :increment_build do begin version = appcenter_fetch_version_number( owner_name: "<%= codePluginFastlane.plugin.ios.appCenter.organization %>", app_name: "<%= codePluginFastlane.plugin.ios.appCenter.appName %>", - version: "<%= ios.versioning.version %>" + version: "<%= ios.versioning && ios.versioning.version || "1.0.0" %>" ) if version["build_number"] build_number = increment_build_number( @@ -17,16 +72,13 @@ lane :increment_build do puts "Fastlane: did not find any applicable versions for appcenter_fetch_version_number" end end +<% } -%> -# make a provisioned build and upload to appcenter +<% if(codePluginFastlane.plugin && codePluginFastlane.plugin.ios && codePluginFastlane.plugin.ios.appCenter) { -%> lane :appcenter do increment_build - gym( - scheme: "<%= codePluginFastlane.plugin.ios.buildScheme %>", - clean: true, - export_method: "<%= ios.signing.exportMethod %>", - export_team_id: "<%= ios.signing.exportTeamId %>" - ) + + build appcenter_upload( owner_name: "<%= codePluginFastlane.plugin.ios.appCenter.organization %>", @@ -35,11 +87,4 @@ lane :appcenter do destinations: "<%= codePluginFastlane.plugin.ios.appCenter.destinations %>" ) end - -# make an unprovisioned build -lane :build do - xcodebuild( - scheme: "<%= codePluginFastlane.plugin.ios.buildScheme %>", - xcargs: "CODE_SIGN_IDENTITY='' CODE_SIGNING_REQUIRED='NO' CODE_SIGN_ENTITLEMENTS='' CODE_SIGNING_ALLOWED='NO'" - ) -end +<% } -%> diff --git a/packages/plugin-fastlane/package.json b/packages/plugin-fastlane/package.json index 7b6ac9abc3..95e62027cc 100644 --- a/packages/plugin-fastlane/package.json +++ b/packages/plugin-fastlane/package.json @@ -1,6 +1,6 @@ { "name": "@brandingbrand/code-plugin-fastlane", - "version": "1.0.0", + "version": "2.0.0-alpha.0", "description": "plugin for Flagship Code for fastlane app center builds", "license": "MIT", "repository": { diff --git a/packages/plugin-fastlane/src/index.ts b/packages/plugin-fastlane/src/index.ts index f17e1f520b..13f7d961b6 100644 --- a/packages/plugin-fastlane/src/index.ts +++ b/packages/plugin-fastlane/src/index.ts @@ -1,5 +1,11 @@ import path from "path"; -import { fsk, Config, path as pathk, summary } from "@brandingbrand/code-core"; +import { + fsk, + Config, + path as pathk, + summary, + fs, +} from "@brandingbrand/code-core"; import { CodePluginFastlane } from "./types"; const ios = summary.withSummary( @@ -21,6 +27,61 @@ plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') eval_gemfile(plugins_path) if File.exist?(plugins_path) ` ); + + if (!config.ios.signing) { + throw Error("[CodePluginFastlane]: missing ios fastlane configuration"); + } + + // Get list of provisioning profiles files + const files = await fs.readdir( + pathk.config.resolve(config.ios.signing.profilesDir) + ); + + const profilesFiles = files.filter((it) => + it.match(/(\w+\.mobileprovision)/) + ); + + // Throw error if there are no available provisioning profiles + if (!profilesFiles.length) { + throw Error( + `[CodePluginFastlane]: cannot find profiles that match *.mobileprovision in ${config.ios.signing.profilesDir}` + ); + } + + // Reduce list into a string that would be reprentative of a ruby array + const profiles = profilesFiles + .map( + (it) => + `'${pathk.config.resolve( + config.ios.signing?.profilesDir as string, + it + )}'` + ) + .join(","); + + await fsk.update( + pathk.project.resolve("ios", "fastlane", "Fastfile"), + /(@profiles\s+=\s+\[).*(\])/, + `$1${profiles}$2` + ); + + await fsk.update( + pathk.project.resolve("ios", "fastlane", "Fastfile"), + /(certificate_path:\s+').*\.p12(')/, + `$1${pathk.config.resolve(config.ios.signing?.distP12)}$2` + ); + + await fsk.update( + pathk.project.resolve("ios", "fastlane", "Fastfile"), + /(certificate_path:\s+').*\.cer(')/, + `$1${pathk.config.resolve(config.ios.signing?.distCert)}$2` + ); + + await fsk.update( + pathk.project.resolve("ios", "fastlane", "Fastfile"), + /(certificate_path:\s+')AppleWWDRCA\.cer(')/, + `$1${pathk.config.resolve(config.ios.signing?.appleCert)}$2` + ); } }, "plugin-fastlane", @@ -47,6 +108,29 @@ eval_gemfile(plugins_path) if File.exist?(plugins_path) ` ); } + + if (!config.android.signing) { + throw Error( + "[CodePluginFastlane]: missing android signing configuration" + ); + } + + await fs.copyFile( + pathk.config.resolve(config.android.signing.storeFile), + pathk.project.resolve("android", "app", "release.keystore") + ); + + await fsk.update( + pathk.project.resolve("android", "app", "build.gradle"), + /(signingConfigs[.\s\S]+?release \{)[.\s\S]+?\}/m, + `$1 + storeFile file('release.keystore') + storePassword System.getenv("STORE_PASSWORD") + keyAlias '${config.android.signing.keyAlias}' + keyPassword System.getenv("KEY_PASSWORD") + } + ` + ); }, "plugin-fastlane", "platform::android" diff --git a/packages/plugin-fastlane/test/fixtures/.coderc/signing/AppleWWDRCA.cert b/packages/plugin-fastlane/test/fixtures/.coderc/signing/AppleWWDRCA.cert new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/plugin-fastlane/test/fixtures/.coderc/signing/example.keystore b/packages/plugin-fastlane/test/fixtures/.coderc/signing/example.keystore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/plugin-fastlane/test/fixtures/.coderc/signing/store.cert b/packages/plugin-fastlane/test/fixtures/.coderc/signing/store.cert new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/plugin-fastlane/test/fixtures/.coderc/signing/store.p12 b/packages/plugin-fastlane/test/fixtures/.coderc/signing/store.p12 new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/plugin-fastlane/test/index--increment.test.ts b/packages/plugin-fastlane/test/index--increment.test.ts deleted file mode 100644 index 9a812d818b..0000000000 --- a/packages/plugin-fastlane/test/index--increment.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** - * @jest-environment-options {"fixture": "__plugin-fastlane--increment_fixtures"} - */ - -import { fs, path } from "@brandingbrand/code-core"; -import { android } from "../src"; - -describe("plugin-fastlane", () => { - it("android--increment", async () => { - await android({ - ...global.__FLAGSHIP_CODE_CONFIG__, - android: { - name: "HelloWorld", - displayName: "Hello World", - packageName: "com.helloworld", - }, - codePluginFastlane: { - plugin: { - android: { - appCenter: { - organization: "Branding-Brand", - appName: "FlagshipCode-Android-Internal", - destinationType: "group", - destinations: ["IAT"], - }, - }, - }, - }, - }); - - const result = ( - await fs.readFile(path.project.resolve("android", "fastlane", "Fastfile")) - ).toString(); - - expect(result).toMatch(`lane :appcenter_bundle do - increment_build`); - }); -}); diff --git a/packages/plugin-fastlane/test/index--not-increment.test.ts b/packages/plugin-fastlane/test/index--not-increment.test.ts deleted file mode 100644 index 963e531563..0000000000 --- a/packages/plugin-fastlane/test/index--not-increment.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * @jest-environment-options {"fixture": "__plugin-fastlane--not-increment_fixtures"} - */ - -import { fs, path } from "@brandingbrand/code-core"; -import { android } from "../src"; - -describe("plugin-fastlane", () => { - it("android--not-increment", async () => { - await android({ - ...global.__FLAGSHIP_CODE_CONFIG__, - codePluginFastlane: { - plugin: { - android: { - appCenter: { - organization: "Branding-Brand", - appName: "FlagshipCode-Android-Internal", - destinationType: "group", - destinations: ["IAT"], - }, - }, - }, - }, - }); - - const result = ( - await fs.readFile(path.project.resolve("android", "fastlane", "Fastfile")) - ).toString(); - - expect(result).not.toMatch(`lane :appcenter_bundle do - increment_build`); - }); -}); diff --git a/packages/plugin-fastlane/test/index--not-release.test.ts b/packages/plugin-fastlane/test/index--not-release.test.ts deleted file mode 100644 index e657e09850..0000000000 --- a/packages/plugin-fastlane/test/index--not-release.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** - * @jest-environment-options {"fixture": "__plugin-fastlane--not-release_fixtures"} - */ - -import { fs, path } from "@brandingbrand/code-core"; -import { android } from "../src"; - -describe("plugin-fastlane", () => { - it("android--not-release", async () => { - await android({ - ...global.__FLAGSHIP_CODE_CONFIG__, - codePluginFastlane: { - plugin: { - android: { - appCenter: { - organization: "Branding-Brand", - appName: "FlagshipCode-Android-Internal", - destinationType: "group", - destinations: ["IAT"], - }, - }, - }, - }, - release: false, - } as never); - - const androidCases = [ - `owner_name: "Branding-Brand"`, - `app_name: "FlagshipCode-Android-Internal"`, - `version: "1.0.0"`, - `destination_type: "group"`, - `destinations: "${["IAT"]}"`, - ]; - const result = ( - await fs.readFile(path.project.resolve("android", "fastlane", "Fastfile")) - ).toString(); - - androidCases.forEach(function (testCase) { - expect(result).toMatch(testCase); - }); - }); -}); diff --git a/packages/plugin-fastlane/test/index--release.test.ts b/packages/plugin-fastlane/test/index--release.test.ts deleted file mode 100644 index d4d0a4401e..0000000000 --- a/packages/plugin-fastlane/test/index--release.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -/** - * @jest-environment-options {"fixture": "__plugin-fastlane--release_fixtures"} - */ - -import { fs, path } from "@brandingbrand/code-core"; -import { android } from "../src"; - -describe("plugin-fastlane", () => { - it("android--release", async () => { - await android({ - ...global.__FLAGSHIP_CODE_CONFIG__, - codePluginFastlane: { - plugin: { - android: { - appCenter: { - organization: "Branding-Brand", - appName: "FlagshipCode-Android-Internal", - destinationType: "group", - destinations: ["IAT"], - }, - }, - }, - }, - release: true, - } as never); - - const androidCases = [ - `owner_name: "Branding-Brand"`, - `app_name: "FlagshipCode-Android-Internal"`, - `destination_type: "group"`, - `destinations: "${["IAT"]}"`, - ]; - const result = ( - await fs.readFile(path.project.resolve("android", "fastlane", "Fastfile")) - ).toString(); - - androidCases.forEach(function (testCase) { - expect(result).toMatch(testCase); - }); - - expect(result).not.toMatch(`version: "1.0.0"`); - }); -}); diff --git a/packages/plugin-fastlane/test/index.test.ts b/packages/plugin-fastlane/test/index.test.ts index 1fa2a645c7..5d2bd61435 100644 --- a/packages/plugin-fastlane/test/index.test.ts +++ b/packages/plugin-fastlane/test/index.test.ts @@ -1,5 +1,5 @@ /** - * @jest-environment-options {"fixture": "__plugin-fastlane_fixtures"} + * @jest-environment-options {"fixture": "__plugin-fastlane_fixtures", "additionalDirectory": "./fixtures"} */ import { fs, path } from "@brandingbrand/code-core"; @@ -13,13 +13,13 @@ describe("plugin-fastlane", () => { ...global.__FLAGSHIP_CODE_CONFIG__.ios, signing: { distCertType: "iPhone Distribution", - exportTeamId: "762H5V79XV", + exportTeamId: "12345ABC", exportMethod: "enterprise", provisioningProfileName: "Test Provisioning Profile", - profilesDir: "./xx", - appleCert: "", - distCert: "", - distP12: "", + profilesDir: "signing", + appleCert: "signing/AppleWWDRCA.cert", + distCert: "signing/store.cert", + distP12: "signing/store.p12", }, }, codePluginFastlane: { @@ -41,9 +41,8 @@ describe("plugin-fastlane", () => { `owner_name: "Branding-Brand"`, `app_name: "FlagshipCode-iOS-Internal"`, `version: "1.0.0"`, - `scheme: "code"`, `export_method: "enterprise"`, - `export_team_id: "762H5V79XV"`, + `export_team_id: "12345ABC"`, `destination_type: "group"`, `destinations: "${["IAT"]}"`, ]; @@ -59,6 +58,13 @@ describe("plugin-fastlane", () => { it("android", async () => { await android({ ...global.__FLAGSHIP_CODE_CONFIG__, + android: { + ...global.__FLAGSHIP_CODE_CONFIG__.android, + signing: { + keyAlias: "key0", + storeFile: "signing/example.keystore", + }, + }, codePluginFastlane: { plugin: { android: { @@ -84,8 +90,18 @@ describe("plugin-fastlane", () => { await fs.readFile(path.project.resolve("android", "fastlane", "Fastfile")) ).toString(); + const appBuildGradle = ( + await fs.readFile(path.project.resolve("android", "app", "build.gradle")) + ).toString(); + androidCases.forEach(function (testCase) { expect(result).toMatch(testCase); }); + + expect(appBuildGradle).toContain(`{ + storeFile file('release.keystore') + storePassword System.getenv("STORE_PASSWORD") + keyAlias 'key0' + keyPassword System.getenv("KEY_PASSWORD")`); }); }); diff --git a/yarn.lock b/yarn.lock index bd78301cb6..e9b9e75c55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2564,14 +2564,14 @@ resolved "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f" integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA== -"@es-joy/jsdoccomment@~0.36.0": - version "0.36.0" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.36.0.tgz#e3898aad334281a10ceb3c0ec406297a79f2b043" - integrity sha512-u0XZyvUF6Urb2cSivSXA8qXIpT/CxkHcdtZKoWusAzgzmsTWpg0F2FpWXsolHmMUyVY3dLWaoy+0ccJ5uf2QjA== +"@es-joy/jsdoccomment@~0.42.0": + version "0.42.0" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz#59e878708336aaee88c2b34c894f73dbf77ae2b0" + integrity sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw== dependencies: - comment-parser "1.3.1" - esquery "^1.4.0" - jsdoc-type-pratt-parser "~3.1.0" + comment-parser "1.4.1" + esquery "^1.5.0" + jsdoc-type-pratt-parser "~4.0.0" "@esbuild/android-arm64@0.17.12": version "0.17.12" @@ -4678,6 +4678,11 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +are-docs-informative@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/are-docs-informative/-/are-docs-informative-0.0.2.tgz#387f0e93f5d45280373d387a59d34c96db321963" + integrity sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig== + are-we-there-yet@~1.1.2: version "1.1.7" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" @@ -5367,7 +5372,7 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -builtin-modules@^3.1.0: +builtin-modules@^3.1.0, builtin-modules@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== @@ -5807,10 +5812,10 @@ commander@~2.13.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== -comment-parser@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" - integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== +comment-parser@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.1.tgz#bdafead37961ac079be11eb7ec65c4d021eaf9cc" + integrity sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg== common-ancestor-path@^1.0.1: version "1.0.1" @@ -6671,18 +6676,20 @@ eslint-plugin-jest@^26.5.3: dependencies: "@typescript-eslint/utils" "^5.10.0" -eslint-plugin-jsdoc@^39.3.12: - version "39.6.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.6.2.tgz#dcc86cec7cce47aa1a646e38debd5bdf76f63742" - integrity sha512-dvgY/W7eUFoAIIiaWHERIMI61ZWqcz9YFjEeyTzdPlrZc3TY/3aZm5aB91NUoTLWYZmO/vFlYSuQi15tF7uE5A== +eslint-plugin-jsdoc@^48.2.1: + version "48.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz#9334a05555a95fdc192980627142177963b668b4" + integrity sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g== dependencies: - "@es-joy/jsdoccomment" "~0.36.0" - comment-parser "1.3.1" + "@es-joy/jsdoccomment" "~0.42.0" + are-docs-informative "^0.0.2" + comment-parser "1.4.1" debug "^4.3.4" escape-string-regexp "^4.0.0" - esquery "^1.4.0" - semver "^7.3.8" - spdx-expression-parse "^3.0.1" + esquery "^1.5.0" + is-builtin-module "^3.2.1" + semver "^7.6.0" + spdx-expression-parse "^4.0.0" eslint-plugin-node@^11.1.0: version "11.1.0" @@ -6920,7 +6927,7 @@ esquery@^1.4.0: dependencies: estraverse "^5.1.0" -esquery@^1.4.2: +esquery@^1.4.2, esquery@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== @@ -8329,6 +8336,13 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -9597,10 +9611,10 @@ jscodeshift@^0.13.1: temp "^0.8.4" write-file-atomic "^2.3.0" -jsdoc-type-pratt-parser@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz#a4a56bdc6e82e5865ffd9febc5b1a227ff28e67e" - integrity sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw== +jsdoc-type-pratt-parser@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114" + integrity sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ== jsesc@^2.5.1: version "2.5.2" @@ -13662,6 +13676,13 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" + integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== + dependencies: + lru-cache "^6.0.0" + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -14035,7 +14056,7 @@ spdx-exceptions@^2.1.0: resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== -spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: +spdx-expression-parse@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== @@ -14043,6 +14064,14 @@ spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" +spdx-expression-parse@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz#a23af9f3132115465dac215c099303e4ceac5794" + integrity sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + spdx-license-ids@^3.0.0: version "3.0.12" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" From c05342ca49bc0a9772cbac26b0d0d7cbfe713a97 Mon Sep 17 00:00:00 2001 From: Chris Herman Date: Tue, 12 Mar 2024 12:20:07 -0400 Subject: [PATCH 08/13] feat(fastlane): remove duplicate closing bracket signingConfig --- packages/plugin-fastlane/src/index.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/plugin-fastlane/src/index.ts b/packages/plugin-fastlane/src/index.ts index 13f7d961b6..5553af69b6 100644 --- a/packages/plugin-fastlane/src/index.ts +++ b/packages/plugin-fastlane/src/index.ts @@ -127,9 +127,7 @@ eval_gemfile(plugins_path) if File.exist?(plugins_path) storeFile file('release.keystore') storePassword System.getenv("STORE_PASSWORD") keyAlias '${config.android.signing.keyAlias}' - keyPassword System.getenv("KEY_PASSWORD") - } - ` + keyPassword System.getenv("KEY_PASSWORD")` ); }, "plugin-fastlane", From 04bd4014265edc2d3d6e269942b02aac91f996b6 Mon Sep 17 00:00:00 2001 From: Nick Burkhart Date: Tue, 12 Mar 2024 18:39:10 -0400 Subject: [PATCH 09/13] fix(plugin-fastlane): scope assemble to app project --- packages/plugin-fastlane/assets/android/fastlane/Fastfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/plugin-fastlane/assets/android/fastlane/Fastfile b/packages/plugin-fastlane/assets/android/fastlane/Fastfile index 0656eb3d56..22cc09109f 100644 --- a/packages/plugin-fastlane/assets/android/fastlane/Fastfile +++ b/packages/plugin-fastlane/assets/android/fastlane/Fastfile @@ -2,12 +2,12 @@ default_platform :android lane :assemble do # assemble the release variant i.e. apk - gradle(task: "assembleRelease") + gradle(task: "app:assembleRelease") end lane :bundle do # bundle the release variant i.e. aab - gradle(task: "bundleRelease") + gradle(task: "app:bundleRelease") end <% if(codePluginFastlane.plugin && codePluginFastlane.plugin.android && codePluginFastlane.plugin.android.appCenter) { -%> From bfd76de165ebcf86c0f8cbedb836a1d80fb427e3 Mon Sep 17 00:00:00 2001 From: Nick Burkhart Date: Tue, 12 Mar 2024 18:50:34 -0400 Subject: [PATCH 10/13] chore(plugin-fastlane): setup changeset for new alpha version --- .changeset/curly-glasses-sniff.md | 5 +++++ .changeset/pre.json | 1 + apps/react-native/package.json | 2 +- packages/plugin-fastlane/CHANGELOG.md | 6 ++++++ packages/plugin-fastlane/package.json | 2 +- 5 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 .changeset/curly-glasses-sniff.md diff --git a/.changeset/curly-glasses-sniff.md b/.changeset/curly-glasses-sniff.md new file mode 100644 index 0000000000..05cb693c51 --- /dev/null +++ b/.changeset/curly-glasses-sniff.md @@ -0,0 +1,5 @@ +--- +"@brandingbrand/code-plugin-fastlane": patch +--- + +project scope android fastfile task diff --git a/.changeset/pre.json b/.changeset/pre.json index 819f09f199..7913cc7636 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -21,6 +21,7 @@ "@brandingbrand/code-plugin-target-extension": "1.0.0" }, "changesets": [ + "curly-glasses-sniff", "honest-windows-study" ] } diff --git a/apps/react-native/package.json b/apps/react-native/package.json index bd92dd7a50..9200e8a727 100644 --- a/apps/react-native/package.json +++ b/apps/react-native/package.json @@ -107,7 +107,7 @@ "@brandingbrand/code-plugin-permissions": "*", "@brandingbrand/code-plugin-splash-screen": "*", "@brandingbrand/code-plugin-target-extension": "*", - "@brandingbrand/code-plugin-fastlane": "2.0.0-alpha.0", + "@brandingbrand/code-plugin-fastlane": "2.0.0-alpha.1", "@react-native-community/eslint-config": "^3.2.0", "@tsconfig/react-native": "^2.0.2", "@types/jest": "^29.2.1", diff --git a/packages/plugin-fastlane/CHANGELOG.md b/packages/plugin-fastlane/CHANGELOG.md index 3989001165..4fdbf8ee05 100644 --- a/packages/plugin-fastlane/CHANGELOG.md +++ b/packages/plugin-fastlane/CHANGELOG.md @@ -1,5 +1,11 @@ # @brandingbrand/code-plugin-fastlane +## 2.0.0-alpha.1 + +### Patch Changes + +- project scope android fastfile task + ## 2.0.0-alpha.0 ### Major Changes diff --git a/packages/plugin-fastlane/package.json b/packages/plugin-fastlane/package.json index 95e62027cc..9917cdb218 100644 --- a/packages/plugin-fastlane/package.json +++ b/packages/plugin-fastlane/package.json @@ -1,6 +1,6 @@ { "name": "@brandingbrand/code-plugin-fastlane", - "version": "2.0.0-alpha.0", + "version": "2.0.0-alpha.1", "description": "plugin for Flagship Code for fastlane app center builds", "license": "MIT", "repository": { From 78e7c4f22383e6b269f9445b58c688504cab97d9 Mon Sep 17 00:00:00 2001 From: Chris Herman Date: Wed, 13 Mar 2024 10:31:24 -0400 Subject: [PATCH 11/13] feat(fastlane): fastlane plugin v2.0.0 docs --- .../en/packages/plugins/fastlane/v2.0.0.mdx | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs/src/pages/en/packages/plugins/fastlane/v2.0.0.mdx diff --git a/docs/src/pages/en/packages/plugins/fastlane/v2.0.0.mdx b/docs/src/pages/en/packages/plugins/fastlane/v2.0.0.mdx new file mode 100644 index 0000000000..b5abee125f --- /dev/null +++ b/docs/src/pages/en/packages/plugins/fastlane/v2.0.0.mdx @@ -0,0 +1,82 @@ +--- +title: Plugin Fastlane +description: brandingbrand/code-plugin-fastlane +layout: ../../../../../layouts/docs.astro +lang: en +--- + +import CodeCopy from "../../../../../components/code-copy.astro"; + +## Plugin Fastlane + +`@brandingbrand/code-plugin-fastlane` is a package that will generate native fastlane code necessary for your ci/cd integrations. Right now this contains the appcenter fastlaene integration. + +### Getting Started + +
+ +
+ +Add the above noted package and the plugin is available in the Flagship Code plugin ecosystem. + +### Usage + +After adding this plugin as a dev dependency it is necessary to add it to the code plugins configuration via the `package.json`. + +`package.json` + +``` + "code": { + "plugins": [ + "@brandingbrand/code-plugin-fastlane" + ] + }, +``` + +Your Flagship Code environment should also be updated with the `@brandingbrand/code-plugin-fastlane` required props from the defined interface. + + + +`.coderc/env/env..ts` + +``` + codePluginFastlane: { + code: { + ios: { + appCenter: { + organization: 'Your-Org', + appName: 'TestApp-iOS-Internal', + destinationType: 'group', + destinations: ['IAT', 'UAT'], + }, + buildScheme: 'appname', + }, + android: { + appCenter: { + organization: 'Your-Org', + appName: 'TestApp-Android-Internal', + destinationType: 'group', + destinations: ['IAT', 'UAT'], + }, + }, + }, + }, +``` + +The interface in your `.coderc/env/env..ts` has the following props: + +
+| attribute | description | +| :-------- | :---------- | +| code.ios.appcenter.organization | appcenter account name of the owner of the app (username or organization URL name | +| code.ios.appcenter.appName | appcenter app name (as seen in app URL) | +| code.ios.appcenter.destinationType | Destination type of distribution destination. 'group' and 'store' are supported (default: group) | +| code.ios.appcenter.destinations | Comma separated list of destination names, use '*' for all distribution groups if destination type is 'group'. Both distribution groups and stores are supported. All names are required to be of the same destination type (default: Collaborators) | +| code.ios.buildScheme | xcode project name | +| code.android.appcenter.organization | appcenter account name of the owner of the app (username or organization URL name | +| code.android.appcenter.appName | appcenter app name (as seen in app URL) | +| code.android.appcenter.destinationType | Destination type of distribution destination. 'group' and 'store' are supported (default: group) | +| code.android.appcenter.destinations | Comma separated list of destination names, use '*' for all distribution groups if destination type is 'group'. Both distribution groups and stores are supported. All names are required to be of the same destination type (default: Collaborators) | +
From 710f2d3416a3e5bc881acd68347d639079a97be3 Mon Sep 17 00:00:00 2001 From: Chris Herman Date: Wed, 13 Mar 2024 14:27:31 -0400 Subject: [PATCH 12/13] feat(fastlane): aside > p css --- docs/src/styles/global.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/src/styles/global.css b/docs/src/styles/global.css index f987cae7e3..9c7af5d5c1 100644 --- a/docs/src/styles/global.css +++ b/docs/src/styles/global.css @@ -39,6 +39,9 @@ .markdown p { @apply mb-4 text-code-charcoal dark:text-code-light-grey; } + .markdown aside > p { + @apply mb-4 text-code-charcoal dark:text-code-charcoal; + } .markdown a > p { @apply mb-0 text-sm; } From 7abee9acb4a8a3ae555f01d33cbbf2837b22d7e8 Mon Sep 17 00:00:00 2001 From: Chris Herman Date: Thu, 14 Mar 2024 10:36:13 -0400 Subject: [PATCH 13/13] chore(fastlane): plugin-fastlane v2.0.0 --- .changeset/curly-glasses-sniff.md | 5 ----- .changeset/honest-windows-study.md | 5 ----- .changeset/pre.json | 27 --------------------------- apps/react-native/package.json | 2 +- packages/plugin-fastlane/CHANGELOG.md | 10 ++++++++++ packages/plugin-fastlane/package.json | 2 +- 6 files changed, 12 insertions(+), 39 deletions(-) delete mode 100644 .changeset/curly-glasses-sniff.md delete mode 100644 .changeset/honest-windows-study.md delete mode 100644 .changeset/pre.json diff --git a/.changeset/curly-glasses-sniff.md b/.changeset/curly-glasses-sniff.md deleted file mode 100644 index 05cb693c51..0000000000 --- a/.changeset/curly-glasses-sniff.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@brandingbrand/code-plugin-fastlane": patch ---- - -project scope android fastfile task diff --git a/.changeset/honest-windows-study.md b/.changeset/honest-windows-study.md deleted file mode 100644 index 82d00d6996..0000000000 --- a/.changeset/honest-windows-study.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@brandingbrand/code-plugin-fastlane": major ---- - -Update fastlane plugin to use fastlane actions diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index 7913cc7636..0000000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "mode": "pre", - "tag": "alpha", - "initialVersions": { - "@brandingbrand/code-app": "0.0.0", - "@brandingbrand/code-docs": "0.0.0", - "@brandingbrand/code-cli": "12.0.0", - "@brandingbrand/code-core": "12.0.1", - "@brandingbrand/code-plugin-app-icon": "1.0.0", - "@brandingbrand/code-plugin-asset": "1.0.0", - "@brandingbrand/code-plugin-fastlane": "1.0.0", - "@brandingbrand/code-plugin-fbsdk-next": "1.0.0", - "@brandingbrand/code-plugin-firebase-analytics": "1.0.0", - "@brandingbrand/code-plugin-firebase-app": "1.0.0", - "@brandingbrand/code-plugin-google-signin": "1.0.0", - "@brandingbrand/code-plugin-leanplum": "1.0.1", - "@brandingbrand/code-plugin-native-navigation": "1.0.0", - "@brandingbrand/code-plugin-permissions": "1.0.0", - "@brandingbrand/code-plugin-splash-screen": "1.0.0", - "@brandingbrand/code-plugin-target-application": "1.0.0", - "@brandingbrand/code-plugin-target-extension": "1.0.0" - }, - "changesets": [ - "curly-glasses-sniff", - "honest-windows-study" - ] -} diff --git a/apps/react-native/package.json b/apps/react-native/package.json index 9200e8a727..f34a7b0e7b 100644 --- a/apps/react-native/package.json +++ b/apps/react-native/package.json @@ -107,7 +107,7 @@ "@brandingbrand/code-plugin-permissions": "*", "@brandingbrand/code-plugin-splash-screen": "*", "@brandingbrand/code-plugin-target-extension": "*", - "@brandingbrand/code-plugin-fastlane": "2.0.0-alpha.1", + "@brandingbrand/code-plugin-fastlane": "*", "@react-native-community/eslint-config": "^3.2.0", "@tsconfig/react-native": "^2.0.2", "@types/jest": "^29.2.1", diff --git a/packages/plugin-fastlane/CHANGELOG.md b/packages/plugin-fastlane/CHANGELOG.md index 4fdbf8ee05..dd1f3f2c73 100644 --- a/packages/plugin-fastlane/CHANGELOG.md +++ b/packages/plugin-fastlane/CHANGELOG.md @@ -1,5 +1,15 @@ # @brandingbrand/code-plugin-fastlane +## 2.0.0 + +### Major Changes + +- d6e97816b: Update fastlane plugin to use fastlane actions + +### Patch Changes + +- bfd76de16: project scope android fastfile task + ## 2.0.0-alpha.1 ### Patch Changes diff --git a/packages/plugin-fastlane/package.json b/packages/plugin-fastlane/package.json index 9917cdb218..b0ebf55c4a 100644 --- a/packages/plugin-fastlane/package.json +++ b/packages/plugin-fastlane/package.json @@ -1,6 +1,6 @@ { "name": "@brandingbrand/code-plugin-fastlane", - "version": "2.0.0-alpha.1", + "version": "2.0.0", "description": "plugin for Flagship Code for fastlane app center builds", "license": "MIT", "repository": {