From 4f79204c47ac22aac0d116278364ef412b9e6467 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Mar 2022 10:55:44 +0100 Subject: [PATCH 1/4] plugins: migrate airbrake-backend and code-climate to package roles Signed-off-by: Patrik Oldsberg --- .changeset/proud-readers-nail.md | 6 ++++++ plugins/airbrake-backend/package.json | 17 ++++++++++------- plugins/code-climate/package.json | 17 ++++++++++------- 3 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 .changeset/proud-readers-nail.md diff --git a/.changeset/proud-readers-nail.md b/.changeset/proud-readers-nail.md new file mode 100644 index 0000000000..9b5a6b980c --- /dev/null +++ b/.changeset/proud-readers-nail.md @@ -0,0 +1,6 @@ +--- +'@backstage/plugin-airbrake-backend': patch +'@backstage/plugin-code-climate': patch +--- + +Added `backstage.role` to `package.json` diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index 831578dd9e..c086a822ae 100644 --- a/plugins/airbrake-backend/package.json +++ b/plugins/airbrake-backend/package.json @@ -9,14 +9,17 @@ "main": "dist/index.cjs.js", "types": "dist/index.d.ts" }, + "backstage": { + "role": "backend-plugin" + }, "scripts": { - "start": "backstage-cli backend:dev", - "build": "backstage-cli backend:build", - "lint": "backstage-cli lint", - "test": "backstage-cli test", - "prepack": "backstage-cli prepack", - "postpack": "backstage-cli postpack", - "clean": "backstage-cli clean" + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "clean": "backstage-cli package clean" }, "dependencies": { "@backstage/backend-common": "^0.12.0", diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 567ec6b4b1..b5a82d727a 100644 --- a/plugins/code-climate/package.json +++ b/plugins/code-climate/package.json @@ -9,15 +9,18 @@ "main": "dist/index.esm.js", "types": "dist/index.d.ts" }, + "backstage": { + "role": "frontend-plugin" + }, "scripts": { - "build": "backstage-cli plugin:build", - "start": "backstage-cli plugin:serve", - "lint": "backstage-cli lint", - "test": "backstage-cli test", + "build": "backstage-cli package build", + "start": "backstage-cli package start", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", "diff": "backstage-cli plugin:diff", - "prepack": "backstage-cli prepack", - "postpack": "backstage-cli postpack", - "clean": "backstage-cli clean" + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "clean": "backstage-cli package clean" }, "dependencies": { "@backstage/catalog-model": "^0.12.0", From 2d9cfec088a4d9b9399b36c399a78e8fe8804247 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Mar 2022 13:09:10 +0100 Subject: [PATCH 2/4] root: update scripts to use repo commands Signed-off-by: Patrik Oldsberg --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e9101c2280..b9a9a0f33c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dev": "concurrently \"yarn start\" \"yarn start-backend\"", "start": "yarn workspace example-app start", "start-backend": "yarn workspace example-backend start", - "build": "lerna run build", + "build": "backstage-cli repo build --all", "build:api-reports": "yarn build:api-reports:only --tsc", "build:api-reports:only": "ts-node -T -P scripts/tsconfig.json scripts/api-extractor.ts", "build:api-docs": "yarn build:api-reports --docs", @@ -18,9 +18,9 @@ "diff": "lerna run diff --", "test": "backstage-cli test", "test:all": "lerna run test -- --coverage", - "lint": "lerna run lint --since origin/master --", + "lint": "backstage-cli repo lint --since origin/master", "lint:docs": "node ./scripts/check-docs-quality", - "lint:all": "lerna run lint --", + "lint:all": "backstage-cli repo lint", "lint:type-deps": "node scripts/check-type-dependencies.js", "docker-build": "yarn tsc && yarn workspace example-backend build --build-dependencies && yarn workspace example-backend build-image", "backstage-create": "backstage-cli create --scope backstage --no-private", From de1e46c9b6f40b2757aa02165fe89f8bfe33e306 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Mar 2022 13:09:37 +0100 Subject: [PATCH 3/4] workflows: switch to using repo commands Signed-off-by: Patrik Oldsberg --- .github/workflows/ci.yml | 6 +++--- .github/workflows/deploy_nightly.yml | 2 +- .github/workflows/deploy_packages.yml | 10 +++++++--- .github/workflows/verify_e2e-linux.yml | 3 +-- .github/workflows/verify_e2e-windows.yml | 3 +-- .github/workflows/verify_windows.yml | 2 +- 6 files changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 49c97bb197..1f0c6e7602 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,7 +119,7 @@ jobs: run: yarn backstage-cli config:check --lax - name: lint - run: yarn lerna -- run lint --since origin/master + run: yarn backstage-cli repo lint --since origin/master - name: type checking and declarations run: yarn tsc:full @@ -139,11 +139,11 @@ jobs: - name: build changed packages if: ${{ steps.yarn-lock.outcome == 'success' }} - run: yarn lerna -- run build --since origin/master --include-dependencies + run: yarn backstage-cli repo build --all --since origin/master - name: build all packages if: ${{ steps.yarn-lock.outcome == 'failure' }} - run: yarn lerna -- run build + run: yarn backstage-cli repo build --all - name: verify type dependencies run: yarn lint:type-deps diff --git a/.github/workflows/deploy_nightly.yml b/.github/workflows/deploy_nightly.yml index 4997668563..ab4c9bcfdb 100644 --- a/.github/workflows/deploy_nightly.yml +++ b/.github/workflows/deploy_nightly.yml @@ -56,7 +56,7 @@ jobs: run: yarn tsc - name: build - run: yarn build + run: yarn backstage-cli repo build # Prepares a nightly release version of any package with pending changesets # Pre-mode is exited if case we're in it, otherwise it has no effect diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index 9b7a233767..fd9ed216be 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -102,13 +102,13 @@ jobs: run: yarn backstage-cli config:check --lax - name: lint - run: yarn lerna -- run lint + run: yarn backstage-cli repo lint - name: type checking and declarations run: yarn tsc:full - name: build - run: yarn build + run: yarn backstage-cli repo build --all - name: verify type dependencies run: yarn lint:type-deps @@ -188,7 +188,11 @@ jobs: run: yarn tsc:full - name: build packages - run: yarn lerna -- run --ignore example-app --ignore example-backend build + run: yarn backstage-cli repo build + + - name: build embedded techdocs app + working-directory: packages/techdocs-cli-embedded-app + run: yarn build # Publishes current version of packages that are not already present in the registry - name: publish diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml index 3e39aee1ae..e333aaba0c 100644 --- a/.github/workflows/verify_e2e-linux.yml +++ b/.github/workflows/verify_e2e-linux.yml @@ -71,8 +71,7 @@ jobs: # End of yarn setup - run: yarn tsc - - name: yarn build - run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli + - run: yarn backstage-cli repo build - name: run E2E test run: | sudo sysctl fs.inotify.max_user_watches=524288 diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index 0977831d19..bc6bc8a698 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -50,8 +50,7 @@ jobs: run: yarn install --frozen-lockfile - run: yarn tsc - - name: yarn build - run: yarn build --ignore example-app --ignore example-backend --ignore @techdocs/cli + - run: yarn backstage-cli repo build - name: run E2E test run: yarn e2e-test run env: diff --git a/.github/workflows/verify_windows.yml b/.github/workflows/verify_windows.yml index 9ae4397bba..5326e293d3 100644 --- a/.github/workflows/verify_windows.yml +++ b/.github/workflows/verify_windows.yml @@ -47,7 +47,7 @@ jobs: # End of yarn setup - name: lint - run: yarn lerna -- run lint + run: yarn backstage-cli repo lint - name: type checking and declarations run: yarn tsc:full From dc6002a7b93481c9cc6cee3ec82cef6d6a56c8be Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 5 Mar 2022 17:23:11 +0100 Subject: [PATCH 4/4] cli: fall back --since diff to use ref if merge base lookup fails Signed-off-by: Patrik Oldsberg --- .changeset/warm-bananas-behave.md | 5 +++++ packages/cli/src/lib/git.ts | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 .changeset/warm-bananas-behave.md diff --git a/.changeset/warm-bananas-behave.md b/.changeset/warm-bananas-behave.md new file mode 100644 index 0000000000..b1b6b4c8ec --- /dev/null +++ b/.changeset/warm-bananas-behave.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +The `--since` flag of repo commands now silently falls back to using the provided `ref` directly if no merge base is available. diff --git a/packages/cli/src/lib/git.ts b/packages/cli/src/lib/git.ts index f8783804d1..074260b38f 100644 --- a/packages/cli/src/lib/git.ts +++ b/packages/cli/src/lib/git.ts @@ -50,9 +50,16 @@ export async function listChangedFiles(ref: string) { if (!ref) { throw new Error('ref is required'); } - const [base] = await runGit('merge-base', 'HEAD', ref); - const tracked = await runGit('diff', '--name-only', base); + let diffRef = ref; + try { + const [base] = await runGit('merge-base', 'HEAD', ref); + diffRef = base; + } catch { + // silently fall back to using the ref directly if merge base is not available + } + + const tracked = await runGit('diff', '--name-only', diffRef); const untracked = await runGit('ls-files', '--others', '--exclude-standard'); return Array.from(new Set([...tracked, ...untracked]));