From d2f28e0eb108269b07fb5d3e97ed5869be23e94b Mon Sep 17 00:00:00 2001 From: Alex Goodman Date: Mon, 28 Feb 2022 09:46:41 -0500 Subject: [PATCH] Restore single goreleaser file (#853) --- .gitignore | 1 - .goreleaser/main.yaml => .goreleaser.yaml | 42 +++++++++++++++++++++++ .goreleaser/Makefile | 24 ------------- .goreleaser/docker.yaml | 39 --------------------- .goreleaser/env-default.yaml | 4 --- .goreleaser/env-skip-signing.yaml | 5 --- .goreleaser/snapshot.yaml | 1 - Makefile | 20 ++++++----- 8 files changed, 54 insertions(+), 82 deletions(-) rename .goreleaser/main.yaml => .goreleaser.yaml (63%) delete mode 100644 .goreleaser/Makefile delete mode 100644 .goreleaser/docker.yaml delete mode 100644 .goreleaser/env-default.yaml delete mode 100644 .goreleaser/env-skip-signing.yaml delete mode 100644 .goreleaser/snapshot.yaml diff --git a/.gitignore b/.gitignore index 2c6220cfc..891ae1507 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,6 @@ CHANGELOG.md .tmp/ coverage.txt bin/ -.goreleaser.yaml # Binaries for programs and plugins *.exe diff --git a/.goreleaser/main.yaml b/.goreleaser.yaml similarity index 63% rename from .goreleaser/main.yaml rename to .goreleaser.yaml index 53c0d0371..86b742b9d 100644 --- a/.goreleaser/main.yaml +++ b/.goreleaser.yaml @@ -2,6 +2,10 @@ release: prerelease: auto draft: true +env: + # required to support multi architecture docker builds + - DOCKER_CLI_EXPERIMENTAL=enabled + before: hooks: - ./.github/scripts/apple-signing/setup.sh {{ .IsSnapshot }} @@ -89,3 +93,41 @@ brews: description: *description license: "Apache License 2.0" +dockers: + - image_templates: + - "anchore/syft:latest" + - "anchore/syft:{{ .Tag }}-amd64" + - "anchore/syft:v{{ .Major }}-amd64" + - "anchore/syft:v{{ .Major }}.{{ .Minor }}-amd64" + dockerfile: Dockerfile + use: buildx + build_flag_templates: + - "--platform=linux/amd64" + - "--build-arg=BUILD_DATE={{.Date}}" + - "--build-arg=BUILD_VERSION={{.Version}}" + - "--build-arg=VCS_REF={{.FullCommit}}" + - "--build-arg=VCS_URL={{.GitURL}}" + + - image_templates: + - "anchore/syft:{{ .Tag }}-arm64v8" + - "anchore/syft:v{{ .Major }}-arm64v8" + - "anchore/syft:v{{ .Major }}.{{ .Minor }}-arm64v8" + goarch: arm64 + dockerfile: Dockerfile + use: buildx + build_flag_templates: + - "--platform=linux/arm64/v8" + - "--build-arg=BUILD_DATE={{.Date}}" + - "--build-arg=BUILD_VERSION={{.Version}}" + - "--build-arg=VCS_REF={{.FullCommit}}" + - "--build-arg=VCS_URL={{.GitURL}}" + +docker_manifests: + - name_template: anchore/syft:{{ .Tag }} + image_templates: + - anchore/syft:v{{ .Major }}.{{ .Minor }}-amd64 + - anchore/syft:v{{ .Major }}.{{ .Minor }}-arm64v8 + - name_template: anchore/syft:latest + image_templates: + - anchore/syft:v{{ .Major }}.{{ .Minor }}-amd64 + - anchore/syft:v{{ .Major }}.{{ .Minor }}-arm64v8 diff --git a/.goreleaser/Makefile b/.goreleaser/Makefile deleted file mode 100644 index 94702aebc..000000000 --- a/.goreleaser/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -TARGET=../.goreleaser.yaml - -.PHONY: snapshot-config -snapshot-config: - cat snapshot.yaml > $(TARGET) - cat env-skip-signing.yaml >> $(TARGET) - cat main.yaml >> $(TARGET) - cat docker.yaml >> $(TARGET) - cat $(TARGET) - -.PHONY: snapshot-with-signing-config -snapshot-with-signing-config: - # we leave out docker entirely such that this can easily be tested in CI - cat snapshot.yaml > $(TARGET) - cat env-default.yaml >> $(TARGET) - cat main.yaml >> $(TARGET) - cat $(TARGET) - -.PHONY: release-config -release-config: - cat env-default.yaml > $(TARGET) - cat docker.yaml >> $(TARGET) - cat main.yaml >> $(TARGET) - cat $(TARGET) diff --git a/.goreleaser/docker.yaml b/.goreleaser/docker.yaml deleted file mode 100644 index f7cce1ba2..000000000 --- a/.goreleaser/docker.yaml +++ /dev/null @@ -1,39 +0,0 @@ - -dockers: - - image_templates: - - "anchore/syft:latest" - - "anchore/syft:{{ .Tag }}-amd64" - - "anchore/syft:v{{ .Major }}-amd64" - - "anchore/syft:v{{ .Major }}.{{ .Minor }}-amd64" - dockerfile: Dockerfile - use: buildx - build_flag_templates: - - "--platform=linux/amd64" - - "--build-arg=BUILD_DATE={{.Date}}" - - "--build-arg=BUILD_VERSION={{.Version}}" - - "--build-arg=VCS_REF={{.FullCommit}}" - - "--build-arg=VCS_URL={{.GitURL}}" - - - image_templates: - - "anchore/syft:{{ .Tag }}-arm64v8" - - "anchore/syft:v{{ .Major }}-arm64v8" - - "anchore/syft:v{{ .Major }}.{{ .Minor }}-arm64v8" - goarch: arm64 - dockerfile: Dockerfile - use: buildx - build_flag_templates: - - "--platform=linux/arm64/v8" - - "--build-arg=BUILD_DATE={{.Date}}" - - "--build-arg=BUILD_VERSION={{.Version}}" - - "--build-arg=VCS_REF={{.FullCommit}}" - - "--build-arg=VCS_URL={{.GitURL}}" - -docker_manifests: - - name_template: anchore/syft:{{ .Tag }} - image_templates: - - anchore/syft:v{{ .Major }}.{{ .Minor }}-amd64 - - anchore/syft:v{{ .Major }}.{{ .Minor }}-arm64v8 - - name_template: anchore/syft:latest - image_templates: - - anchore/syft:v{{ .Major }}.{{ .Minor }}-amd64 - - anchore/syft:v{{ .Major }}.{{ .Minor }}-arm64v8 diff --git a/.goreleaser/env-default.yaml b/.goreleaser/env-default.yaml deleted file mode 100644 index 49daf7e0f..000000000 --- a/.goreleaser/env-default.yaml +++ /dev/null @@ -1,4 +0,0 @@ - -env: - # required to support multi architecture docker builds - - DOCKER_CLI_EXPERIMENTAL=enabled diff --git a/.goreleaser/env-skip-signing.yaml b/.goreleaser/env-skip-signing.yaml deleted file mode 100644 index e0328251c..000000000 --- a/.goreleaser/env-skip-signing.yaml +++ /dev/null @@ -1,5 +0,0 @@ - -env: - # required to support multi architecture docker builds - - DOCKER_CLI_EXPERIMENTAL=enabled - - SKIP_SIGNING=true diff --git a/.goreleaser/snapshot.yaml b/.goreleaser/snapshot.yaml deleted file mode 100644 index 9e66988e1..000000000 --- a/.goreleaser/snapshot.yaml +++ /dev/null @@ -1 +0,0 @@ -dist: snapshot diff --git a/Makefile b/Makefile index cc3658df0..3be7e6d5a 100644 --- a/Makefile +++ b/Makefile @@ -234,24 +234,25 @@ build: $(SNAPSHOTDIR) ## Build release snapshot binaries and packages $(SNAPSHOTDIR): ## Build snapshot release binaries and packages $(call title,Building snapshot artifacts) - cd .goreleaser && make snapshot-config + # create a config with the dist dir overridden + echo "dist: $(SNAPSHOTDIR)" > $(TEMPDIR)/goreleaser.yaml + cat .goreleaser.yaml >> $(TEMPDIR)/goreleaser.yaml # build release snapshots - bash -c "$(SNAPSHOT_CMD) --skip-sign" + bash -c "SKIP_SIGNING=true $(SNAPSHOT_CMD) --skip-sign --config $(TEMPDIR)/goreleaser.yaml" .PHONY: snapshot-with-signing snapshot-with-signing: ## Build snapshot release binaries and packages (with dummy signing) $(call title,Building snapshot artifacts (+ signing)) - cd .goreleaser && make snapshot-with-signing-config + # create a config with the dist dir overridden + echo "dist: $(SNAPSHOTDIR)" > $(TEMPDIR)/goreleaser.yaml + cat .goreleaser.yaml >> $(TEMPDIR)/goreleaser.yaml rm -f .github/scripts/apple-signing/log/*.txt - # remove the keychain with the trusted self-signed cert automatically (from failed previous runs) - .github/scripts/apple-signing/cleanup.sh - # build release snapshots - bash -c "$(SNAPSHOT_CMD) || (cat .github/scripts/apple-signing/log/*.txt && false)" + bash -c "$(SNAPSHOT_CMD) --config $(TEMPDIR)/goreleaser.yaml || (cat .github/scripts/apple-signing/log/*.txt && false)" # remove the keychain with the trusted self-signed cert automatically .github/scripts/apple-signing/cleanup.sh @@ -315,13 +316,16 @@ CHANGELOG.md: release: clean-dist CHANGELOG.md ## Build and publish final binaries and packages. Intended to be run only on macOS. $(call title,Publishing release artifacts) - cd .goreleaser && make release-config + # create a config with the dist dir overridden + echo "dist: $(DISTDIR)" > $(TEMPDIR)/goreleaser.yaml + cat .goreleaser.yaml >> $(TEMPDIR)/goreleaser.yaml rm -f .github/scripts/apple-signing/log/*.txt # note: notarization cannot be done in parallel, thus --parallelism 1 bash -c "\ $(RELEASE_CMD) \ + --config $(TEMPDIR)/goreleaser.yaml \ --parallelism 1 \ --release-notes <(cat CHANGELOG.md)\ || (cat .github/scripts/apple-signing/log/*.txt && false)"