From aff5d94b4f7e24d11fbd044a86bf2aa8a3233214 Mon Sep 17 00:00:00 2001 From: Jamie Tanna <jamie@jamietanna.co.uk> Date: Sat, 31 Aug 2024 10:31:38 +0100 Subject: [PATCH] refactor(buildkite): remove fixtures (#31134) --- .../buildkite/__fixtures__/pipeline1.yml | 3 - .../buildkite/__fixtures__/pipeline2.yml | 17 --- .../buildkite/__fixtures__/pipeline3.yml | 16 --- .../buildkite/__fixtures__/pipeline4.yml | 14 --- .../buildkite/__fixtures__/pipeline5.yml | 6 - .../buildkite/__fixtures__/pipeline6.yml | 4 - .../buildkite/__fixtures__/pipeline7.yml | 8 -- .../buildkite/__fixtures__/pipeline8.yml | 4 - .../buildkite/__fixtures__/pipeline9.yml | 4 - lib/modules/manager/buildkite/extract.spec.ts | 106 ++++++++++++++++-- 10 files changed, 96 insertions(+), 86 deletions(-) delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline1.yml delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline2.yml delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline3.yml delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline4.yml delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline5.yml delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline6.yml delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline7.yml delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline8.yml delete mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline9.yml diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline1.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline1.yml deleted file mode 100644 index c3876cbf02..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline1.yml +++ /dev/null @@ -1,3 +0,0 @@ -steps: - - plugins: - abc/detect-clowns#v2.0.0: ~ diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline2.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline2.yml deleted file mode 100644 index 8f2a0c8898..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline2.yml +++ /dev/null @@ -1,17 +0,0 @@ -steps: - # Prebuild the app image, upload it to a registry for later steps - - name: "Docker Build" - plugins: - docker-compose#v1.3.2: # Comment at the end.... - build: app - image-repository: index.docker.io/org/repo - - - wait - - # Use the app image built above to run concurrent tests - - name: "Docker Test %n" - command: test.sh - parallelism: 25 - plugins: - docker-compose#v1.3.2: - run: app diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline3.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline3.yml deleted file mode 100644 index fe34280996..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline3.yml +++ /dev/null @@ -1,16 +0,0 @@ -steps: - # Prebuild the app image, upload it to a registry for later steps - - name: "Docker Build" - plugins: - namespace/docker-compose#v1.3.2.5: - build: app - image-repository: index.docker.io/org/repo - - - wait - - - name: "wrong" - command: test.sh - parallelism: 25 - plugins: - github.com/buildkite/plugin-docker-compose#v1.3.2: - run: app diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline4.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline4.yml deleted file mode 100644 index 5399edbce3..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline4.yml +++ /dev/null @@ -1,14 +0,0 @@ -steps: - - plugins: - - docker-login#v2.0.1: - username: xyz - - docker-compose#v2.5.1: - build: app - image-repository: index.docker.io/myorg/myrepo - - wait - - command: test.sh - plugins: - - docker-login#v2.0.1: - username: xyz - - docker-compose#v2.5.1: - run: app diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline5.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline5.yml deleted file mode 100644 index c8876504a0..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline5.yml +++ /dev/null @@ -1,6 +0,0 @@ -steps: - - plugins: - - ssh://git@github.company.com/some-org/some-plugin#v3.2.7: - username: abc - - https://github.company.com/some-third-org/some-third-plugin#v0.0.1: - build: app diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline6.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline6.yml deleted file mode 100644 index d5a14955c7..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline6.yml +++ /dev/null @@ -1,4 +0,0 @@ -steps: - - plugins: - - ssh://git@github.company.com/some-org/some-plugin.git#v3.2.7: - username: abc diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline7.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline7.yml deleted file mode 100644 index 45d64a2652..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline7.yml +++ /dev/null @@ -1,8 +0,0 @@ -.docker-options: &some-options - propagate-environment: true - copy-checkout: true - -.python3-container: &python3-container - ssh://git@github.some-domain.com/some-org/some-plugin#v3.2.7: - some-config: some-value - <<: *some-options diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline8.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline8.yml deleted file mode 100644 index a5d57559c6..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline8.yml +++ /dev/null @@ -1,4 +0,0 @@ -steps: - - plugins: - - ? ssh://git@github.company.com/some-org/some-plugin.git#v3.2.7 - : enforce_peer_deps: false diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline9.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline9.yml deleted file mode 100644 index 8baccb383c..0000000000 --- a/lib/modules/manager/buildkite/__fixtures__/pipeline9.yml +++ /dev/null @@ -1,4 +0,0 @@ -steps: - - plugins: - - ssh://git@bitbucket.org/some-org/some-plugin.git#v3.2.7: - - docker-compose#v1.3.2: diff --git a/lib/modules/manager/buildkite/extract.spec.ts b/lib/modules/manager/buildkite/extract.spec.ts index 1fbcc9f105..812e02390f 100644 --- a/lib/modules/manager/buildkite/extract.spec.ts +++ b/lib/modules/manager/buildkite/extract.spec.ts @@ -1,4 +1,4 @@ -import { Fixtures } from '../../../../test/fixtures'; +import { codeBlock } from 'common-tags'; import type { PackageDependency } from '../types'; import { extractPackageFile } from '.'; @@ -9,31 +9,95 @@ describe('modules/manager/buildkite/extract', () => { }); it('extracts simple single plugin', () => { - const res = extractPackageFile(Fixtures.get('pipeline1.yml'))?.deps; + const fileContent = codeBlock` + steps: + - plugins: + abc/detect-clowns#v2.0.0: ~ + `; + const res = extractPackageFile(fileContent)?.deps; expect(res).toMatchSnapshot(); expect(res).toHaveLength(1); }); it('extracts multiple plugins in same file', () => { - const res = extractPackageFile(Fixtures.get('pipeline2.yml'))?.deps; + const fileContent = codeBlock` + steps: + # Prebuild the app image, upload it to a registry for later steps + - name: "Docker Build" + plugins: + docker-compose#v1.3.2: # Comment at the end.... + build: app + image-repository: index.docker.io/org/repo + + - wait + + # Use the app image built above to run concurrent tests + - name: "Docker Test %n" + command: test.sh + parallelism: 25 + plugins: + docker-compose#v1.3.2: + run: app + `; + const res = extractPackageFile(fileContent)?.deps; expect(res).toMatchSnapshot(); expect(res).toHaveLength(2); }); it('adds skipReason', () => { - const res = extractPackageFile(Fixtures.get('pipeline3.yml'))?.deps; + const fileContent = codeBlock` + steps: + - name: "Docker Build" + plugins: + namespace/docker-compose#v1.3.2.5: + build: app + image-repository: index.docker.io/org/repo + + - wait + + - name: "wrong" + command: test.sh + parallelism: 25 + plugins: + github.com/buildkite/plugin-docker-compose#v1.3.2: + run: app + `; + const res = extractPackageFile(fileContent)?.deps; expect(res).toMatchSnapshot(); expect(res).toHaveLength(2); }); it('extracts arrays of plugins', () => { - const res = extractPackageFile(Fixtures.get('pipeline4.yml'))?.deps; + const fileContent = codeBlock` + steps: + - plugins: + - docker-login#v2.0.1: + username: xyz + - docker-compose#v2.5.1: + build: app + image-repository: index.docker.io/myorg/myrepo + - wait + - command: test.sh + plugins: + - docker-login#v2.0.1: + username: xyz + - docker-compose#v2.5.1: + run: app + `; + const res = extractPackageFile(fileContent)?.deps; expect(res).toMatchSnapshot(); expect(res).toHaveLength(4); }); it('extracts git-based plugins', () => { - const res = extractPackageFile(Fixtures.get('pipeline5.yml'))?.deps; + const fileContent = codeBlock` + steps: + - ssh://git@github.company.com/some-org/some-plugin#v3.2.7: + username: abc + - https://github.company.com/some-third-org/some-third-plugin#v0.0.1: + build: app + `; + const res = extractPackageFile(fileContent)?.deps; expect(res).toMatchSnapshot(); expect(res).toHaveLength(2); }); @@ -45,13 +109,25 @@ describe('modules/manager/buildkite/extract', () => { depName: 'some-org/some-plugin', registryUrls: ['https://github.company.com'], }; - const res = extractPackageFile(Fixtures.get('pipeline6.yml'))?.deps; + const fileContent = codeBlock` + steps: + - ssh://git@github.company.com/some-org/some-plugin.git#v3.2.7: + `; + const res = extractPackageFile(fileContent)?.deps; expect(res).toHaveLength(1); expect(res).toEqual([expectedPackageDependency]); }); it('extracts plugins outside plugins sections', () => { - const res = extractPackageFile(Fixtures.get('pipeline7.yml'))?.deps; + const fileContent = codeBlock` + .docker-options: &some-options + copy-checkout: true + .python3-container: &python3-container + ssh://git@github.some-domain.com/some-org/some-plugin#v3.2.7: + some-config: some-value + <<: *some-options + `; + const res = extractPackageFile(fileContent)?.deps; const expectedPackageDependency: PackageDependency = { currentValue: 'v3.2.7', datasource: 'github-tags', @@ -62,7 +138,11 @@ describe('modules/manager/buildkite/extract', () => { }); it('extracts plugin with preceding ?', () => { - const res = extractPackageFile(Fixtures.get('pipeline8.yml'))?.deps; + const fileContent = codeBlock` + steps: + - ? ssh://git@github.company.com/some-org/some-plugin.git#v3.2.7 + `; + const res = extractPackageFile(fileContent)?.deps; const expectedPackageDependency: PackageDependency = { currentValue: 'v3.2.7', datasource: 'github-tags', @@ -73,7 +153,13 @@ describe('modules/manager/buildkite/extract', () => { }); it('extracts plugin tags from bitbucket', () => { - const res = extractPackageFile(Fixtures.get('pipeline9.yml'))?.deps; + const fileContent = codeBlock` + steps: + - plugins: + - ssh://git@bitbucket.org/some-org/some-plugin.git#v3.2.7: + - docker-compose#v1.3.2: + `; + const res = extractPackageFile(fileContent)?.deps; const githubDependency: PackageDependency = { currentValue: 'v1.3.2', datasource: 'github-tags', -- GitLab