diff --git a/.github/workflows/budibase_ci.yml b/.github/workflows/budibase_ci.yml index 6c875f2dfe..00b7c608a8 100644 --- a/.github/workflows/budibase_ci.yml +++ b/.github/workflows/budibase_ci.yml @@ -1,5 +1,9 @@ name: Budibase CI +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + on: # Trigger the workflow on push or pull request, # but only for the master branch @@ -135,15 +139,39 @@ jobs: with: submodules: true token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }} - fetch-depth: 0 - - name: Check submodule + + - name: Check pro commit + id: get_pro_commits run: | cd packages/pro - git fetch - if ! git merge-base --is-ancestor $(git log -n 1 --pretty=format:%H) origin/develop; then - echo "Current commit has not been merged to develop" - echo "Refer to the pro repo to merge your changes: https://github.com/Budibase/budibase-pro/blob/develop/docs/getting_started.md" - exit 1 + pro_commit=$(git rev-parse HEAD) + + branch=${{ github.base_ref || github.ref_name }} + echo "Running on branch `$branch` (base_ref=${{ github.base_ref }}, ref_name=${{ github.head_ref }})" + + if [[ "$branch" == "master" ]]; then + base_commit=$(git rev-parse origin/master) else - echo "All good, the submodule had been merged!" + base_commit=$(git rev-parse origin/develop) fi + + echo "pro_commit=$pro_commit" + echo "pro_commit=$pro_commit" >> "$GITHUB_OUTPUT" + echo "base_commit=$base_commit" + echo "base_commit=$base_commit" >> "$GITHUB_OUTPUT" + + - name: Check submodule merged to develop + uses: actions/github-script@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const submoduleCommit = '${{ steps.get_pro_commits.outputs.pro_commit }}'; + const baseCommit = '${{ steps.get_pro_commits.outputs.base_commit }}'; + + if (submoduleCommit !== baseCommit) { + console.error('Submodule commit does not match the latest commit on the develop branch.'); + console.error('Refer to the pro repo to merge your changes: https://github.com/Budibase/budibase-pro/blob/develop/docs/getting_started.md') + process.exit(1); + } else { + console.log('All good, the submodule had been merged and setup correctly!') + } diff --git a/lerna.json b/lerna.json index 06ea327572..98b654c82f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,22 +1,8 @@ { "version": "2.7.26-alpha.3", "npmClient": "yarn", + "packages": ["packages/*"], "useNx": true, - "packages": [ - "packages/backend-core", - "packages/bbui", - "packages/builder", - "packages/cli", - "packages/client", - "packages/frontend-core", - "packages/sdk", - "packages/server", - "packages/shared-core", - "packages/string-templates", - "packages/types", - "packages/worker", - "packages/pro/packages/pro" - ], "command": { "publish": { "ignoreChanges": [ @@ -31,4 +17,4 @@ "loadEnvFiles": false } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index d2084c7ac6..b521030caf 100644 --- a/package.json +++ b/package.json @@ -95,19 +95,7 @@ }, "workspaces": { "packages": [ - "packages/backend-core", - "packages/bbui", - "packages/builder", - "packages/cli", - "packages/client", - "packages/frontend-core", - "packages/sdk", - "packages/server", - "packages/shared-core", - "packages/string-templates", - "packages/types", - "packages/worker", - "packages/pro/packages/pro" + "packages/*" ] }, "resolutions": { diff --git a/packages/pro b/packages/pro index f4b8449aac..2c9172685c 160000 --- a/packages/pro +++ b/packages/pro @@ -1 +1 @@ -Subproject commit f4b8449aac9bd265214396afbdce7ff984a2ae34 +Subproject commit 2c9172685cdceef03172bea779e94cb52ff6d1de diff --git a/packages/server/jest.config.ts b/packages/server/jest.config.ts index a7710d1e33..71cc526f36 100644 --- a/packages/server/jest.config.ts +++ b/packages/server/jest.config.ts @@ -21,9 +21,8 @@ const baseConfig: Config.InitialProjectOptions = { } // add pro sources if they exist -if (fs.existsSync("../pro/packages")) { - baseConfig.moduleNameMapper!["@budibase/pro"] = - "/../pro/packages/pro/src" +if (fs.existsSync("../pro/src")) { + baseConfig.moduleNameMapper!["@budibase/pro"] = "/../pro/src" } const config: Config.InitialOptions = { diff --git a/packages/server/nodemon.json b/packages/server/nodemon.json index 35bb61abf5..7956ad161b 100644 --- a/packages/server/nodemon.json +++ b/packages/server/nodemon.json @@ -1,5 +1,5 @@ { - "watch": ["src", "../backend-core", "../pro/packages/pro"], + "watch": ["src", "../backend-core", "../pro"], "ext": "js,ts,json", "ignore": [ "src/**/*.spec.ts", diff --git a/packages/server/tsconfig.build.json b/packages/server/tsconfig.build.json index 355b7ed6da..4e509bd14e 100644 --- a/packages/server/tsconfig.build.json +++ b/packages/server/tsconfig.build.json @@ -17,7 +17,7 @@ "@budibase/backend-core": ["../backend-core/src"], "@budibase/backend-core/*": ["../backend-core/*"], "@budibase/shared-core": ["../shared-core/src"], - "@budibase/pro": ["../pro/packages/pro/src"] + "@budibase/pro": ["../pro/src"] } }, "include": ["src/**/*"], diff --git a/packages/worker/jest.config.ts b/packages/worker/jest.config.ts index 49b6c5d425..1cbf22c22a 100644 --- a/packages/worker/jest.config.ts +++ b/packages/worker/jest.config.ts @@ -21,11 +21,9 @@ const config: Config.InitialOptions = { } // add pro sources if they exist -if (fs.existsSync("../pro/packages")) { - config.moduleNameMapper!["@budibase/pro/(.*)"] = - "/../pro/packages/pro/$1" - config.moduleNameMapper!["@budibase/pro"] = - "/../pro/packages/pro/src" +if (fs.existsSync("../pro/src")) { + config.moduleNameMapper!["@budibase/pro/(.*)"] = "/../pro/$1" + config.moduleNameMapper!["@budibase/pro"] = "/../pro/src" } export default config diff --git a/packages/worker/nodemon.json b/packages/worker/nodemon.json index d92cfe22b5..9585d85af5 100644 --- a/packages/worker/nodemon.json +++ b/packages/worker/nodemon.json @@ -1,5 +1,5 @@ { - "watch": ["src", "../backend-core", "../pro/packages/pro"], + "watch": ["src", "../backend-core", "../pro"], "ext": "js,ts,json", "ignore": [ "src/**/*.spec.ts", diff --git a/packages/worker/tsconfig.build.json b/packages/worker/tsconfig.build.json index 59e4bf7d8a..bc477abe4d 100644 --- a/packages/worker/tsconfig.build.json +++ b/packages/worker/tsconfig.build.json @@ -16,7 +16,7 @@ "@budibase/backend-core": ["../backend-core/src"], "@budibase/backend-core/*": ["../backend-core/*"], "@budibase/shared-core": ["../shared-core/src"], - "@budibase/pro": ["../pro/packages/pro/src"] + "@budibase/pro": ["../pro/src"] } }, "include": ["src/**/*"], diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 9a0bc18a28..a5a4fc0108 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -1,4 +1,4 @@ -if [ -d "packages/pro/packages" ]; then +if [ -d "packages/pro/src" ]; then cd packages/pro yarn diff --git a/scripts/link-dependencies.sh b/scripts/link-dependencies.sh index 9b85f9895d..ed42f29b4a 100755 --- a/scripts/link-dependencies.sh +++ b/scripts/link-dependencies.sh @@ -34,7 +34,7 @@ yarn unlink yarn link cd - -if [ -d packages/pro/packages ]; then +if [ -d packages/pro/src ]; then pro_loaded_locally=true else pro_loaded_locally=false @@ -42,7 +42,7 @@ fi if [ $pro_loaded_locally = true ]; then echo "Linking pro" - cd packages/pro/packages/pro + cd packages/pro yarn unlink yarn link cd - diff --git a/scripts/syncProPackage.js b/scripts/syncProPackage.js index bbbe33f44b..5ea49142ee 100755 --- a/scripts/syncProPackage.js +++ b/scripts/syncProPackage.js @@ -3,7 +3,7 @@ const path = require("path") const { execSync } = require("child_process") let version = "0.0.0" -const localPro = fs.existsSync("packages/pro/packages") +const localPro = fs.existsSync("packages/pro/src") if (!localPro) { const branchName = execSync("git rev-parse --abbrev-ref HEAD") .toString() diff --git a/yarn.lock b/yarn.lock index 970702d430..44b9e2b340 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13523,6 +13523,11 @@ humanize-ms@^1.2.0, humanize-ms@^1.2.1: dependencies: ms "^2.0.0" +husky@^7.0.1: + version "7.0.4" + resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" + integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== + husky@^8.0.3: version "8.0.3" resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184"