From a0dc93200bdbca83f32810434f04841b1652c101 Mon Sep 17 00:00:00 2001 From: Pavel Jacko Date: Sun, 2 Jul 2023 05:11:19 +0200 Subject: [PATCH 1/5] add new packages, decouple version manage hooks --- .../LICENSE | 0 .../README.md | 0 .../package.json | 0 .../rnv.d.ts | 0 .../src/__tests__/sanityTest.ts | 0 .../src/index.ts | 0 .../tsconfig.json | 0 packages/build-hooks-version/LICENSE | 21 ++++++++++ packages/build-hooks-version/README.md | 1 + packages/build-hooks-version/package.json | 39 +++++++++++++++++++ .../src/__tests__/deployTest.ts | 9 +++++ packages/build-hooks-version/src/index.ts | 1 + packages/build-hooks-version/src/rnv.d.ts | 1 + .../src/versions.ts | 28 +++++++++++++ packages/build-hooks-version/tsconfig.json | 7 ++++ packages/build-hooks/src/index.ts | 1 - 16 files changed, 107 insertions(+), 1 deletion(-) rename packages/{build-hook-git => build-hooks-git}/LICENSE (100%) rename packages/{build-hook-git => build-hooks-git}/README.md (100%) rename packages/{build-hook-git => build-hooks-git}/package.json (100%) rename packages/{build-hook-git => build-hooks-git}/rnv.d.ts (100%) rename packages/{build-hook-git => build-hooks-git}/src/__tests__/sanityTest.ts (100%) rename packages/{build-hook-git => build-hooks-git}/src/index.ts (100%) rename packages/{build-hook-git => build-hooks-git}/tsconfig.json (100%) create mode 100644 packages/build-hooks-version/LICENSE create mode 100644 packages/build-hooks-version/README.md create mode 100644 packages/build-hooks-version/package.json create mode 100644 packages/build-hooks-version/src/__tests__/deployTest.ts create mode 100644 packages/build-hooks-version/src/index.ts create mode 100644 packages/build-hooks-version/src/rnv.d.ts rename packages/{build-hooks => build-hooks-version}/src/versions.ts (90%) create mode 100644 packages/build-hooks-version/tsconfig.json diff --git a/packages/build-hook-git/LICENSE b/packages/build-hooks-git/LICENSE similarity index 100% rename from packages/build-hook-git/LICENSE rename to packages/build-hooks-git/LICENSE diff --git a/packages/build-hook-git/README.md b/packages/build-hooks-git/README.md similarity index 100% rename from packages/build-hook-git/README.md rename to packages/build-hooks-git/README.md diff --git a/packages/build-hook-git/package.json b/packages/build-hooks-git/package.json similarity index 100% rename from packages/build-hook-git/package.json rename to packages/build-hooks-git/package.json diff --git a/packages/build-hook-git/rnv.d.ts b/packages/build-hooks-git/rnv.d.ts similarity index 100% rename from packages/build-hook-git/rnv.d.ts rename to packages/build-hooks-git/rnv.d.ts diff --git a/packages/build-hook-git/src/__tests__/sanityTest.ts b/packages/build-hooks-git/src/__tests__/sanityTest.ts similarity index 100% rename from packages/build-hook-git/src/__tests__/sanityTest.ts rename to packages/build-hooks-git/src/__tests__/sanityTest.ts diff --git a/packages/build-hook-git/src/index.ts b/packages/build-hooks-git/src/index.ts similarity index 100% rename from packages/build-hook-git/src/index.ts rename to packages/build-hooks-git/src/index.ts diff --git a/packages/build-hook-git/tsconfig.json b/packages/build-hooks-git/tsconfig.json similarity index 100% rename from packages/build-hook-git/tsconfig.json rename to packages/build-hooks-git/tsconfig.json diff --git a/packages/build-hooks-version/LICENSE b/packages/build-hooks-version/LICENSE new file mode 100644 index 0000000..4c42bad --- /dev/null +++ b/packages/build-hooks-version/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 - present Flexn B.V. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/build-hooks-version/README.md b/packages/build-hooks-version/README.md new file mode 100644 index 0000000..7b190dd --- /dev/null +++ b/packages/build-hooks-version/README.md @@ -0,0 +1 @@ +# @flexn/build-hooks-version diff --git a/packages/build-hooks-version/package.json b/packages/build-hooks-version/package.json new file mode 100644 index 0000000..cb1b96f --- /dev/null +++ b/packages/build-hooks-version/package.json @@ -0,0 +1,39 @@ +{ + "name": "@flexn/build-hooks-version", + "version": "0.30.0", + "description": "Flexn Build Hooks Version manager", + "main": "lib/index", + "types": "lib/index", + "scripts": { + "watch": "tsc --watch --preserveWatchOutput", + "build": "yarn clean && yarn compile", + "clean": "rm -rf ./lib && rm -rf tsconfig.tsbuildinfo", + "compile": "tsc -b tsconfig.json" + }, + "files": [ + "lib", + "LICENSE", + "src" + ], + "repository": { + "directory": "packages/build-hooks-version", + "type": "git", + "url": "git+https://github.com/flexn-io/build-hooks.git" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [], + "author": "Flexn", + "license": "MIT", + "bugs": { + "url": "https://github.com/flexn-io/build-hooks/issues" + }, + "homepage": "https://github.com/flexn-io/build-hooks#readme", + "peerDependencies": { + "rnv": "*" + }, + "dependencies": { + "deepmerge": "3.2.0" + } +} diff --git a/packages/build-hooks-version/src/__tests__/deployTest.ts b/packages/build-hooks-version/src/__tests__/deployTest.ts new file mode 100644 index 0000000..9e3aeda --- /dev/null +++ b/packages/build-hooks-version/src/__tests__/deployTest.ts @@ -0,0 +1,9 @@ +describe('Test template', () => { + beforeEach(() => { + console.log('Testing'); + }); + it('init test', async () => { + const x = true; + expect(x).toEqual(true); + }); +}); diff --git a/packages/build-hooks-version/src/index.ts b/packages/build-hooks-version/src/index.ts new file mode 100644 index 0000000..3910512 --- /dev/null +++ b/packages/build-hooks-version/src/index.ts @@ -0,0 +1 @@ +export * from './versions'; diff --git a/packages/build-hooks-version/src/rnv.d.ts b/packages/build-hooks-version/src/rnv.d.ts new file mode 100644 index 0000000..84d26f8 --- /dev/null +++ b/packages/build-hooks-version/src/rnv.d.ts @@ -0,0 +1 @@ +declare module 'rnv'; diff --git a/packages/build-hooks/src/versions.ts b/packages/build-hooks-version/src/versions.ts similarity index 90% rename from packages/build-hooks/src/versions.ts rename to packages/build-hooks-version/src/versions.ts index 1d8a79b..5c39944 100644 --- a/packages/build-hooks/src/versions.ts +++ b/packages/build-hooks-version/src/versions.ts @@ -1,6 +1,7 @@ import path from 'path'; import fs from 'fs'; import { Doctor, FileUtils, Logger, Exec } from 'rnv'; +import merge from 'deepmerge'; const { readObjectSync, writeFileSync } = FileUtils; const { logHook } = Logger; @@ -138,6 +139,33 @@ const updateTemplateConfigDeps = ( } }; +export const setPackageVersions = (c: any, version: string, versionedPackages: Array) => { + const v = { + version: version, + }; + const pkgFolder = path.join(c.paths.project.dir, 'packages'); + _updateJson(c.paths.project.package, v); + + versionedPackages.forEach((pkgName: string) => { + _updateJson(path.join(pkgFolder, pkgName, 'package.json'), v); + }); +}; + +const _updateJson = (pPath: string, updateObj: object) => { + const pObj = FileUtils.readObjectSync(pPath); + + if (!pObj) { + throw new Error(`_updateJson called with unresolveable package.json path '${pPath}'`); + } + + let obj; + if (pObj) { + obj = merge(pObj, updateObj); + } + const output = Doctor.fixPackageObject(obj); + FileUtils.writeFileSync(pPath, output, 4, true); +}; + const updateExternalDeps = (pkgConfig: any, externalDependenciesVersions: Record) => { const { templateConfigFile, templateConfigPath } = pkgConfig; if (templateConfigFile) { diff --git a/packages/build-hooks-version/tsconfig.json b/packages/build-hooks-version/tsconfig.json new file mode 100644 index 0000000..0541d57 --- /dev/null +++ b/packages/build-hooks-version/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@flexn/typescript-config/tsconfig.lib.node.json", + "compilerOptions": { + "outDir": "./lib", + "rootDir": "./src" + } +} diff --git a/packages/build-hooks/src/index.ts b/packages/build-hooks/src/index.ts index 003e7db..d8b9fe1 100644 --- a/packages/build-hooks/src/index.ts +++ b/packages/build-hooks/src/index.ts @@ -4,7 +4,6 @@ export { googleDriveDeploy } from './deploy/googleDrive'; export { iosFirebaseDeploy } from './deploy/iosFirebase'; export { iosTFDeploy } from './deploy/iosTestFlight'; export { vercelDeploy } from './deploy/vercel'; -export { updateVersions } from './versions'; export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; export { notifySlack } from './slackNotifier'; export { setupSentrySecrets, uploadSentryMaps } from './sentry'; From 7e7b3235c7bb343baddd0471152075594be58b5b Mon Sep 17 00:00:00 2001 From: Pavel Jacko Date: Mon, 3 Jul 2023 02:12:18 +0200 Subject: [PATCH 2/5] decouple packages --- .../LICENSE | 0 packages/build-hooks-drive/README.md | 1 + .../package.json | 11 +-- .../src/__tests__/sanity.test.ts} | 2 +- .../src}/googleDrive.ts | 0 .../src/index.ts | 0 .../tsconfig.json | 0 .../LICENSE | 0 packages/build-hooks-fastlane/README.md | 1 + packages/build-hooks-fastlane/package.json | 39 ++++++++ .../src/__tests__/sanity.test.ts} | 2 +- .../src}/androidGooglePlay.ts | 0 packages/build-hooks-fastlane/src/index.ts | 9 ++ .../src}/iosTestFlight.ts | 0 .../tsconfig.json | 0 packages/build-hooks-firebase/LICENSE | 21 +++++ packages/build-hooks-firebase/README.md | 1 + packages/build-hooks-firebase/package.json | 39 ++++++++ .../src/__tests__/sanity.test.ts} | 2 +- .../src}/androidFirebase.ts | 0 packages/build-hooks-firebase/src/index.ts | 9 ++ .../src}/iosFirebase.ts | 0 packages/build-hooks-firebase/tsconfig.json | 7 ++ packages/build-hooks-git/package.json | 2 +- .../src/__tests__/sanity.test.ts | 9 ++ packages/build-hooks-git/src/git.ts | 32 +++++++ packages/build-hooks-git/src/index.ts | 41 ++------- packages/build-hooks-monorepo/LICENSE | 21 +++++ packages/build-hooks-monorepo/README.md | 1 + packages/build-hooks-monorepo/package.json | 39 ++++++++ .../src/__tests__/sanity.test.ts | 9 ++ .../src/index.ts | 0 .../src/parseRenativeProjects.ts | 67 ++++++++++++++ .../build-hooks-monorepo/src/patchJsonFile.ts | 17 ++++ .../src/prepareNightly.ts} | 0 .../src/rnv.d.ts | 0 .../src/syncDependencies.ts | 44 +++++++++ .../src/syncPackageVersions.ts | 14 +++ .../src/versions.ts | 90 +------------------ packages/build-hooks-monorepo/tsconfig.json | 7 ++ packages/build-hooks-sentry/LICENSE | 21 +++++ packages/build-hooks-sentry/README.md | 1 + .../package.json | 6 +- .../src/__tests__/sanity.test.ts | 9 ++ packages/build-hooks-sentry/src/index.ts | 9 ++ .../src/sentry.ts | 0 packages/build-hooks-sentry/tsconfig.json | 7 ++ packages/build-hooks-slack/LICENSE | 21 +++++ packages/build-hooks-slack/README.md | 1 + packages/build-hooks-slack/package.json | 39 ++++++++ .../src/__tests__/sanity.test.ts | 9 ++ packages/build-hooks-slack/src/index.ts | 9 ++ .../src/slackNotifier.ts | 0 packages/build-hooks-slack/tsconfig.json | 7 ++ packages/build-hooks-vercel/LICENSE | 21 +++++ packages/build-hooks-vercel/README.md | 1 + packages/build-hooks-vercel/package.json | 39 ++++++++ .../src/__tests__/sanity.test.ts | 9 ++ packages/build-hooks-vercel/src/index.ts | 9 ++ .../src}/vercel.ts | 0 packages/build-hooks-vercel/tsconfig.json | 7 ++ packages/build-hooks-version/README.md | 1 - packages/build-hooks/README.md | 1 - packages/build-hooks/src/rnv.d.ts | 1 - 64 files changed, 629 insertions(+), 136 deletions(-) rename packages/{build-hooks-version => build-hooks-drive}/LICENSE (100%) create mode 100644 packages/build-hooks-drive/README.md rename packages/{build-hooks => build-hooks-drive}/package.json (77%) rename packages/{build-hooks-git/src/__tests__/sanityTest.ts => build-hooks-drive/src/__tests__/sanity.test.ts} (83%) rename packages/{build-hooks/src/deploy => build-hooks-drive/src}/googleDrive.ts (100%) rename packages/{build-hooks => build-hooks-drive}/src/index.ts (100%) rename packages/{build-hooks-version => build-hooks-drive}/tsconfig.json (100%) rename packages/{build-hooks => build-hooks-fastlane}/LICENSE (100%) create mode 100644 packages/build-hooks-fastlane/README.md create mode 100644 packages/build-hooks-fastlane/package.json rename packages/{build-hooks/src/__tests__/deployTest.ts => build-hooks-fastlane/src/__tests__/sanity.test.ts} (83%) rename packages/{build-hooks/src/deploy => build-hooks-fastlane/src}/androidGooglePlay.ts (100%) create mode 100644 packages/build-hooks-fastlane/src/index.ts rename packages/{build-hooks/src/deploy => build-hooks-fastlane/src}/iosTestFlight.ts (100%) rename packages/{build-hooks => build-hooks-fastlane}/tsconfig.json (100%) create mode 100644 packages/build-hooks-firebase/LICENSE create mode 100644 packages/build-hooks-firebase/README.md create mode 100644 packages/build-hooks-firebase/package.json rename packages/{build-hooks-version/src/__tests__/deployTest.ts => build-hooks-firebase/src/__tests__/sanity.test.ts} (83%) rename packages/{build-hooks/src/deploy => build-hooks-firebase/src}/androidFirebase.ts (100%) create mode 100644 packages/build-hooks-firebase/src/index.ts rename packages/{build-hooks/src/deploy => build-hooks-firebase/src}/iosFirebase.ts (100%) create mode 100644 packages/build-hooks-firebase/tsconfig.json create mode 100644 packages/build-hooks-git/src/__tests__/sanity.test.ts create mode 100644 packages/build-hooks-git/src/git.ts create mode 100644 packages/build-hooks-monorepo/LICENSE create mode 100644 packages/build-hooks-monorepo/README.md create mode 100644 packages/build-hooks-monorepo/package.json create mode 100644 packages/build-hooks-monorepo/src/__tests__/sanity.test.ts rename packages/{build-hooks-version => build-hooks-monorepo}/src/index.ts (100%) create mode 100644 packages/build-hooks-monorepo/src/parseRenativeProjects.ts create mode 100644 packages/build-hooks-monorepo/src/patchJsonFile.ts rename packages/{build-hooks/src/prepare-nightly.ts => build-hooks-monorepo/src/prepareNightly.ts} (100%) rename packages/{build-hooks-version => build-hooks-monorepo}/src/rnv.d.ts (100%) create mode 100644 packages/build-hooks-monorepo/src/syncDependencies.ts create mode 100644 packages/build-hooks-monorepo/src/syncPackageVersions.ts rename packages/{build-hooks-version => build-hooks-monorepo}/src/versions.ts (64%) create mode 100644 packages/build-hooks-monorepo/tsconfig.json create mode 100644 packages/build-hooks-sentry/LICENSE create mode 100644 packages/build-hooks-sentry/README.md rename packages/{build-hooks-version => build-hooks-sentry}/package.json (88%) create mode 100644 packages/build-hooks-sentry/src/__tests__/sanity.test.ts create mode 100644 packages/build-hooks-sentry/src/index.ts rename packages/{build-hooks => build-hooks-sentry}/src/sentry.ts (100%) create mode 100644 packages/build-hooks-sentry/tsconfig.json create mode 100644 packages/build-hooks-slack/LICENSE create mode 100644 packages/build-hooks-slack/README.md create mode 100644 packages/build-hooks-slack/package.json create mode 100644 packages/build-hooks-slack/src/__tests__/sanity.test.ts create mode 100644 packages/build-hooks-slack/src/index.ts rename packages/{build-hooks => build-hooks-slack}/src/slackNotifier.ts (100%) create mode 100644 packages/build-hooks-slack/tsconfig.json create mode 100644 packages/build-hooks-vercel/LICENSE create mode 100644 packages/build-hooks-vercel/README.md create mode 100644 packages/build-hooks-vercel/package.json create mode 100644 packages/build-hooks-vercel/src/__tests__/sanity.test.ts create mode 100644 packages/build-hooks-vercel/src/index.ts rename packages/{build-hooks/src/deploy => build-hooks-vercel/src}/vercel.ts (100%) create mode 100644 packages/build-hooks-vercel/tsconfig.json delete mode 100644 packages/build-hooks-version/README.md delete mode 100644 packages/build-hooks/README.md delete mode 100644 packages/build-hooks/src/rnv.d.ts diff --git a/packages/build-hooks-version/LICENSE b/packages/build-hooks-drive/LICENSE similarity index 100% rename from packages/build-hooks-version/LICENSE rename to packages/build-hooks-drive/LICENSE diff --git a/packages/build-hooks-drive/README.md b/packages/build-hooks-drive/README.md new file mode 100644 index 0000000..76537ea --- /dev/null +++ b/packages/build-hooks-drive/README.md @@ -0,0 +1 @@ +# @flexn/build-hooks-drive diff --git a/packages/build-hooks/package.json b/packages/build-hooks-drive/package.json similarity index 77% rename from packages/build-hooks/package.json rename to packages/build-hooks-drive/package.json index 18cc92b..433c3f9 100644 --- a/packages/build-hooks/package.json +++ b/packages/build-hooks-drive/package.json @@ -1,7 +1,7 @@ { - "name": "@flexn/build-hooks", - "version": "0.30.0", - "description": "Flexn Build Hooks", + "name": "@flexn/build-hooks-drive", + "version": "0.1.0", + "description": "Flexn Build Hooks Version manager", "main": "lib/index", "types": "lib/index", "scripts": { @@ -16,7 +16,7 @@ "src" ], "repository": { - "directory": "packages/build-hooks", + "directory": "packages/build-hooks-drive", "type": "git", "url": "git+https://github.com/flexn-io/build-hooks.git" }, @@ -34,9 +34,6 @@ "rnv": "*" }, "dependencies": { - "lodash-es": "4.17.21", - "ts-object-utils": "0.0.5", - "isomorphic-unfetch": "^3.1.0", "googleapis": "39" } } diff --git a/packages/build-hooks-git/src/__tests__/sanityTest.ts b/packages/build-hooks-drive/src/__tests__/sanity.test.ts similarity index 83% rename from packages/build-hooks-git/src/__tests__/sanityTest.ts rename to packages/build-hooks-drive/src/__tests__/sanity.test.ts index 9e3aeda..8656417 100644 --- a/packages/build-hooks-git/src/__tests__/sanityTest.ts +++ b/packages/build-hooks-drive/src/__tests__/sanity.test.ts @@ -1,4 +1,4 @@ -describe('Test template', () => { +describe('Test', () => { beforeEach(() => { console.log('Testing'); }); diff --git a/packages/build-hooks/src/deploy/googleDrive.ts b/packages/build-hooks-drive/src/googleDrive.ts similarity index 100% rename from packages/build-hooks/src/deploy/googleDrive.ts rename to packages/build-hooks-drive/src/googleDrive.ts diff --git a/packages/build-hooks/src/index.ts b/packages/build-hooks-drive/src/index.ts similarity index 100% rename from packages/build-hooks/src/index.ts rename to packages/build-hooks-drive/src/index.ts diff --git a/packages/build-hooks-version/tsconfig.json b/packages/build-hooks-drive/tsconfig.json similarity index 100% rename from packages/build-hooks-version/tsconfig.json rename to packages/build-hooks-drive/tsconfig.json diff --git a/packages/build-hooks/LICENSE b/packages/build-hooks-fastlane/LICENSE similarity index 100% rename from packages/build-hooks/LICENSE rename to packages/build-hooks-fastlane/LICENSE diff --git a/packages/build-hooks-fastlane/README.md b/packages/build-hooks-fastlane/README.md new file mode 100644 index 0000000..a70b88b --- /dev/null +++ b/packages/build-hooks-fastlane/README.md @@ -0,0 +1 @@ +# @flexn/build-hooks-fastlane diff --git a/packages/build-hooks-fastlane/package.json b/packages/build-hooks-fastlane/package.json new file mode 100644 index 0000000..db10081 --- /dev/null +++ b/packages/build-hooks-fastlane/package.json @@ -0,0 +1,39 @@ +{ + "name": "@flexn/build-hooks-fastlane", + "version": "0.1.0", + "description": "Flexn Build Hooks Version manager", + "main": "lib/index", + "types": "lib/index", + "scripts": { + "watch": "tsc --watch --preserveWatchOutput", + "build": "yarn clean && yarn compile", + "clean": "rm -rf ./lib && rm -rf tsconfig.tsbuildinfo", + "compile": "tsc -b tsconfig.json" + }, + "files": [ + "lib", + "LICENSE", + "src" + ], + "repository": { + "directory": "packages/build-hooks-fastlane", + "type": "git", + "url": "git+https://github.com/flexn-io/build-hooks.git" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [], + "author": "Flexn", + "license": "MIT", + "bugs": { + "url": "https://github.com/flexn-io/build-hooks/issues" + }, + "homepage": "https://github.com/flexn-io/build-hooks#readme", + "peerDependencies": { + "rnv": "*" + }, + "dependencies": { + "deepmerge": "3.2.0" + } +} diff --git a/packages/build-hooks/src/__tests__/deployTest.ts b/packages/build-hooks-fastlane/src/__tests__/sanity.test.ts similarity index 83% rename from packages/build-hooks/src/__tests__/deployTest.ts rename to packages/build-hooks-fastlane/src/__tests__/sanity.test.ts index 9e3aeda..8656417 100644 --- a/packages/build-hooks/src/__tests__/deployTest.ts +++ b/packages/build-hooks-fastlane/src/__tests__/sanity.test.ts @@ -1,4 +1,4 @@ -describe('Test template', () => { +describe('Test', () => { beforeEach(() => { console.log('Testing'); }); diff --git a/packages/build-hooks/src/deploy/androidGooglePlay.ts b/packages/build-hooks-fastlane/src/androidGooglePlay.ts similarity index 100% rename from packages/build-hooks/src/deploy/androidGooglePlay.ts rename to packages/build-hooks-fastlane/src/androidGooglePlay.ts diff --git a/packages/build-hooks-fastlane/src/index.ts b/packages/build-hooks-fastlane/src/index.ts new file mode 100644 index 0000000..d8b9fe1 --- /dev/null +++ b/packages/build-hooks-fastlane/src/index.ts @@ -0,0 +1,9 @@ +export { androidFirebaseDeploy } from './deploy/androidFirebase'; +export { androidGPDeploy } from './deploy/androidGooglePlay'; +export { googleDriveDeploy } from './deploy/googleDrive'; +export { iosFirebaseDeploy } from './deploy/iosFirebase'; +export { iosTFDeploy } from './deploy/iosTestFlight'; +export { vercelDeploy } from './deploy/vercel'; +export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; +export { notifySlack } from './slackNotifier'; +export { setupSentrySecrets, uploadSentryMaps } from './sentry'; diff --git a/packages/build-hooks/src/deploy/iosTestFlight.ts b/packages/build-hooks-fastlane/src/iosTestFlight.ts similarity index 100% rename from packages/build-hooks/src/deploy/iosTestFlight.ts rename to packages/build-hooks-fastlane/src/iosTestFlight.ts diff --git a/packages/build-hooks/tsconfig.json b/packages/build-hooks-fastlane/tsconfig.json similarity index 100% rename from packages/build-hooks/tsconfig.json rename to packages/build-hooks-fastlane/tsconfig.json diff --git a/packages/build-hooks-firebase/LICENSE b/packages/build-hooks-firebase/LICENSE new file mode 100644 index 0000000..4c42bad --- /dev/null +++ b/packages/build-hooks-firebase/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 - present Flexn B.V. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/build-hooks-firebase/README.md b/packages/build-hooks-firebase/README.md new file mode 100644 index 0000000..b0cdcbb --- /dev/null +++ b/packages/build-hooks-firebase/README.md @@ -0,0 +1 @@ +# @flexn/build-hooks-firebase diff --git a/packages/build-hooks-firebase/package.json b/packages/build-hooks-firebase/package.json new file mode 100644 index 0000000..c312e23 --- /dev/null +++ b/packages/build-hooks-firebase/package.json @@ -0,0 +1,39 @@ +{ + "name": "@flexn/build-hooks-firebase", + "version": "0.1.0", + "description": "Flexn Build Hooks Version manager", + "main": "lib/index", + "types": "lib/index", + "scripts": { + "watch": "tsc --watch --preserveWatchOutput", + "build": "yarn clean && yarn compile", + "clean": "rm -rf ./lib && rm -rf tsconfig.tsbuildinfo", + "compile": "tsc -b tsconfig.json" + }, + "files": [ + "lib", + "LICENSE", + "src" + ], + "repository": { + "directory": "packages/build-hooks-firebase", + "type": "git", + "url": "git+https://github.com/flexn-io/build-hooks.git" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [], + "author": "Flexn", + "license": "MIT", + "bugs": { + "url": "https://github.com/flexn-io/build-hooks/issues" + }, + "homepage": "https://github.com/flexn-io/build-hooks#readme", + "peerDependencies": { + "rnv": "*" + }, + "dependencies": { + "deepmerge": "3.2.0" + } +} diff --git a/packages/build-hooks-version/src/__tests__/deployTest.ts b/packages/build-hooks-firebase/src/__tests__/sanity.test.ts similarity index 83% rename from packages/build-hooks-version/src/__tests__/deployTest.ts rename to packages/build-hooks-firebase/src/__tests__/sanity.test.ts index 9e3aeda..8656417 100644 --- a/packages/build-hooks-version/src/__tests__/deployTest.ts +++ b/packages/build-hooks-firebase/src/__tests__/sanity.test.ts @@ -1,4 +1,4 @@ -describe('Test template', () => { +describe('Test', () => { beforeEach(() => { console.log('Testing'); }); diff --git a/packages/build-hooks/src/deploy/androidFirebase.ts b/packages/build-hooks-firebase/src/androidFirebase.ts similarity index 100% rename from packages/build-hooks/src/deploy/androidFirebase.ts rename to packages/build-hooks-firebase/src/androidFirebase.ts diff --git a/packages/build-hooks-firebase/src/index.ts b/packages/build-hooks-firebase/src/index.ts new file mode 100644 index 0000000..d8b9fe1 --- /dev/null +++ b/packages/build-hooks-firebase/src/index.ts @@ -0,0 +1,9 @@ +export { androidFirebaseDeploy } from './deploy/androidFirebase'; +export { androidGPDeploy } from './deploy/androidGooglePlay'; +export { googleDriveDeploy } from './deploy/googleDrive'; +export { iosFirebaseDeploy } from './deploy/iosFirebase'; +export { iosTFDeploy } from './deploy/iosTestFlight'; +export { vercelDeploy } from './deploy/vercel'; +export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; +export { notifySlack } from './slackNotifier'; +export { setupSentrySecrets, uploadSentryMaps } from './sentry'; diff --git a/packages/build-hooks/src/deploy/iosFirebase.ts b/packages/build-hooks-firebase/src/iosFirebase.ts similarity index 100% rename from packages/build-hooks/src/deploy/iosFirebase.ts rename to packages/build-hooks-firebase/src/iosFirebase.ts diff --git a/packages/build-hooks-firebase/tsconfig.json b/packages/build-hooks-firebase/tsconfig.json new file mode 100644 index 0000000..0541d57 --- /dev/null +++ b/packages/build-hooks-firebase/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@flexn/typescript-config/tsconfig.lib.node.json", + "compilerOptions": { + "outDir": "./lib", + "rootDir": "./src" + } +} diff --git a/packages/build-hooks-git/package.json b/packages/build-hooks-git/package.json index d5b5de6..a5212e8 100644 --- a/packages/build-hooks-git/package.json +++ b/packages/build-hooks-git/package.json @@ -1,6 +1,6 @@ { "name": "@flexn/build-hooks-git", - "version": "0.30.0", + "version": "0.1.0", "description": "Flexn Build Hook for Git", "main": "lib/index", "types": "lib/index", diff --git a/packages/build-hooks-git/src/__tests__/sanity.test.ts b/packages/build-hooks-git/src/__tests__/sanity.test.ts new file mode 100644 index 0000000..8656417 --- /dev/null +++ b/packages/build-hooks-git/src/__tests__/sanity.test.ts @@ -0,0 +1,9 @@ +describe('Test', () => { + beforeEach(() => { + console.log('Testing'); + }); + it('init test', async () => { + const x = true; + expect(x).toEqual(true); + }); +}); diff --git a/packages/build-hooks-git/src/git.ts b/packages/build-hooks-git/src/git.ts new file mode 100644 index 0000000..02bc343 --- /dev/null +++ b/packages/build-hooks-git/src/git.ts @@ -0,0 +1,32 @@ +import path from 'path'; +import { Logger } from 'rnv'; +import simpleGit from 'simple-git'; + +export const gitCommit = async (c: any) => { + const v = c.files.project?.package?.version; + + const baseDir = path.join(c.paths.project.dir); + Logger.logHook(`gitCommitAndTagVersion v${v}`); + const git = simpleGit({ baseDir }); + Logger.logHook('adding files'); + await git.add(`${baseDir}/*`); + Logger.logHook('COMMITING...'); + await git.commit(v); + Logger.logHook('DONE'); +}; + +export const gitTag = async (c: any) => { + const v = c.files.project.package.version; + + const baseDir = path.join(c.paths.project.dir); + Logger.logHook(`gitTagAndPush v${v}`); + const git = simpleGit({ baseDir }); + await git.addTag(v); + return true; +}; + +export const gitCommitAndTag = async (c: any) => { + await gitCommit(c); + await gitTag(c); + return true; +}; diff --git a/packages/build-hooks-git/src/index.ts b/packages/build-hooks-git/src/index.ts index 02bc343..d8b9fe1 100644 --- a/packages/build-hooks-git/src/index.ts +++ b/packages/build-hooks-git/src/index.ts @@ -1,32 +1,9 @@ -import path from 'path'; -import { Logger } from 'rnv'; -import simpleGit from 'simple-git'; - -export const gitCommit = async (c: any) => { - const v = c.files.project?.package?.version; - - const baseDir = path.join(c.paths.project.dir); - Logger.logHook(`gitCommitAndTagVersion v${v}`); - const git = simpleGit({ baseDir }); - Logger.logHook('adding files'); - await git.add(`${baseDir}/*`); - Logger.logHook('COMMITING...'); - await git.commit(v); - Logger.logHook('DONE'); -}; - -export const gitTag = async (c: any) => { - const v = c.files.project.package.version; - - const baseDir = path.join(c.paths.project.dir); - Logger.logHook(`gitTagAndPush v${v}`); - const git = simpleGit({ baseDir }); - await git.addTag(v); - return true; -}; - -export const gitCommitAndTag = async (c: any) => { - await gitCommit(c); - await gitTag(c); - return true; -}; +export { androidFirebaseDeploy } from './deploy/androidFirebase'; +export { androidGPDeploy } from './deploy/androidGooglePlay'; +export { googleDriveDeploy } from './deploy/googleDrive'; +export { iosFirebaseDeploy } from './deploy/iosFirebase'; +export { iosTFDeploy } from './deploy/iosTestFlight'; +export { vercelDeploy } from './deploy/vercel'; +export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; +export { notifySlack } from './slackNotifier'; +export { setupSentrySecrets, uploadSentryMaps } from './sentry'; diff --git a/packages/build-hooks-monorepo/LICENSE b/packages/build-hooks-monorepo/LICENSE new file mode 100644 index 0000000..4c42bad --- /dev/null +++ b/packages/build-hooks-monorepo/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 - present Flexn B.V. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/build-hooks-monorepo/README.md b/packages/build-hooks-monorepo/README.md new file mode 100644 index 0000000..6cc2a76 --- /dev/null +++ b/packages/build-hooks-monorepo/README.md @@ -0,0 +1 @@ +# @flexn/build-hooks-monorepo diff --git a/packages/build-hooks-monorepo/package.json b/packages/build-hooks-monorepo/package.json new file mode 100644 index 0000000..08fb2d8 --- /dev/null +++ b/packages/build-hooks-monorepo/package.json @@ -0,0 +1,39 @@ +{ + "name": "@flexn/build-hooks-monorepo", + "version": "0.1.0", + "description": "Flexn Build Hooks Version manager", + "main": "lib/index", + "types": "lib/index", + "scripts": { + "watch": "tsc --watch --preserveWatchOutput", + "build": "yarn clean && yarn compile", + "clean": "rm -rf ./lib && rm -rf tsconfig.tsbuildinfo", + "compile": "tsc -b tsconfig.json" + }, + "files": [ + "lib", + "LICENSE", + "src" + ], + "repository": { + "directory": "packages/build-hooks-monorepo", + "type": "git", + "url": "git+https://github.com/flexn-io/build-hooks.git" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [], + "author": "Flexn", + "license": "MIT", + "bugs": { + "url": "https://github.com/flexn-io/build-hooks/issues" + }, + "homepage": "https://github.com/flexn-io/build-hooks#readme", + "peerDependencies": { + "rnv": "*" + }, + "dependencies": { + "deepmerge": "3.2.0" + } +} diff --git a/packages/build-hooks-monorepo/src/__tests__/sanity.test.ts b/packages/build-hooks-monorepo/src/__tests__/sanity.test.ts new file mode 100644 index 0000000..8656417 --- /dev/null +++ b/packages/build-hooks-monorepo/src/__tests__/sanity.test.ts @@ -0,0 +1,9 @@ +describe('Test', () => { + beforeEach(() => { + console.log('Testing'); + }); + it('init test', async () => { + const x = true; + expect(x).toEqual(true); + }); +}); diff --git a/packages/build-hooks-version/src/index.ts b/packages/build-hooks-monorepo/src/index.ts similarity index 100% rename from packages/build-hooks-version/src/index.ts rename to packages/build-hooks-monorepo/src/index.ts diff --git a/packages/build-hooks-monorepo/src/parseRenativeProjects.ts b/packages/build-hooks-monorepo/src/parseRenativeProjects.ts new file mode 100644 index 0000000..a4d0c62 --- /dev/null +++ b/packages/build-hooks-monorepo/src/parseRenativeProjects.ts @@ -0,0 +1,67 @@ +import path from 'path'; +import fs from 'fs'; +import { FileUtils } from 'rnv'; +const { readObjectSync } = FileUtils; + +const parseRenativeProject = (dirPath: string) => { + const conf: any = {}; + + if (fs.statSync(dirPath).isDirectory()) { + const _pkgPath = path.join(dirPath, 'package.json'); + if (fs.existsSync(_pkgPath)) { + conf.pkgFile = readObjectSync(_pkgPath); + conf.pkgPath = _pkgPath; + conf.pkgName = conf.pkgFile.name; + } + const _rnvPath = path.join(dirPath, 'renative.json'); + if (fs.existsSync(_rnvPath)) { + conf.rnvPath = _rnvPath; + conf.rnvFile = readObjectSync(_rnvPath); + } + const _metaPath = path.join(dirPath, 'metadata.json'); + if (fs.existsSync(_metaPath)) { + conf.metaPath = _metaPath; + conf.metaFile = readObjectSync(_metaPath); + } + const _plugTempPath = path.join(dirPath, '/pluginTemplates/renative.plugins.json'); + if (fs.existsSync(_plugTempPath)) { + conf.plugTempPath = _plugTempPath; + conf.plugTempFile = readObjectSync(_plugTempPath); + } + + const _templateConfigPath = path.join(dirPath, 'renative.template.json'); + if (fs.existsSync(_templateConfigPath)) { + conf.templateConfigPath = _templateConfigPath; + conf.templateConfigFile = readObjectSync(_templateConfigPath); + } + } + return conf; +}; + +export const parseRenativeProjects = (packagesDirs: string[], projectDirs?: string[]) => { + const packageNamesAll: any = []; + const packageConfigs: any = {}; + + packagesDirs.forEach((pkgDirPath) => { + const dirs = fs.readdirSync(pkgDirPath); + + dirs.forEach((dir) => { + const conf = parseRenativeProject(path.join(pkgDirPath, dir)); + packageConfigs[conf.pkgName] = conf; + packageNamesAll.push(conf.pkgName); + }); + }); + if (projectDirs) { + projectDirs.forEach((projectDir) => { + const conf = parseRenativeProject(projectDir); + packageConfigs[conf.pkgName] = conf; + packageNamesAll.push(conf.pkgName); + }); + } + + // return { + // packageNamesAsArray: packageNamesAll, + // configs: packageConfigs, + // }; + return packageConfigs; +}; diff --git a/packages/build-hooks-monorepo/src/patchJsonFile.ts b/packages/build-hooks-monorepo/src/patchJsonFile.ts new file mode 100644 index 0000000..2fa8a02 --- /dev/null +++ b/packages/build-hooks-monorepo/src/patchJsonFile.ts @@ -0,0 +1,17 @@ +import { Doctor, FileUtils } from 'rnv'; +import merge from 'deepmerge'; + +export const patchJsonFile = (pPath: string, updateObj: object) => { + const pObj = FileUtils.readObjectSync(pPath); + + if (!pObj) { + throw new Error(`patchJsonFile called with unresolveable package.json path '${pPath}'`); + } + + let obj; + if (pObj) { + obj = merge(pObj, updateObj); + } + const output = Doctor.fixPackageObject(obj); + FileUtils.writeFileSync(pPath, output, 4, true); +}; diff --git a/packages/build-hooks/src/prepare-nightly.ts b/packages/build-hooks-monorepo/src/prepareNightly.ts similarity index 100% rename from packages/build-hooks/src/prepare-nightly.ts rename to packages/build-hooks-monorepo/src/prepareNightly.ts diff --git a/packages/build-hooks-version/src/rnv.d.ts b/packages/build-hooks-monorepo/src/rnv.d.ts similarity index 100% rename from packages/build-hooks-version/src/rnv.d.ts rename to packages/build-hooks-monorepo/src/rnv.d.ts diff --git a/packages/build-hooks-monorepo/src/syncDependencies.ts b/packages/build-hooks-monorepo/src/syncDependencies.ts new file mode 100644 index 0000000..d81aaea --- /dev/null +++ b/packages/build-hooks-monorepo/src/syncDependencies.ts @@ -0,0 +1,44 @@ +import path from 'path'; +import fs from 'fs'; +import { Doctor, FileUtils } from 'rnv'; +const { readObjectSync } = FileUtils; + +export const syncDependencies = (pkgConfig, depKey, packageNamesAll, packageConfigs, semVer = '') => { + const { pkgFile, rnvFile } = pkgConfig; + + packageNamesAll.forEach((v) => { + if (pkgFile) { + let hasChanges = false; + const currVer = pkgFile?.[depKey]?.[v]; + if (currVer) { + const newVer = `${semVer}${packageConfigs[v].pkgFile?.version}`; + + if (currVer !== newVer) { + console.log('Found linked dependency to update:', v, currVer, newVer); + hasChanges = true; + pkgFile[depKey][v] = newVer; + } + } + if (hasChanges) { + const output = Doctor.fixPackageObject(pkgFile); + FileUtils.writeFileSync(pkgConfig.pkgPath, output, 4, true); + } + } + if (rnvFile) { + let hasRnvChanges = false; + const templateVer = rnvFile?.templates?.[v]?.version; + if (templateVer) { + const newVer = `${semVer}${packageConfigs[v].pkgFile?.version}`; + if (templateVer !== newVer) { + console.log('Found linked plugin dependency to update:', v, templateVer, newVer); + hasRnvChanges = true; + rnvFile.templates[v].version = newVer; + } + } + if (hasRnvChanges) { + const output = Doctor.fixPackageObject(rnvFile); + FileUtils.writeFileSync(pkgConfig.rnvPath, output, 4, true); + } + } + }); +}; diff --git a/packages/build-hooks-monorepo/src/syncPackageVersions.ts b/packages/build-hooks-monorepo/src/syncPackageVersions.ts new file mode 100644 index 0000000..0abc587 --- /dev/null +++ b/packages/build-hooks-monorepo/src/syncPackageVersions.ts @@ -0,0 +1,14 @@ +import path from 'path'; +import { updateJson } from './updateJson'; + +export const syncPackageVersions = (c: any, version: string, versionedPackages: Array) => { + const v = { + version: version, + }; + const pkgFolder = path.join(c.paths.project.dir, 'packages'); + updateJson(c.paths.project.package, v); + + versionedPackages.forEach((pkgName: string) => { + updateJson(path.join(pkgFolder, pkgName, 'package.json'), v); + }); +}; diff --git a/packages/build-hooks-version/src/versions.ts b/packages/build-hooks-monorepo/src/versions.ts similarity index 64% rename from packages/build-hooks-version/src/versions.ts rename to packages/build-hooks-monorepo/src/versions.ts index 5c39944..55ff7a9 100644 --- a/packages/build-hooks-version/src/versions.ts +++ b/packages/build-hooks-monorepo/src/versions.ts @@ -1,12 +1,9 @@ import path from 'path'; import fs from 'fs'; -import { Doctor, FileUtils, Logger, Exec } from 'rnv'; -import merge from 'deepmerge'; +import { Doctor, FileUtils, Exec } from 'rnv'; +import { parsePackages } from './parsePackages'; const { readObjectSync, writeFileSync } = FileUtils; -const { logHook } = Logger; - -const EXTERNAL_RNV_DEPENDENCIES = ['@flexn/plugins']; const updateDeps = ( pkgConfig: any, @@ -139,33 +136,6 @@ const updateTemplateConfigDeps = ( } }; -export const setPackageVersions = (c: any, version: string, versionedPackages: Array) => { - const v = { - version: version, - }; - const pkgFolder = path.join(c.paths.project.dir, 'packages'); - _updateJson(c.paths.project.package, v); - - versionedPackages.forEach((pkgName: string) => { - _updateJson(path.join(pkgFolder, pkgName, 'package.json'), v); - }); -}; - -const _updateJson = (pPath: string, updateObj: object) => { - const pObj = FileUtils.readObjectSync(pPath); - - if (!pObj) { - throw new Error(`_updateJson called with unresolveable package.json path '${pPath}'`); - } - - let obj; - if (pObj) { - obj = merge(pObj, updateObj); - } - const output = Doctor.fixPackageObject(obj); - FileUtils.writeFileSync(pPath, output, 4, true); -}; - const updateExternalDeps = (pkgConfig: any, externalDependenciesVersions: Record) => { const { templateConfigFile, templateConfigPath } = pkgConfig; if (templateConfigFile) { @@ -179,57 +149,9 @@ export const updateVersions = async (c: any) => { const pkgDirPath = path.join(c.paths.project.dir, 'packages'); const dirs = fs.readdirSync(pkgDirPath); - const packageNamesAll: any = []; - const packageConfigs: any = {}; const externalDependenciesVersions: any = {}; - if (EXTERNAL_RNV_DEPENDENCIES) { - // get latest versions for external dependencies - await Promise.all( - EXTERNAL_RNV_DEPENDENCIES.map(async (v) => { - const latestPkgVersion = JSON.parse(await Exec.executeAsync(`npm show ${v} versions --json`)).pop(); - externalDependenciesVersions[v] = latestPkgVersion; - }) - ); - } - - const parsePackages = (dirPath: string) => { - const conf: any = {}; - - if (fs.statSync(dirPath).isDirectory()) { - const _pkgPath = path.join(dirPath, 'package.json'); - if (fs.existsSync(_pkgPath)) { - conf.pkgFile = readObjectSync(_pkgPath); - conf.pkgPath = _pkgPath; - conf.pkgName = conf.pkgFile.name; - } - const _rnvPath = path.join(dirPath, 'renative.json'); - if (fs.existsSync(_rnvPath)) { - conf.rnvPath = _rnvPath; - conf.rnvFile = readObjectSync(_rnvPath); - } - const _metaPath = path.join(dirPath, 'metadata.json'); - if (fs.existsSync(_metaPath)) { - conf.metaPath = _metaPath; - conf.metaFile = readObjectSync(_metaPath); - } - const _plugTempPath = path.join(dirPath, '/pluginTemplates/renative.plugins.json'); - if (fs.existsSync(_plugTempPath)) { - conf.plugTempPath = _plugTempPath; - conf.plugTempFile = readObjectSync(_plugTempPath); - } - - const _templateConfigPath = path.join(dirPath, 'renative.template.json'); - if (fs.existsSync(_templateConfigPath)) { - conf.templateConfigPath = _templateConfigPath; - conf.templateConfigFile = readObjectSync(_templateConfigPath); - } - } - packageConfigs[conf.pkgName] = conf; - packageNamesAll.push(conf.pkgName); - }; - - parsePackages(c.paths.project.dir); + const pkgConfig = parsePackages(c.paths.project.dir); dirs.forEach((dir) => { parsePackages(path.join(pkgDirPath, dir)); @@ -245,9 +167,3 @@ export const updateVersions = async (c: any) => { updateExternalDeps(pkgConfig, externalDependenciesVersions); }); }; - -export const prePublish = async (c: any) => { - logHook('bump plugins'); - await updateVersions(c); - return true; -}; diff --git a/packages/build-hooks-monorepo/tsconfig.json b/packages/build-hooks-monorepo/tsconfig.json new file mode 100644 index 0000000..0541d57 --- /dev/null +++ b/packages/build-hooks-monorepo/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@flexn/typescript-config/tsconfig.lib.node.json", + "compilerOptions": { + "outDir": "./lib", + "rootDir": "./src" + } +} diff --git a/packages/build-hooks-sentry/LICENSE b/packages/build-hooks-sentry/LICENSE new file mode 100644 index 0000000..4c42bad --- /dev/null +++ b/packages/build-hooks-sentry/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 - present Flexn B.V. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/build-hooks-sentry/README.md b/packages/build-hooks-sentry/README.md new file mode 100644 index 0000000..f85c507 --- /dev/null +++ b/packages/build-hooks-sentry/README.md @@ -0,0 +1 @@ +# @flexn/build-hooks-sentry diff --git a/packages/build-hooks-version/package.json b/packages/build-hooks-sentry/package.json similarity index 88% rename from packages/build-hooks-version/package.json rename to packages/build-hooks-sentry/package.json index cb1b96f..89fec00 100644 --- a/packages/build-hooks-version/package.json +++ b/packages/build-hooks-sentry/package.json @@ -1,6 +1,6 @@ { - "name": "@flexn/build-hooks-version", - "version": "0.30.0", + "name": "@flexn/build-hooks-sentry", + "version": "0.1.0", "description": "Flexn Build Hooks Version manager", "main": "lib/index", "types": "lib/index", @@ -16,7 +16,7 @@ "src" ], "repository": { - "directory": "packages/build-hooks-version", + "directory": "packages/build-hooks-sentry", "type": "git", "url": "git+https://github.com/flexn-io/build-hooks.git" }, diff --git a/packages/build-hooks-sentry/src/__tests__/sanity.test.ts b/packages/build-hooks-sentry/src/__tests__/sanity.test.ts new file mode 100644 index 0000000..8656417 --- /dev/null +++ b/packages/build-hooks-sentry/src/__tests__/sanity.test.ts @@ -0,0 +1,9 @@ +describe('Test', () => { + beforeEach(() => { + console.log('Testing'); + }); + it('init test', async () => { + const x = true; + expect(x).toEqual(true); + }); +}); diff --git a/packages/build-hooks-sentry/src/index.ts b/packages/build-hooks-sentry/src/index.ts new file mode 100644 index 0000000..d8b9fe1 --- /dev/null +++ b/packages/build-hooks-sentry/src/index.ts @@ -0,0 +1,9 @@ +export { androidFirebaseDeploy } from './deploy/androidFirebase'; +export { androidGPDeploy } from './deploy/androidGooglePlay'; +export { googleDriveDeploy } from './deploy/googleDrive'; +export { iosFirebaseDeploy } from './deploy/iosFirebase'; +export { iosTFDeploy } from './deploy/iosTestFlight'; +export { vercelDeploy } from './deploy/vercel'; +export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; +export { notifySlack } from './slackNotifier'; +export { setupSentrySecrets, uploadSentryMaps } from './sentry'; diff --git a/packages/build-hooks/src/sentry.ts b/packages/build-hooks-sentry/src/sentry.ts similarity index 100% rename from packages/build-hooks/src/sentry.ts rename to packages/build-hooks-sentry/src/sentry.ts diff --git a/packages/build-hooks-sentry/tsconfig.json b/packages/build-hooks-sentry/tsconfig.json new file mode 100644 index 0000000..0541d57 --- /dev/null +++ b/packages/build-hooks-sentry/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@flexn/typescript-config/tsconfig.lib.node.json", + "compilerOptions": { + "outDir": "./lib", + "rootDir": "./src" + } +} diff --git a/packages/build-hooks-slack/LICENSE b/packages/build-hooks-slack/LICENSE new file mode 100644 index 0000000..4c42bad --- /dev/null +++ b/packages/build-hooks-slack/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 - present Flexn B.V. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/build-hooks-slack/README.md b/packages/build-hooks-slack/README.md new file mode 100644 index 0000000..13d45e5 --- /dev/null +++ b/packages/build-hooks-slack/README.md @@ -0,0 +1 @@ +# @flexn/build-hooks-vercel diff --git a/packages/build-hooks-slack/package.json b/packages/build-hooks-slack/package.json new file mode 100644 index 0000000..22109a6 --- /dev/null +++ b/packages/build-hooks-slack/package.json @@ -0,0 +1,39 @@ +{ + "name": "@flexn/build-hooks-vercel", + "version": "0.1.0", + "description": "Flexn Build Hooks Version manager", + "main": "lib/index", + "types": "lib/index", + "scripts": { + "watch": "tsc --watch --preserveWatchOutput", + "build": "yarn clean && yarn compile", + "clean": "rm -rf ./lib && rm -rf tsconfig.tsbuildinfo", + "compile": "tsc -b tsconfig.json" + }, + "files": [ + "lib", + "LICENSE", + "src" + ], + "repository": { + "directory": "packages/build-hooks-vercel", + "type": "git", + "url": "git+https://github.com/flexn-io/build-hooks.git" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [], + "author": "Flexn", + "license": "MIT", + "bugs": { + "url": "https://github.com/flexn-io/build-hooks/issues" + }, + "homepage": "https://github.com/flexn-io/build-hooks#readme", + "peerDependencies": { + "rnv": "*" + }, + "dependencies": { + "isomorphic-unfetch": "^3.1.0" + } +} diff --git a/packages/build-hooks-slack/src/__tests__/sanity.test.ts b/packages/build-hooks-slack/src/__tests__/sanity.test.ts new file mode 100644 index 0000000..8656417 --- /dev/null +++ b/packages/build-hooks-slack/src/__tests__/sanity.test.ts @@ -0,0 +1,9 @@ +describe('Test', () => { + beforeEach(() => { + console.log('Testing'); + }); + it('init test', async () => { + const x = true; + expect(x).toEqual(true); + }); +}); diff --git a/packages/build-hooks-slack/src/index.ts b/packages/build-hooks-slack/src/index.ts new file mode 100644 index 0000000..d8b9fe1 --- /dev/null +++ b/packages/build-hooks-slack/src/index.ts @@ -0,0 +1,9 @@ +export { androidFirebaseDeploy } from './deploy/androidFirebase'; +export { androidGPDeploy } from './deploy/androidGooglePlay'; +export { googleDriveDeploy } from './deploy/googleDrive'; +export { iosFirebaseDeploy } from './deploy/iosFirebase'; +export { iosTFDeploy } from './deploy/iosTestFlight'; +export { vercelDeploy } from './deploy/vercel'; +export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; +export { notifySlack } from './slackNotifier'; +export { setupSentrySecrets, uploadSentryMaps } from './sentry'; diff --git a/packages/build-hooks/src/slackNotifier.ts b/packages/build-hooks-slack/src/slackNotifier.ts similarity index 100% rename from packages/build-hooks/src/slackNotifier.ts rename to packages/build-hooks-slack/src/slackNotifier.ts diff --git a/packages/build-hooks-slack/tsconfig.json b/packages/build-hooks-slack/tsconfig.json new file mode 100644 index 0000000..0541d57 --- /dev/null +++ b/packages/build-hooks-slack/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@flexn/typescript-config/tsconfig.lib.node.json", + "compilerOptions": { + "outDir": "./lib", + "rootDir": "./src" + } +} diff --git a/packages/build-hooks-vercel/LICENSE b/packages/build-hooks-vercel/LICENSE new file mode 100644 index 0000000..4c42bad --- /dev/null +++ b/packages/build-hooks-vercel/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 - present Flexn B.V. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/build-hooks-vercel/README.md b/packages/build-hooks-vercel/README.md new file mode 100644 index 0000000..13d45e5 --- /dev/null +++ b/packages/build-hooks-vercel/README.md @@ -0,0 +1 @@ +# @flexn/build-hooks-vercel diff --git a/packages/build-hooks-vercel/package.json b/packages/build-hooks-vercel/package.json new file mode 100644 index 0000000..0e2cff3 --- /dev/null +++ b/packages/build-hooks-vercel/package.json @@ -0,0 +1,39 @@ +{ + "name": "@flexn/build-hooks-vercel", + "version": "0.1.0", + "description": "Flexn Build Hooks Version manager", + "main": "lib/index", + "types": "lib/index", + "scripts": { + "watch": "tsc --watch --preserveWatchOutput", + "build": "yarn clean && yarn compile", + "clean": "rm -rf ./lib && rm -rf tsconfig.tsbuildinfo", + "compile": "tsc -b tsconfig.json" + }, + "files": [ + "lib", + "LICENSE", + "src" + ], + "repository": { + "directory": "packages/build-hooks-vercel", + "type": "git", + "url": "git+https://github.com/flexn-io/build-hooks.git" + }, + "publishConfig": { + "access": "public" + }, + "keywords": [], + "author": "Flexn", + "license": "MIT", + "bugs": { + "url": "https://github.com/flexn-io/build-hooks/issues" + }, + "homepage": "https://github.com/flexn-io/build-hooks#readme", + "peerDependencies": { + "rnv": "*" + }, + "dependencies": { + "deepmerge": "3.2.0" + } +} diff --git a/packages/build-hooks-vercel/src/__tests__/sanity.test.ts b/packages/build-hooks-vercel/src/__tests__/sanity.test.ts new file mode 100644 index 0000000..8656417 --- /dev/null +++ b/packages/build-hooks-vercel/src/__tests__/sanity.test.ts @@ -0,0 +1,9 @@ +describe('Test', () => { + beforeEach(() => { + console.log('Testing'); + }); + it('init test', async () => { + const x = true; + expect(x).toEqual(true); + }); +}); diff --git a/packages/build-hooks-vercel/src/index.ts b/packages/build-hooks-vercel/src/index.ts new file mode 100644 index 0000000..d8b9fe1 --- /dev/null +++ b/packages/build-hooks-vercel/src/index.ts @@ -0,0 +1,9 @@ +export { androidFirebaseDeploy } from './deploy/androidFirebase'; +export { androidGPDeploy } from './deploy/androidGooglePlay'; +export { googleDriveDeploy } from './deploy/googleDrive'; +export { iosFirebaseDeploy } from './deploy/iosFirebase'; +export { iosTFDeploy } from './deploy/iosTestFlight'; +export { vercelDeploy } from './deploy/vercel'; +export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; +export { notifySlack } from './slackNotifier'; +export { setupSentrySecrets, uploadSentryMaps } from './sentry'; diff --git a/packages/build-hooks/src/deploy/vercel.ts b/packages/build-hooks-vercel/src/vercel.ts similarity index 100% rename from packages/build-hooks/src/deploy/vercel.ts rename to packages/build-hooks-vercel/src/vercel.ts diff --git a/packages/build-hooks-vercel/tsconfig.json b/packages/build-hooks-vercel/tsconfig.json new file mode 100644 index 0000000..0541d57 --- /dev/null +++ b/packages/build-hooks-vercel/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@flexn/typescript-config/tsconfig.lib.node.json", + "compilerOptions": { + "outDir": "./lib", + "rootDir": "./src" + } +} diff --git a/packages/build-hooks-version/README.md b/packages/build-hooks-version/README.md deleted file mode 100644 index 7b190dd..0000000 --- a/packages/build-hooks-version/README.md +++ /dev/null @@ -1 +0,0 @@ -# @flexn/build-hooks-version diff --git a/packages/build-hooks/README.md b/packages/build-hooks/README.md deleted file mode 100644 index ed178db..0000000 --- a/packages/build-hooks/README.md +++ /dev/null @@ -1 +0,0 @@ -# @flexn/build-hooks diff --git a/packages/build-hooks/src/rnv.d.ts b/packages/build-hooks/src/rnv.d.ts deleted file mode 100644 index 84d26f8..0000000 --- a/packages/build-hooks/src/rnv.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'rnv'; From 925ea997177e6c3883a9b323eccc67ed3a1e5ffe Mon Sep 17 00:00:00 2001 From: Pavel Jacko Date: Mon, 3 Jul 2023 09:04:05 +0200 Subject: [PATCH 3/5] api refactoring --- packages/build-hooks-drive/src/index.ts | 10 +- packages/build-hooks-drive/src/rnv.d.ts | 1 + packages/build-hooks-fastlane/src/index.ts | 11 +- packages/build-hooks-fastlane/src/rnv.d.ts | 1 + packages/build-hooks-firebase/src/index.ts | 11 +- packages/build-hooks-firebase/src/rnv.d.ts | 1 + packages/build-hooks-git/src/index.ts | 10 +- packages/build-hooks-git/src/rnv.d.ts | 1 + packages/build-hooks-monorepo/src/index.ts | 4 + .../{parseRenativeProjects.ts => parser.ts} | 29 +++-- .../src/{patchJsonFile.ts => patcher.ts} | 0 .../src/syncDependencies.ts | 44 -------- .../src/syncPackageVersions.ts | 14 --- .../build-hooks-monorepo/src/synchronizer.ts | 102 ++++++++++++++++++ packages/build-hooks-monorepo/src/types.ts | 20 ++++ packages/build-hooks-sentry/src/index.ts | 8 -- packages/build-hooks-sentry/src/rnv.d.ts | 1 + packages/build-hooks-slack/src/index.ts | 8 -- packages/build-hooks-slack/src/rnv.d.ts | 1 + packages/build-hooks-vercel/src/index.ts | 10 +- packages/build-hooks-vercel/src/rnv.d.ts | 1 + 21 files changed, 158 insertions(+), 130 deletions(-) create mode 100644 packages/build-hooks-drive/src/rnv.d.ts create mode 100644 packages/build-hooks-fastlane/src/rnv.d.ts create mode 100644 packages/build-hooks-firebase/src/rnv.d.ts create mode 100644 packages/build-hooks-git/src/rnv.d.ts rename packages/build-hooks-monorepo/src/{parseRenativeProjects.ts => parser.ts} (71%) rename packages/build-hooks-monorepo/src/{patchJsonFile.ts => patcher.ts} (100%) delete mode 100644 packages/build-hooks-monorepo/src/syncDependencies.ts delete mode 100644 packages/build-hooks-monorepo/src/syncPackageVersions.ts create mode 100644 packages/build-hooks-monorepo/src/synchronizer.ts create mode 100644 packages/build-hooks-monorepo/src/types.ts create mode 100644 packages/build-hooks-sentry/src/rnv.d.ts create mode 100644 packages/build-hooks-slack/src/rnv.d.ts create mode 100644 packages/build-hooks-vercel/src/rnv.d.ts diff --git a/packages/build-hooks-drive/src/index.ts b/packages/build-hooks-drive/src/index.ts index d8b9fe1..3250bca 100644 --- a/packages/build-hooks-drive/src/index.ts +++ b/packages/build-hooks-drive/src/index.ts @@ -1,9 +1 @@ -export { androidFirebaseDeploy } from './deploy/androidFirebase'; -export { androidGPDeploy } from './deploy/androidGooglePlay'; -export { googleDriveDeploy } from './deploy/googleDrive'; -export { iosFirebaseDeploy } from './deploy/iosFirebase'; -export { iosTFDeploy } from './deploy/iosTestFlight'; -export { vercelDeploy } from './deploy/vercel'; -export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; -export { notifySlack } from './slackNotifier'; -export { setupSentrySecrets, uploadSentryMaps } from './sentry'; +export * from './googleDrive'; diff --git a/packages/build-hooks-drive/src/rnv.d.ts b/packages/build-hooks-drive/src/rnv.d.ts new file mode 100644 index 0000000..84d26f8 --- /dev/null +++ b/packages/build-hooks-drive/src/rnv.d.ts @@ -0,0 +1 @@ +declare module 'rnv'; diff --git a/packages/build-hooks-fastlane/src/index.ts b/packages/build-hooks-fastlane/src/index.ts index d8b9fe1..47f21a2 100644 --- a/packages/build-hooks-fastlane/src/index.ts +++ b/packages/build-hooks-fastlane/src/index.ts @@ -1,9 +1,2 @@ -export { androidFirebaseDeploy } from './deploy/androidFirebase'; -export { androidGPDeploy } from './deploy/androidGooglePlay'; -export { googleDriveDeploy } from './deploy/googleDrive'; -export { iosFirebaseDeploy } from './deploy/iosFirebase'; -export { iosTFDeploy } from './deploy/iosTestFlight'; -export { vercelDeploy } from './deploy/vercel'; -export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; -export { notifySlack } from './slackNotifier'; -export { setupSentrySecrets, uploadSentryMaps } from './sentry'; +export * from './androidGooglePlay'; +export * from './iosTestFlight'; diff --git a/packages/build-hooks-fastlane/src/rnv.d.ts b/packages/build-hooks-fastlane/src/rnv.d.ts new file mode 100644 index 0000000..84d26f8 --- /dev/null +++ b/packages/build-hooks-fastlane/src/rnv.d.ts @@ -0,0 +1 @@ +declare module 'rnv'; diff --git a/packages/build-hooks-firebase/src/index.ts b/packages/build-hooks-firebase/src/index.ts index d8b9fe1..70aef75 100644 --- a/packages/build-hooks-firebase/src/index.ts +++ b/packages/build-hooks-firebase/src/index.ts @@ -1,9 +1,2 @@ -export { androidFirebaseDeploy } from './deploy/androidFirebase'; -export { androidGPDeploy } from './deploy/androidGooglePlay'; -export { googleDriveDeploy } from './deploy/googleDrive'; -export { iosFirebaseDeploy } from './deploy/iosFirebase'; -export { iosTFDeploy } from './deploy/iosTestFlight'; -export { vercelDeploy } from './deploy/vercel'; -export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; -export { notifySlack } from './slackNotifier'; -export { setupSentrySecrets, uploadSentryMaps } from './sentry'; +export * from './androidFirebase'; +export * from './iosFirebase'; diff --git a/packages/build-hooks-firebase/src/rnv.d.ts b/packages/build-hooks-firebase/src/rnv.d.ts new file mode 100644 index 0000000..84d26f8 --- /dev/null +++ b/packages/build-hooks-firebase/src/rnv.d.ts @@ -0,0 +1 @@ +declare module 'rnv'; diff --git a/packages/build-hooks-git/src/index.ts b/packages/build-hooks-git/src/index.ts index d8b9fe1..6c038b4 100644 --- a/packages/build-hooks-git/src/index.ts +++ b/packages/build-hooks-git/src/index.ts @@ -1,9 +1 @@ -export { androidFirebaseDeploy } from './deploy/androidFirebase'; -export { androidGPDeploy } from './deploy/androidGooglePlay'; -export { googleDriveDeploy } from './deploy/googleDrive'; -export { iosFirebaseDeploy } from './deploy/iosFirebase'; -export { iosTFDeploy } from './deploy/iosTestFlight'; -export { vercelDeploy } from './deploy/vercel'; -export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; -export { notifySlack } from './slackNotifier'; -export { setupSentrySecrets, uploadSentryMaps } from './sentry'; +export * from './git'; diff --git a/packages/build-hooks-git/src/rnv.d.ts b/packages/build-hooks-git/src/rnv.d.ts new file mode 100644 index 0000000..84d26f8 --- /dev/null +++ b/packages/build-hooks-git/src/rnv.d.ts @@ -0,0 +1 @@ +declare module 'rnv'; diff --git a/packages/build-hooks-monorepo/src/index.ts b/packages/build-hooks-monorepo/src/index.ts index 3910512..1f7a295 100644 --- a/packages/build-hooks-monorepo/src/index.ts +++ b/packages/build-hooks-monorepo/src/index.ts @@ -1 +1,5 @@ +// export * from './versions'; +export * from './parser'; +export * from './patcher'; +export * from './synchronizer'; export * from './versions'; diff --git a/packages/build-hooks-monorepo/src/parseRenativeProjects.ts b/packages/build-hooks-monorepo/src/parser.ts similarity index 71% rename from packages/build-hooks-monorepo/src/parseRenativeProjects.ts rename to packages/build-hooks-monorepo/src/parser.ts index a4d0c62..baf3d12 100644 --- a/packages/build-hooks-monorepo/src/parseRenativeProjects.ts +++ b/packages/build-hooks-monorepo/src/parser.ts @@ -1,17 +1,18 @@ import path from 'path'; import fs from 'fs'; import { FileUtils } from 'rnv'; +import { MonoPackageConfig, MonorepoConfig } from './types'; const { readObjectSync } = FileUtils; -const parseRenativeProject = (dirPath: string) => { - const conf: any = {}; +const parseRenativeProject = (dirPath: string): MonoPackageConfig => { + const conf: MonoPackageConfig = {}; if (fs.statSync(dirPath).isDirectory()) { const _pkgPath = path.join(dirPath, 'package.json'); if (fs.existsSync(_pkgPath)) { conf.pkgFile = readObjectSync(_pkgPath); conf.pkgPath = _pkgPath; - conf.pkgName = conf.pkgFile.name; + conf.pkgName = conf.pkgFile?.name; } const _rnvPath = path.join(dirPath, 'renative.json'); if (fs.existsSync(_rnvPath)) { @@ -38,24 +39,30 @@ const parseRenativeProject = (dirPath: string) => { return conf; }; -export const parseRenativeProjects = (packagesDirs: string[], projectDirs?: string[]) => { - const packageNamesAll: any = []; - const packageConfigs: any = {}; +export const parseMonorepo = (packagesDirs: string[], projectDirs?: string[]): MonorepoConfig => { + // const packageNamesAll: any = []; + const monoConfig: MonorepoConfig = {}; packagesDirs.forEach((pkgDirPath) => { const dirs = fs.readdirSync(pkgDirPath); dirs.forEach((dir) => { const conf = parseRenativeProject(path.join(pkgDirPath, dir)); - packageConfigs[conf.pkgName] = conf; - packageNamesAll.push(conf.pkgName); + if (conf.pkgName) { + monoConfig[conf.pkgName] = conf; + } + + // packageNamesAll.push(conf.pkgName); }); }); if (projectDirs) { projectDirs.forEach((projectDir) => { const conf = parseRenativeProject(projectDir); - packageConfigs[conf.pkgName] = conf; - packageNamesAll.push(conf.pkgName); + if (conf.pkgName) { + monoConfig[conf.pkgName] = conf; + } + + // packageNamesAll.push(conf.pkgName); }); } @@ -63,5 +70,5 @@ export const parseRenativeProjects = (packagesDirs: string[], projectDirs?: stri // packageNamesAsArray: packageNamesAll, // configs: packageConfigs, // }; - return packageConfigs; + return monoConfig; }; diff --git a/packages/build-hooks-monorepo/src/patchJsonFile.ts b/packages/build-hooks-monorepo/src/patcher.ts similarity index 100% rename from packages/build-hooks-monorepo/src/patchJsonFile.ts rename to packages/build-hooks-monorepo/src/patcher.ts diff --git a/packages/build-hooks-monorepo/src/syncDependencies.ts b/packages/build-hooks-monorepo/src/syncDependencies.ts deleted file mode 100644 index d81aaea..0000000 --- a/packages/build-hooks-monorepo/src/syncDependencies.ts +++ /dev/null @@ -1,44 +0,0 @@ -import path from 'path'; -import fs from 'fs'; -import { Doctor, FileUtils } from 'rnv'; -const { readObjectSync } = FileUtils; - -export const syncDependencies = (pkgConfig, depKey, packageNamesAll, packageConfigs, semVer = '') => { - const { pkgFile, rnvFile } = pkgConfig; - - packageNamesAll.forEach((v) => { - if (pkgFile) { - let hasChanges = false; - const currVer = pkgFile?.[depKey]?.[v]; - if (currVer) { - const newVer = `${semVer}${packageConfigs[v].pkgFile?.version}`; - - if (currVer !== newVer) { - console.log('Found linked dependency to update:', v, currVer, newVer); - hasChanges = true; - pkgFile[depKey][v] = newVer; - } - } - if (hasChanges) { - const output = Doctor.fixPackageObject(pkgFile); - FileUtils.writeFileSync(pkgConfig.pkgPath, output, 4, true); - } - } - if (rnvFile) { - let hasRnvChanges = false; - const templateVer = rnvFile?.templates?.[v]?.version; - if (templateVer) { - const newVer = `${semVer}${packageConfigs[v].pkgFile?.version}`; - if (templateVer !== newVer) { - console.log('Found linked plugin dependency to update:', v, templateVer, newVer); - hasRnvChanges = true; - rnvFile.templates[v].version = newVer; - } - } - if (hasRnvChanges) { - const output = Doctor.fixPackageObject(rnvFile); - FileUtils.writeFileSync(pkgConfig.rnvPath, output, 4, true); - } - } - }); -}; diff --git a/packages/build-hooks-monorepo/src/syncPackageVersions.ts b/packages/build-hooks-monorepo/src/syncPackageVersions.ts deleted file mode 100644 index 0abc587..0000000 --- a/packages/build-hooks-monorepo/src/syncPackageVersions.ts +++ /dev/null @@ -1,14 +0,0 @@ -import path from 'path'; -import { updateJson } from './updateJson'; - -export const syncPackageVersions = (c: any, version: string, versionedPackages: Array) => { - const v = { - version: version, - }; - const pkgFolder = path.join(c.paths.project.dir, 'packages'); - updateJson(c.paths.project.package, v); - - versionedPackages.forEach((pkgName: string) => { - updateJson(path.join(pkgFolder, pkgName, 'package.json'), v); - }); -}; diff --git a/packages/build-hooks-monorepo/src/synchronizer.ts b/packages/build-hooks-monorepo/src/synchronizer.ts new file mode 100644 index 0000000..d111455 --- /dev/null +++ b/packages/build-hooks-monorepo/src/synchronizer.ts @@ -0,0 +1,102 @@ +import path from 'path'; +import { Doctor, FileUtils } from 'rnv'; +import { MonorepoConfig } from './types'; + +export const syncAllDependencies = (config: MonorepoConfig) => { + const monoConfigArr = Object.values(config); + + monoConfigArr.forEach((pkgConfig) => { + const { pkgFile, rnvFile } = pkgConfig; + + const semVer = ''; + monoConfigArr.forEach((pkgConfigIn) => { + const v = pkgConfigIn.pkgName; + if (pkgFile && v) { + let hasChanges = false; + const currVer = pkgFile?.[depKey]?.[v]; + if (currVer) { + const newVer = `${semVer}${packageConfigs[v].pkgFile?.version}`; + + if (currVer !== newVer) { + console.log('Found linked dependency to update:', v, currVer, newVer); + hasChanges = true; + pkgFile[depKey][v] = newVer; + } + } + if (hasChanges) { + const output = Doctor.fixPackageObject(pkgFile); + FileUtils.writeFileSync(pkgConfig.pkgPath, output, 4, true); + } + } + + const newVer = `${semVer}${packageConfigs[v].pkgFile?.version}`; + + if (rnvFile) { + let hasRnvChanges = false; + const templateVer = rnvFile?.templates?.[v]?.version; + if (templateVer) { + const newVer = `${semVer}${packageConfigs[v].pkgFile?.version}`; + if (templateVer !== newVer) { + console.log('Found linked plugin dependency to update:', v, templateVer, newVer); + hasRnvChanges = true; + rnvFile.templates[v].version = newVer; + } + } + const rnvPlugin = rnvFile.plugins[v]; + if (rnvPlugin?.version) { + rnvPlugin.version = `${newVer}`; + hasRnvChanges = true; + } else if (rnvPlugin) { + if (!rnvPlugin.startsWith('source')) { + rnvFile.plugins[v] = newVer; + hasRnvChanges = true; + } + } + if (hasRnvChanges) { + const output = Doctor.fixPackageObject(rnvFile); + FileUtils.writeFileSync(pkgConfig.rnvPath, output, 4, true); + } + } + + if (metaFile) { + metaFile.version = pkgFile.version; + const output = Doctor.fixPackageObject(metaFile); + writeFileSync(metaPath, output); + } + + if (plugTempFile) { + let hasChanges = false; + const rnvPlugin = plugTempFile.pluginTemplates[v]; + if (rnvPlugin?.version) { + rnvPlugin.version = `${newVer}`; + hasChanges = true; + } else if (rnvPlugin) { + rnvFile.plugins[v] = newVer; + hasChanges = true; + } + + if (hasChanges) { + const output = Doctor.fixPackageObject(plugTempFile); + FileUtils.writeFileSync(plugTempPath, output, 4, true); + } + } + + if (templateConfigFile) { + // leaving it for future packages that would need it + updateTemplateConfigDeps(templateConfigFile, templateConfigPath, v, newVer); + } + }); + }); +}; + +export const overridePackageVersions = (c: any, version: string, versionedPackages: Array) => { + const v = { + version: version, + }; + const pkgFolder = path.join(c.paths.project.dir, 'packages'); + updateJson(c.paths.project.package, v); + + versionedPackages.forEach((pkgName: string) => { + updateJson(path.join(pkgFolder, pkgName, 'package.json'), v); + }); +}; diff --git a/packages/build-hooks-monorepo/src/types.ts b/packages/build-hooks-monorepo/src/types.ts new file mode 100644 index 0000000..2ce5e43 --- /dev/null +++ b/packages/build-hooks-monorepo/src/types.ts @@ -0,0 +1,20 @@ +export type MonoPackageConfig = { + pkgName?: string; + + pkgFile?: any; + pkgPath?: string; + + rnvFile?: any; + rnvPath?: string; + + metaFile?: any; + metaPath?: string; + + plugTempFile?: any; + plugTempPath?: string; + + templateConfigFile?: any; + templateConfigPath?: string; +}; + +export type MonorepoConfig = Record; diff --git a/packages/build-hooks-sentry/src/index.ts b/packages/build-hooks-sentry/src/index.ts index d8b9fe1..95a9464 100644 --- a/packages/build-hooks-sentry/src/index.ts +++ b/packages/build-hooks-sentry/src/index.ts @@ -1,9 +1 @@ -export { androidFirebaseDeploy } from './deploy/androidFirebase'; -export { androidGPDeploy } from './deploy/androidGooglePlay'; -export { googleDriveDeploy } from './deploy/googleDrive'; -export { iosFirebaseDeploy } from './deploy/iosFirebase'; -export { iosTFDeploy } from './deploy/iosTestFlight'; -export { vercelDeploy } from './deploy/vercel'; -export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; -export { notifySlack } from './slackNotifier'; export { setupSentrySecrets, uploadSentryMaps } from './sentry'; diff --git a/packages/build-hooks-sentry/src/rnv.d.ts b/packages/build-hooks-sentry/src/rnv.d.ts new file mode 100644 index 0000000..84d26f8 --- /dev/null +++ b/packages/build-hooks-sentry/src/rnv.d.ts @@ -0,0 +1 @@ +declare module 'rnv'; diff --git a/packages/build-hooks-slack/src/index.ts b/packages/build-hooks-slack/src/index.ts index d8b9fe1..5508a32 100644 --- a/packages/build-hooks-slack/src/index.ts +++ b/packages/build-hooks-slack/src/index.ts @@ -1,9 +1 @@ -export { androidFirebaseDeploy } from './deploy/androidFirebase'; -export { androidGPDeploy } from './deploy/androidGooglePlay'; -export { googleDriveDeploy } from './deploy/googleDrive'; -export { iosFirebaseDeploy } from './deploy/iosFirebase'; -export { iosTFDeploy } from './deploy/iosTestFlight'; -export { vercelDeploy } from './deploy/vercel'; -export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; export { notifySlack } from './slackNotifier'; -export { setupSentrySecrets, uploadSentryMaps } from './sentry'; diff --git a/packages/build-hooks-slack/src/rnv.d.ts b/packages/build-hooks-slack/src/rnv.d.ts new file mode 100644 index 0000000..84d26f8 --- /dev/null +++ b/packages/build-hooks-slack/src/rnv.d.ts @@ -0,0 +1 @@ +declare module 'rnv'; diff --git a/packages/build-hooks-vercel/src/index.ts b/packages/build-hooks-vercel/src/index.ts index d8b9fe1..fe3b9d6 100644 --- a/packages/build-hooks-vercel/src/index.ts +++ b/packages/build-hooks-vercel/src/index.ts @@ -1,9 +1 @@ -export { androidFirebaseDeploy } from './deploy/androidFirebase'; -export { androidGPDeploy } from './deploy/androidGooglePlay'; -export { googleDriveDeploy } from './deploy/googleDrive'; -export { iosFirebaseDeploy } from './deploy/iosFirebase'; -export { iosTFDeploy } from './deploy/iosTestFlight'; -export { vercelDeploy } from './deploy/vercel'; -export { prepareNightlyBuild, cleanupPostNightly } from './prepare-nightly'; -export { notifySlack } from './slackNotifier'; -export { setupSentrySecrets, uploadSentryMaps } from './sentry'; +export * from './vercel'; diff --git a/packages/build-hooks-vercel/src/rnv.d.ts b/packages/build-hooks-vercel/src/rnv.d.ts new file mode 100644 index 0000000..84d26f8 --- /dev/null +++ b/packages/build-hooks-vercel/src/rnv.d.ts @@ -0,0 +1 @@ +declare module 'rnv'; From 1a11bd5f1ecafd99e4bec9721cc13ddd7a0313cc Mon Sep 17 00:00:00 2001 From: Pavel Jacko Date: Sat, 16 Sep 2023 09:14:47 +0200 Subject: [PATCH 4/5] pathdep --- packages/build-hooks-monorepo/src/synchronizer.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/build-hooks-monorepo/src/synchronizer.ts b/packages/build-hooks-monorepo/src/synchronizer.ts index d111455..5b793b0 100644 --- a/packages/build-hooks-monorepo/src/synchronizer.ts +++ b/packages/build-hooks-monorepo/src/synchronizer.ts @@ -2,6 +2,21 @@ import path from 'path'; import { Doctor, FileUtils } from 'rnv'; import { MonorepoConfig } from './types'; +const patchDependency = (newVer, depKey, pkgFile, semVer) => { + let hasChanges = false; + const currVer = pkgFile?.[depKey]?.[v]; + if (currVer) { + const newVer = `${semVer}${packageConfigs[v].pkgFile?.version}`; + + if (currVer !== newVer) { + console.log('Found linked dependency to update:', v, currVer, newVer); + hasChanges = true; + pkgFile[depKey][v] = newVer; + } + } + return hasChanges; +}; + export const syncAllDependencies = (config: MonorepoConfig) => { const monoConfigArr = Object.values(config); From dd40fc67d6f6b868f3915044d21a616d9f094491 Mon Sep 17 00:00:00 2001 From: Pavel Jacko Date: Sat, 16 Sep 2023 09:53:23 +0200 Subject: [PATCH 5/5] security patch --- packages/build-hooks-git/package.json | 2 +- packages/build-hooks-slack/README.md | 2 +- packages/build-hooks-slack/package.json | 2 +- yarn.lock | 27 ++++--------------------- 4 files changed, 7 insertions(+), 26 deletions(-) diff --git a/packages/build-hooks-git/package.json b/packages/build-hooks-git/package.json index a5212e8..5d2f04c 100644 --- a/packages/build-hooks-git/package.json +++ b/packages/build-hooks-git/package.json @@ -34,6 +34,6 @@ "rnv": "*" }, "dependencies": { - "simple-git": "3.12.0" + "simple-git": "^3.16.0" } } diff --git a/packages/build-hooks-slack/README.md b/packages/build-hooks-slack/README.md index 13d45e5..96d93a6 100644 --- a/packages/build-hooks-slack/README.md +++ b/packages/build-hooks-slack/README.md @@ -1 +1 @@ -# @flexn/build-hooks-vercel +# @flexn/build-hooks-slack diff --git a/packages/build-hooks-slack/package.json b/packages/build-hooks-slack/package.json index 22109a6..eeaf9e0 100644 --- a/packages/build-hooks-slack/package.json +++ b/packages/build-hooks-slack/package.json @@ -1,5 +1,5 @@ { - "name": "@flexn/build-hooks-vercel", + "name": "@flexn/build-hooks-slack", "version": "0.1.0", "description": "Flexn Build Hooks Version manager", "main": "lib/index", diff --git a/yarn.lock b/yarn.lock index ebc1887..f6b3222 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6224,11 +6224,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash-es@4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -8275,19 +8270,10 @@ sigstore@^1.0.0, sigstore@^1.3.0, sigstore@^1.4.0: "@sigstore/tuf" "^1.0.3" make-fetch-happen "^11.0.1" -simple-git@2.48.0: - version "2.48.0" - resolved "https://registry.npmjs.org/simple-git/-/simple-git-2.48.0.tgz#87c262dba8f84d7b96bb3a713e9e34701c1f6e3b" - integrity sha512-z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A== - dependencies: - "@kwsites/file-exists" "^1.1.1" - "@kwsites/promise-deferred" "^1.1.1" - debug "^4.3.2" - -simple-git@3.12.0: - version "3.12.0" - resolved "https://registry.npmjs.org/simple-git/-/simple-git-3.12.0.tgz#12fa8e762d8d9629fb1c72a0e2b4e6ae5b1f11e8" - integrity sha512-cy1RSRFHGZSrlYa3MnUuNVOXLUdifEZD2X8+AZjg8mKCdRvtCFSga6acq5N2g0ggb8lH3jBi369MrFZ+Y6sfsA== +simple-git@^3.16.0: + version "3.19.1" + resolved "https://registry.npmjs.org/simple-git/-/simple-git-3.19.1.tgz#ff9c021961a3d876a1b115b1893bed9a28855d30" + integrity sha512-Ck+rcjVaE1HotraRAS8u/+xgTvToTuoMkT9/l9lvuP5jftwnYUp6DwuJzsKErHgfyRk8IB8pqGHWEbM3tLgV1w== dependencies: "@kwsites/file-exists" "^1.1.1" "@kwsites/promise-deferred" "^1.1.1" @@ -8840,11 +8826,6 @@ trim-newlines@^3.0.0: resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -ts-object-utils@0.0.5: - version "0.0.5" - resolved "https://registry.npmjs.org/ts-object-utils/-/ts-object-utils-0.0.5.tgz#95361cdecd7e52167cfc5e634c76345e90a26077" - integrity sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA== - tsconfig-paths@^4.1.2: version "4.2.0" resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c"