From cc63eb8611d86d12b7a28a08b4ec33a658e4277e Mon Sep 17 00:00:00 2001 From: Tomasz Szuba Date: Tue, 13 Sep 2022 13:43:40 +0200 Subject: [PATCH] Sort entries in skeleton.tar.gz Signed-off-by: Tomasz Szuba --- .changeset/clever-rocks-train.md | 5 +++++ .../cli/src/lib/packager/createDistWorkspace.ts | 14 ++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 .changeset/clever-rocks-train.md diff --git a/.changeset/clever-rocks-train.md b/.changeset/clever-rocks-train.md new file mode 100644 index 0000000000..91d3964cdd --- /dev/null +++ b/.changeset/clever-rocks-train.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Sort entries in skeleton.tar.gz for better docker layer caching diff --git a/packages/cli/src/lib/packager/createDistWorkspace.ts b/packages/cli/src/lib/packager/createDistWorkspace.ts index 53e00ab6d9..5451a873f7 100644 --- a/packages/cli/src/lib/packager/createDistWorkspace.ts +++ b/packages/cli/src/lib/packager/createDistWorkspace.ts @@ -22,7 +22,7 @@ import { relative as relativePath, } from 'path'; import { tmpdir } from 'os'; -import tar, { CreateOptions } from 'tar'; +import tar, { CreateOptions, FileOptions } from 'tar'; import partition from 'lodash/partition'; import { paths } from '../paths'; import { run } from '../run'; @@ -214,10 +214,12 @@ export async function createDistWorkspace( } if (options.skeleton) { - const skeletonFiles = targets.map(target => { - const dir = relativePath(paths.targetRoot, target.dir); - return joinPath(dir, 'package.json'); - }); + const skeletonFiles = targets + .map(target => { + const dir = relativePath(paths.targetRoot, target.dir); + return joinPath(dir, 'package.json'); + }) + .sort(); await tar.create( { @@ -226,7 +228,7 @@ export async function createDistWorkspace( portable: true, noMtime: true, gzip: options.skeleton.endsWith('.gz'), - } as CreateOptions & { noMtime: boolean }, + } as CreateOptions & FileOptions & { noMtime: boolean }, skeletonFiles, ); }