diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index be34a9d2a4..39eb84fbfa 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -5,6 +5,7 @@ on: # The workflow will run once the release has been published (i.e. is not in draft state anymore) # and it will only run if it is not a pre-release. See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release types: [released] + workflow_dispatch: permissions: contents: read @@ -33,13 +34,13 @@ jobs: working-directory: ./core run: | CURRENT_CORE_VERSION="$(node -e "console.log(require('./package.json').version);")" - npm version "$CURRENT_CORE_VERSION-edge.$SHORT_SHA" - npm publish --tag edge + lerna version "$CURRENT_CORE_VERSION-edge.$SHORT_SHA" --no-git-tag-version --no-push --yes + lerna publish -from-package --dist-tag edge --yes - name: Publish stable version if normal release if: github.event.release.prerelease != true working-directory: ./core run: | - npm publish + lerna publish from-package --yes release-homebrew: uses: ./.github/workflows/reusable-create-homebrew-pr.yml diff --git a/cli/.gitignore b/cli/.gitignore new file mode 100644 index 0000000000..ecdef5b83e --- /dev/null +++ b/cli/.gitignore @@ -0,0 +1 @@ +static \ No newline at end of file diff --git a/cli/bin/garden b/cli/bin/garden index 9dce572c25..ec0f04c4c0 100755 --- a/cli/bin/garden +++ b/cli/bin/garden @@ -1,5 +1,23 @@ -#!/usr/bin/env node +#!/usr/bin/env node --max-old-space-size=4096 --max-semi-space-size=64 +const path = require('path'); +process.env.STATIC_DIR = path.join(__dirname, '..', 'static'); + +const fs = require('fs'); +const exec = require('child_process').exec; + +const gitDir = path.join(process.env.STATIC_DIR, '.git'); + +if (!fs.existsSync(gitDir)) { + exec(`git init ${process.env.STATIC_DIR}`, (error, stdout, stderr) => { + if (error) { + console.error(`Error: ${error.message}`); + } + if (stderr) { + console.error(`Stderr: ${stderr}`); + } + }); +} if (process.env.GARDEN_ENABLE_PROFILING === "1" || process.env.GARDEN_ENABLE_PROFILING === "true") { // Patch require to profile module loading diff --git a/cli/package.json b/cli/package.json index c92a386291..344ef282be 100644 --- a/cli/package.json +++ b/cli/package.json @@ -14,9 +14,11 @@ "npm": ">=8" }, "preferGlobal": true, - "private": true, + "private": false, "files": [ - "build" + "build", + "static", + "bin" ], "bin": { "garden": "bin/garden" @@ -50,7 +52,7 @@ }, "scripts": { "add-version-files": "node build/src/add-version-files.js", - "build": "tsc --build . --verbose && yarn run add-version-files && yarn run generate-docs", + "build": "shx cp -r ../static ./static && git init ./static && tsc --build . --verbose && yarn run add-version-files && yarn run generate-docs", "check-package-lock": "git diff-index --quiet HEAD -- yarn.lock || (echo 'yarn.lock is dirty!' && exit 1)", "clean": "shx rm -rf build dist", "fix-format": "prettier --write \"{src,test}/**/*.ts\"", @@ -66,10 +68,5 @@ "node_modules/@garden-io/**/*.js", "node_modules/es-get-iterator/**/*.js" ] - }, - "workspaces": { - "nohoist": [ - "pkg" - ] } -} \ No newline at end of file +} diff --git a/core/package.json b/core/package.json index 413355798b..5499c9f331 100644 --- a/core/package.json +++ b/core/package.json @@ -22,6 +22,7 @@ "access": "public" }, "main": "build/src/index.js", + "private": false, "types": "build/src/index.d.ts", "dependencies": { "@codenamize/codenamize": "^1.1.1", diff --git a/core/src/constants.ts b/core/src/constants.ts index 98a5d807f8..55d480cd82 100644 --- a/core/src/constants.ts +++ b/core/src/constants.ts @@ -18,7 +18,7 @@ export const defaultGitScanMode: GitScanMode = "subtree" export const GARDEN_CORE_ROOT = isPkg ? resolve(process.execPath, "..") : resolve(__dirname, "..", "..") export const GARDEN_CLI_ROOT = isPkg ? resolve(process.execPath, "..") : resolve(GARDEN_CORE_ROOT, "..", "cli") -export const STATIC_DIR = isPkg ? resolve(process.execPath, "..", "static") : resolve(GARDEN_CORE_ROOT, "..", "static") +export const STATIC_DIR = process.env.STATIC_DIR || (isPkg ? resolve(process.execPath, "..", "static") : resolve(GARDEN_CORE_ROOT, "..", "static")) export const DEFAULT_GARDEN_DIR_NAME = ".garden" export const MUTAGEN_DIR_NAME = "mutagen" export const LOGS_DIR_NAME = "logs" diff --git a/lerna.json b/lerna.json new file mode 100644 index 0000000000..ef17ef7b1a --- /dev/null +++ b/lerna.json @@ -0,0 +1,16 @@ +{ + "$schema": "node_modules/lerna/schemas/lerna-schema.json", + "version": "0.13.13", + "npmClient": "yarn", + "packages": [ + "cli", + "core", + "plugins/conftest", + "plugins/conftest-container", + "plugins/conftest-kubernetes", + "plugins/jib", + "plugins/pulumi", + "plugins/terraform", + "sdk" + ] +} \ No newline at end of file diff --git a/package.json b/package.json index f926c6ff31..143dce4371 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ "gulp": "^4.0.2", "handlebars": "^4.7.6", "husky": "^4.2.5", + "lerna": "^7.2.0", "lodash": "^4.17.21", "markdown-link-check": "^3.11.2", "minimatch": "^3.0.4", diff --git a/plugins/conftest-container/.npmignore b/plugins/conftest-container/.npmignore new file mode 100644 index 0000000000..6461deecd1 --- /dev/null +++ b/plugins/conftest-container/.npmignore @@ -0,0 +1 @@ +*.ts diff --git a/plugins/conftest-container/package.json b/plugins/conftest-container/package.json index c7768718ed..e9830df871 100644 --- a/plugins/conftest-container/package.json +++ b/plugins/conftest-container/package.json @@ -3,6 +3,7 @@ "version": "0.13.13", "description": "Auto-generator for the conftest plugin and Garden container modules", "main": "index.js", + "private": "false", "dependencies": { "@garden-io/core": "*", "@garden-io/garden-conftest": "*", diff --git a/plugins/conftest-kubernetes/.npmignore b/plugins/conftest-kubernetes/.npmignore new file mode 100644 index 0000000000..6461deecd1 --- /dev/null +++ b/plugins/conftest-kubernetes/.npmignore @@ -0,0 +1 @@ +*.ts diff --git a/plugins/conftest-kubernetes/package.json b/plugins/conftest-kubernetes/package.json index 3cb314ce98..7c3cc793dc 100644 --- a/plugins/conftest-kubernetes/package.json +++ b/plugins/conftest-kubernetes/package.json @@ -3,7 +3,7 @@ "version": "0.13.13", "description": "Auto-generator for the conftest plugin and Garden kubernetes/helm modules", "main": "index.js", - "private": true, + "private": false, "dependencies": { "@garden-io/core": "*", "@garden-io/garden-conftest": "*", diff --git a/plugins/conftest/.npmignore b/plugins/conftest/.npmignore new file mode 100644 index 0000000000..6461deecd1 --- /dev/null +++ b/plugins/conftest/.npmignore @@ -0,0 +1 @@ +*.ts diff --git a/plugins/conftest/package.json b/plugins/conftest/package.json index e3f350e0d8..31f0675db2 100644 --- a/plugins/conftest/package.json +++ b/plugins/conftest/package.json @@ -3,7 +3,7 @@ "version": "0.13.13", "description": "conftest plugin for Garden", "main": "index.js", - "private": true, + "private": false, "dependencies": { "@garden-io/core": "*", "@garden-io/sdk": "*", diff --git a/plugins/jib/.npmignore b/plugins/jib/.npmignore new file mode 100644 index 0000000000..6461deecd1 --- /dev/null +++ b/plugins/jib/.npmignore @@ -0,0 +1 @@ +*.ts diff --git a/plugins/jib/.prettierrc.json b/plugins/jib/.prettierrc.json deleted file mode 120000 index e69c69c2f4..0000000000 --- a/plugins/jib/.prettierrc.json +++ /dev/null @@ -1 +0,0 @@ -../../.prettierrc.json \ No newline at end of file diff --git a/plugins/jib/.prettierrc.json b/plugins/jib/.prettierrc.json new file mode 100644 index 0000000000..08733e557f --- /dev/null +++ b/plugins/jib/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "arrowParens": "always", + "printWidth": 120, + "quoteProps": "consistent", + "semi": false, + "trailingComma": "es5", + "tabWidth": 2 +} \ No newline at end of file diff --git a/plugins/jib/package.json b/plugins/jib/package.json index 6105f33ec0..f73a289867 100644 --- a/plugins/jib/package.json +++ b/plugins/jib/package.json @@ -3,6 +3,7 @@ "version": "0.13.13", "description": "Jib container plugin for Garden", "main": "index.js", + "private": false, "dependencies": { "@garden-io/core": "*", "@garden-io/sdk": "*", diff --git a/plugins/pulumi/.npmignore b/plugins/pulumi/.npmignore new file mode 100644 index 0000000000..6461deecd1 --- /dev/null +++ b/plugins/pulumi/.npmignore @@ -0,0 +1 @@ +*.ts diff --git a/plugins/pulumi/package.json b/plugins/pulumi/package.json index 55fda3ab05..7ca114903e 100644 --- a/plugins/pulumi/package.json +++ b/plugins/pulumi/package.json @@ -3,6 +3,7 @@ "version": "0.13.13", "description": "Pulumi plugin for Garden", "main": "index.js", + "private": false, "dependencies": { "@garden-io/core": "*", "@garden-io/sdk": "*", diff --git a/plugins/terraform/.npmignore b/plugins/terraform/.npmignore new file mode 100644 index 0000000000..6461deecd1 --- /dev/null +++ b/plugins/terraform/.npmignore @@ -0,0 +1 @@ +*.ts diff --git a/plugins/terraform/package.json b/plugins/terraform/package.json index 63b8d27155..155c9cafea 100644 --- a/plugins/terraform/package.json +++ b/plugins/terraform/package.json @@ -3,6 +3,7 @@ "version": "0.13.13", "description": "Terraform plugin for Garden", "main": "index.js", + "private": false, "dependencies": { "@garden-io/core": "*", "@garden-io/sdk": "*", diff --git a/sdk/.prettierrc.json b/sdk/.prettierrc.json deleted file mode 120000 index 0e9207b846..0000000000 --- a/sdk/.prettierrc.json +++ /dev/null @@ -1 +0,0 @@ -../.prettierrc.json \ No newline at end of file diff --git a/sdk/.prettierrc.json b/sdk/.prettierrc.json new file mode 100644 index 0000000000..08733e557f --- /dev/null +++ b/sdk/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "arrowParens": "always", + "printWidth": 120, + "quoteProps": "consistent", + "semi": false, + "trailingComma": "es5", + "tabWidth": 2 +} \ No newline at end of file diff --git a/sdk/package.json b/sdk/package.json index f21eb29911..9635cf67be 100644 --- a/sdk/package.json +++ b/sdk/package.json @@ -14,10 +14,7 @@ "npm": ">=8" }, "preferGlobal": true, - "private": true, - "files": [ - "build" - ], + "private": false, "main": "index.js", "dependencies": { "@garden-io/core": "*", diff --git a/support/alpine.Dockerfile b/support/alpine.Dockerfile index 646897735b..947160e3a1 100644 --- a/support/alpine.Dockerfile +++ b/support/alpine.Dockerfile @@ -99,6 +99,7 @@ COPY --chown=$USER:root --from=aws-builder /usr/bin/aws-iam-authenticator /usr/b # # gcloud base # + FROM google/cloud-sdk:445.0.0-alpine@sha256:0e934ffbe78ccceafe352b137d5ae442e2cb57ceda2d5c1c655af51aff53d158 as gcloud-base RUN gcloud components install kubectl gke-gcloud-auth-plugin --quiet