Loading .gitlab/ci/publish.yml +0 −84 Original line number Diff line number Diff line Loading @@ -52,90 +52,6 @@ generate_description: reports: dotenv: description.env ## Upload binaries to S3 ## TODO: Upload binaries to generic package registry https://gitlab.com/gitlab-org/release-cli/-/issues/83 .upload_binaries_development: rules: - if: '$CI_MERGE_REQUEST_IID && $AWS_ACCESS_KEY_ID && $AWS_SECRET_ACCESS_KEY' .upload_binaries_edge: rules: - if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $AWS_ACCESS_KEY_ID && $AWS_SECRET_ACCESS_KEY' .upload_binaries_stable: rules: - if: '$CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+\.[0-9]+/ && $AWS_ACCESS_KEY_ID && $AWS_SECRET_ACCESS_KEY' .aws_setup: image: name: amazon/aws-cli:latest entrypoint: [""] before_script: - yum install make git -y .upload_to_S3: extends: .aws_setup variables: S3_BUCKET: release-cli-downloads needs: - 'binaries darwin/amd64' - 'binaries darwin/arm64' - 'binaries freebsd/386 freebsd/amd64 freebsd/arm' - 'binaries linux/386 linux/amd64 linux/arm linux/arm64 linux/ppc64le' - 'binaries windows/386 windows/amd64' script: - echo "Uploading binaries to S3" - make release_s3 environment: url: https://${S3_BUCKET}.s3.amazonaws.com/${CI_COMMIT_REF_NAME}/index.html upload development binaries to S3: stage: publish extends: - .upload_binaries_development - .upload_to_S3 environment: name: development/S3/${CI_COMMIT_REF_NAME} on_stop: remove development binaries from S3 auto_stop_in: 1 week remove development binaries from S3: stage: publish dependencies: [] variables: S3_BUCKET: release-cli-downloads extends: - .upload_binaries_development - .aws_setup script: - make remove_s3_release rules: - if: '$CI_MERGE_REQUEST_IID && $AWS_ACCESS_KEY_ID && $AWS_SECRET_ACCESS_KEY' when: manual allow_failure: true environment: name: development/S3/${CI_COMMIT_REF_NAME} action: stop upload edge biniaries to S3: stage: publish extends: - .upload_binaries_edge - .upload_to_S3 environment: name: stable/S3 url: https://${S3_BUCKET}.s3.amazonaws.com/edge/index.html upload stable binaries to S3: stage: publish extends: - .upload_binaries_stable - .upload_to_S3 environment: name: stable/S3 url: https://${S3_BUCKET}.s3.amazonaws.com/${CI_COMMIT_REF_NAME}/index.html .upload to generic package: stage: publish image: curlimages/curl:latest Loading Makefile.build.mk +0 −56 Original line number Diff line number Diff line Loading @@ -53,59 +53,3 @@ build-binaries: setup -ldflags $(LD_FLAGS) \ -output="bin/binaries/$(PROJECT_NAME)-{{.OS}}-{{.Arch}}" \ ./cmd/$(PROJECT_NAME) .PHONY: release_s3 release_s3: CI_COMMIT_REF_NAME ?= $(BRANCH) release_s3: CI_COMMIT_SHA ?= $(REVISION) release_s3: S3_BUCKET ?= release_s3: @$(MAKE) prepare_index ifneq ($(S3_BUCKET),) @$(MAKE) sync_s3_release S3_URL="s3://$(S3_BUCKET)/$(CI_COMMIT_REF_NAME)" ifeq ($(shell git describe --exact-match --match $(LATEST_STABLE_TAG) >/dev/null 2>&1; echo $$?), 0) @$(MAKE) sync_s3_release S3_URL="s3://$(S3_BUCKET)/latest"; endif ifeq ($(CI_COMMIT_REF_NAME), $(CI_DEFAULT_BRANCH)) @$(MAKE) sync_s3_release S3_URL="s3://$(S3_BUCKET)/edge"; endif endif .PHONY: sync_s3_release sync_s3_release: S3_URL ?= sync_s3_release: # Syncing with $(S3_URL) @aws s3 sync bin/binaries/ "$(S3_URL)" --acl public-read @echo "==> Download index file: https://$$S3_BUCKET.s3.amazonaws.com/$$CI_COMMIT_REF_NAME/index.html" RELEASE_INDEX_GEN_VERSION ?= latest RELEASE_INDEX_GENERATOR ?= .tmp/release-index-gen-$(RELEASE_INDEX_GEN_VERSION) prepare_index: export CI_COMMIT_REF_NAME ?= $(BRANCH) prepare_index: export CI_COMMIT_SHA ?= $(REVISION) prepare_index: $(RELEASE_INDEX_GENERATOR) # Preparing index file @$(RELEASE_INDEX_GENERATOR) -working-directory bin/binaries/ \ -project-version $(VERSION) \ -project-git-ref $(CI_COMMIT_REF_NAME) \ -project-git-revision $(CI_COMMIT_SHA) \ -project-name "GitLab Release CLI" \ -project-repo-url "https://gitlab.com/gitlab-org/release-cli" \ -gpg-key-env GPG_KEY \ -gpg-password-env GPG_PASSPHRASE $(RELEASE_INDEX_GENERATOR): OS_TYPE ?= $(shell uname -s | tr '[:upper:]' '[:lower:]') $(RELEASE_INDEX_GENERATOR): DOWNLOAD_URL = "https://storage.googleapis.com/gitlab-runner-tools/release-index-generator/$(RELEASE_INDEX_GEN_VERSION)/release-index-gen-$(OS_TYPE)-amd64" $(RELEASE_INDEX_GENERATOR): # Installing $(DOWNLOAD_URL) as $(RELEASE_INDEX_GENERATOR) @mkdir -p $(shell dirname $(RELEASE_INDEX_GENERATOR)) @curl -sL "$(DOWNLOAD_URL)" -o "$(RELEASE_INDEX_GENERATOR)" @chmod +x "$(RELEASE_INDEX_GENERATOR)" .PHONY: remove_s3_release remove_s3_release: CI_COMMIT_REF_NAME ?= $(BRANCH) remove_s3_release: S3_BUCKET ?= remove_s3_release: @echo "The S3 Bucket: $(S3_BUCKET)" ifneq ($(S3_BUCKET),) @aws s3 rm "s3://$(S3_BUCKET)/$(CI_COMMIT_REF_NAME)" --recursive endif Loading
.gitlab/ci/publish.yml +0 −84 Original line number Diff line number Diff line Loading @@ -52,90 +52,6 @@ generate_description: reports: dotenv: description.env ## Upload binaries to S3 ## TODO: Upload binaries to generic package registry https://gitlab.com/gitlab-org/release-cli/-/issues/83 .upload_binaries_development: rules: - if: '$CI_MERGE_REQUEST_IID && $AWS_ACCESS_KEY_ID && $AWS_SECRET_ACCESS_KEY' .upload_binaries_edge: rules: - if: '$CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $AWS_ACCESS_KEY_ID && $AWS_SECRET_ACCESS_KEY' .upload_binaries_stable: rules: - if: '$CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+\.[0-9]+/ && $AWS_ACCESS_KEY_ID && $AWS_SECRET_ACCESS_KEY' .aws_setup: image: name: amazon/aws-cli:latest entrypoint: [""] before_script: - yum install make git -y .upload_to_S3: extends: .aws_setup variables: S3_BUCKET: release-cli-downloads needs: - 'binaries darwin/amd64' - 'binaries darwin/arm64' - 'binaries freebsd/386 freebsd/amd64 freebsd/arm' - 'binaries linux/386 linux/amd64 linux/arm linux/arm64 linux/ppc64le' - 'binaries windows/386 windows/amd64' script: - echo "Uploading binaries to S3" - make release_s3 environment: url: https://${S3_BUCKET}.s3.amazonaws.com/${CI_COMMIT_REF_NAME}/index.html upload development binaries to S3: stage: publish extends: - .upload_binaries_development - .upload_to_S3 environment: name: development/S3/${CI_COMMIT_REF_NAME} on_stop: remove development binaries from S3 auto_stop_in: 1 week remove development binaries from S3: stage: publish dependencies: [] variables: S3_BUCKET: release-cli-downloads extends: - .upload_binaries_development - .aws_setup script: - make remove_s3_release rules: - if: '$CI_MERGE_REQUEST_IID && $AWS_ACCESS_KEY_ID && $AWS_SECRET_ACCESS_KEY' when: manual allow_failure: true environment: name: development/S3/${CI_COMMIT_REF_NAME} action: stop upload edge biniaries to S3: stage: publish extends: - .upload_binaries_edge - .upload_to_S3 environment: name: stable/S3 url: https://${S3_BUCKET}.s3.amazonaws.com/edge/index.html upload stable binaries to S3: stage: publish extends: - .upload_binaries_stable - .upload_to_S3 environment: name: stable/S3 url: https://${S3_BUCKET}.s3.amazonaws.com/${CI_COMMIT_REF_NAME}/index.html .upload to generic package: stage: publish image: curlimages/curl:latest Loading
Makefile.build.mk +0 −56 Original line number Diff line number Diff line Loading @@ -53,59 +53,3 @@ build-binaries: setup -ldflags $(LD_FLAGS) \ -output="bin/binaries/$(PROJECT_NAME)-{{.OS}}-{{.Arch}}" \ ./cmd/$(PROJECT_NAME) .PHONY: release_s3 release_s3: CI_COMMIT_REF_NAME ?= $(BRANCH) release_s3: CI_COMMIT_SHA ?= $(REVISION) release_s3: S3_BUCKET ?= release_s3: @$(MAKE) prepare_index ifneq ($(S3_BUCKET),) @$(MAKE) sync_s3_release S3_URL="s3://$(S3_BUCKET)/$(CI_COMMIT_REF_NAME)" ifeq ($(shell git describe --exact-match --match $(LATEST_STABLE_TAG) >/dev/null 2>&1; echo $$?), 0) @$(MAKE) sync_s3_release S3_URL="s3://$(S3_BUCKET)/latest"; endif ifeq ($(CI_COMMIT_REF_NAME), $(CI_DEFAULT_BRANCH)) @$(MAKE) sync_s3_release S3_URL="s3://$(S3_BUCKET)/edge"; endif endif .PHONY: sync_s3_release sync_s3_release: S3_URL ?= sync_s3_release: # Syncing with $(S3_URL) @aws s3 sync bin/binaries/ "$(S3_URL)" --acl public-read @echo "==> Download index file: https://$$S3_BUCKET.s3.amazonaws.com/$$CI_COMMIT_REF_NAME/index.html" RELEASE_INDEX_GEN_VERSION ?= latest RELEASE_INDEX_GENERATOR ?= .tmp/release-index-gen-$(RELEASE_INDEX_GEN_VERSION) prepare_index: export CI_COMMIT_REF_NAME ?= $(BRANCH) prepare_index: export CI_COMMIT_SHA ?= $(REVISION) prepare_index: $(RELEASE_INDEX_GENERATOR) # Preparing index file @$(RELEASE_INDEX_GENERATOR) -working-directory bin/binaries/ \ -project-version $(VERSION) \ -project-git-ref $(CI_COMMIT_REF_NAME) \ -project-git-revision $(CI_COMMIT_SHA) \ -project-name "GitLab Release CLI" \ -project-repo-url "https://gitlab.com/gitlab-org/release-cli" \ -gpg-key-env GPG_KEY \ -gpg-password-env GPG_PASSPHRASE $(RELEASE_INDEX_GENERATOR): OS_TYPE ?= $(shell uname -s | tr '[:upper:]' '[:lower:]') $(RELEASE_INDEX_GENERATOR): DOWNLOAD_URL = "https://storage.googleapis.com/gitlab-runner-tools/release-index-generator/$(RELEASE_INDEX_GEN_VERSION)/release-index-gen-$(OS_TYPE)-amd64" $(RELEASE_INDEX_GENERATOR): # Installing $(DOWNLOAD_URL) as $(RELEASE_INDEX_GENERATOR) @mkdir -p $(shell dirname $(RELEASE_INDEX_GENERATOR)) @curl -sL "$(DOWNLOAD_URL)" -o "$(RELEASE_INDEX_GENERATOR)" @chmod +x "$(RELEASE_INDEX_GENERATOR)" .PHONY: remove_s3_release remove_s3_release: CI_COMMIT_REF_NAME ?= $(BRANCH) remove_s3_release: S3_BUCKET ?= remove_s3_release: @echo "The S3 Bucket: $(S3_BUCKET)" ifneq ($(S3_BUCKET),) @aws s3 rm "s3://$(S3_BUCKET)/$(CI_COMMIT_REF_NAME)" --recursive endif