Skip to content

Commit 5db0fa1

Browse files
CLOUDP-114080: [Mongocli] Investigate how to get the correct git tag version in evergreen (#1014)
1 parent 82cbe6f commit 5db0fa1

File tree

8 files changed

+87
-22
lines changed

8 files changed

+87
-22
lines changed

Makefile

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ COVERAGE=coverage.out
77

88
MCLI_SOURCE_FILES?=./cmd/mongocli
99
MCLI_BINARY_NAME=mongocli
10-
MCLI_VERSION?=$(shell git describe --always --tags | cut -d "v" -f 2)
10+
MCLI_VERSION?=$(shell git tag --list 'mongocli/v*' --sort=committerdate | tail -1 | cut -d "v" -f 2 | xargs -I % sh -c 'echo %-next' )
1111
MCLI_GIT_SHA?=$(shell git rev-parse HEAD)
1212
MCLI_DESTINATION=./bin/$(MCLI_BINARY_NAME)
1313
MCLI_INSTALL_PATH="${GOPATH}/bin/$(MCLI_BINARY_NAME)"
@@ -16,12 +16,19 @@ MCLI_E2E_BINARY?=../../bin/${MCLI_BINARY_NAME}
1616

1717
ATLAS_SOURCE_FILES?=./cmd/atlas
1818
ATLAS_BINARY_NAME=atlas
19+
ATLAS_VERSION?=$(shell git tag --list 'atlascli/v*' --sort=committerdate | tail -1 | cut -d "v" -f 2 | xargs -I % sh -c 'echo %-next' )
1920
ATLAS_DESTINATION=./bin/$(ATLAS_BINARY_NAME)
2021
ATLAS_INSTALL_PATH="${GOPATH}/bin/$(ATLAS_BINARY_NAME)"
2122

22-
LINKER_FLAGS=-s -w -X github.com/mongodb/mongocli/internal/version.Version=${MCLI_VERSION} -X github.com/mongodb/mongocli/internal/version.GitCommit=${MCLI_GIT_SHA}
23-
MCLI_LINKER_FLAGS=${LINKER_FLAGS} -X github.com/mongodb/mongocli/internal/config.ToolName=$(MCLI_BINARY_NAME)
24-
ATLAS_LINKER_FLAGS=${LINKER_FLAGS} -X github.com/mongodb/mongocli/internal/config.ToolName=atlascli
23+
24+
ifeq ($(ATLAS_VERSION),) # use git describe if we don't have an atlascli tag
25+
ATLAS_VERSION=$(shell git describe --always --tags | cut -d "v" -f 2)
26+
endif
27+
28+
29+
LINKER_FLAGS=-s -w -X github.com/mongodb/mongocli/internal/version.GitCommit=${MCLI_GIT_SHA}
30+
MCLI_LINKER_FLAGS=${LINKER_FLAGS} -X github.com/mongodb/mongocli/internal/config.ToolName=$(MCLI_BINARY_NAME) -X github.com/mongodb/mongocli/internal/version.Version=${MCLI_VERSION}
31+
ATLAS_LINKER_FLAGS=${LINKER_FLAGS} -X github.com/mongodb/mongocli/internal/config.ToolName=atlascli -X github.com/mongodb/mongocli/internal/version.Version=${ATLAS_VERSION}
2532
ATLAS_E2E_BINARY?=../../bin/${ATLAS_BINARY_NAME}
2633

2734
DEBUG_FLAGS=all=-N -l

build/ci/release.yml

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,18 @@ functions:
7070
- goreleaser_key
7171
script: |
7272
set -Eeou pipefail
73-
7473
export GOROOT="${go_root}"
7574
export PATH="./bin:${go_bin}:$PATH"
7675
export GITHUB_TOKEN=${github_token}
7776
export NOTARY_SERVICE_URL=${notary_service_url}
7877
export MACOS_NOTARY_KEY=${notary_service_key_id}
7978
export MACOS_NOTARY_SECRET=${notary_service_secret}
8079
export GORELEASER_KEY=${goreleaser_key}
81-
export VERSION_GIT=$(git describe --abbrev=0 | cut -d "v" -f 2)
80+
export VERSION_GIT="$(git tag --list "${tool_name:?}/v*" --sort=committerdate | tail -1 | cut -d "v" -f 2)"
81+
82+
if [[ -z "${VERSION_GIT}" ]]; then
83+
export VERSION_GIT=$(git describe --abbrev=0 | cut -d "v" -f 2)
84+
fi
8285
8386
# avoid race conditions on the notarization step by using `-p 1`
8487
${goreleaser_cmd|goreleaser --rm-dist --snapshot -p 1}
@@ -120,6 +123,7 @@ functions:
120123
- latest_deb
121124
- latest_rpm
122125
- package_name
126+
- tool_name
123127
working_dir: src/github.com/mongodb/mongocli
124128
env:
125129
<<: *go_options
@@ -139,19 +143,18 @@ functions:
139143
- TOOL_NAME
140144
binary: build/package/send-slack-notification.sh
141145
"generate download archive json":
142-
- command: shell.exec
146+
- command: subprocess.exec
143147
type: test
144148
params:
145149
working_dir: src/github.com/mongodb/mongocli/dist
146150
include_expansions_in_env:
147151
- FEED_FILE_NAME
148-
script: |
149-
set -Eeou pipefail
150-
151-
export GOROOT="${go_root}"
152-
export PATH="./bin:${go_bin}:$PATH"
153-
154-
go run ../internal/release/main.go --version "$(git describe | cut -d "v" -f 2)" --file "${FEED_FILE_NAME}"
152+
- TOOL_NAME
153+
add_to_path:
154+
- ${go_bin}
155+
env:
156+
<<: *go_options
157+
binary: ../build/package/generate-download-archive-manifest.sh
155158
"upload dist":
156159
- command: s3.put
157160
params:
@@ -246,6 +249,7 @@ tasks:
246249
- func: "install macos notarization service"
247250
- func: "package"
248251
vars:
252+
tool_name: ${tool_name}
249253
goreleaser_file: ${goreleaser_file}
250254
goreleaser_cmd: goreleaser --config "${goreleaser_file}" --rm-dist --snapshot -p 1
251255
- func: "rename pkg"
@@ -254,22 +258,24 @@ tasks:
254258
latest_deb: ~latest
255259
latest_rpm: .latest
256260
package_name: ${package_name}
261+
tool_name: ${tool_name}
257262
- command: archive.targz_pack
258263
params:
259-
target: src/github.com/mongodb/mongocli/dist/mongocli-deb.tgz
264+
target: src/github.com/mongodb/mongocli/dist/${package_name}-deb.tgz
260265
source_dir: src/github.com/mongodb/mongocli/dist/apt
261266
include:
262267
- "*.deb"
263268
- command: archive.targz_pack
264269
params:
265-
target: src/github.com/mongodb/mongocli/dist/mongocli-rpm.tgz
270+
target: src/github.com/mongodb/mongocli/dist/${package_name}-rpm.tgz
266271
source_dir: src/github.com/mongodb/mongocli/dist/yum
267272
include:
268273
- "*.rpm"
269274
- func: "generate download archive json"
270275
vars:
271276
package_name: ${package_name}
272277
FEED_FILE_NAME: "${package_name}.json"
278+
TOOL_NAME: ${tool_name}
273279
- func: "upload dist"
274280
- name: pkg_test_mongocli_docker_ubuntu1804
275281
tags: ["smoke-test"]
@@ -436,10 +442,12 @@ tasks:
436442
binary: build/package/download-msi.sh
437443
- func: "package"
438444
vars:
445+
tool_name: "mongocli"
439446
goreleaser_cmd: goreleaser --config .mongocli.goreleaser.yml --rm-dist --release-notes CHANGELOG.md -p 1
440447
- func: "rename pkg"
441448
vars:
442449
package_name: mongocli
450+
tool_name: mongocli
443451
- command: archive.targz_pack
444452
params:
445453
target: src/github.com/mongodb/mongocli/dist/mongocli-deb.tgz
@@ -455,6 +463,7 @@ tasks:
455463
- func: "generate download archive json"
456464
vars:
457465
FEED_FILE_NAME: mongocli.json
466+
TOOL_NAME: mongocli
458467
- func: "upload dist"
459468
- command: s3.put
460469
params:
@@ -497,10 +506,12 @@ tasks:
497506
binary: build/package/download-msi.sh
498507
- func: "package"
499508
vars:
509+
tool_name: "atlascli"
500510
goreleaser_cmd: goreleaser --config .atlascli.goreleaser.yml --rm-dist --release-notes CHANGELOG.md -p 1
501511
- func: "rename pkg"
502512
vars:
503513
package_name: mongodb-atlas-cli
514+
tool_name: atlascli
504515
- command: archive.targz_pack
505516
params:
506517
target: src/github.com/mongodb/mongocli/dist/atlascli-deb.tgz
@@ -516,6 +527,7 @@ tasks:
516527
- func: "generate download archive json"
517528
vars:
518529
FEED_FILE_NAME: mongodb-atlas-cli.json
530+
TOOL_NAME: atlascli
519531
# - func: "upload dist" TODO CLOUDP-113712: WAITING FOR https://jira.mongodb.org/browse/WEBSITE-11811
520532
# - command: s3.put
521533
# params:
@@ -1240,6 +1252,7 @@ buildvariants:
12401252
server_version: "4.4.0-rc3"
12411253
goreleaser_file: ".mongocli.goreleaser.yml"
12421254
package_name: "mongocli"
1255+
tool_name: "mongocli"
12431256
tasks:
12441257
- name: package_goreleaser
12451258
- name: goreleaser_atlascli_snapshot
@@ -1252,6 +1265,7 @@ buildvariants:
12521265
server_version: "4.4.0-rc3"
12531266
goreleaser_file: ".atlascli.goreleaser.yml"
12541267
package_name: "mongodb-atlas-cli"
1268+
tool_name: "atlascli"
12551269
tasks:
12561270
- name: package_goreleaser
12571271
- name: publish_snapshot

build/package/docker/docker-build.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616

1717
set -Eeou pipefail
1818

19-
VERSION=$(git describe --abbrev=0 | cut -d "v" -f 2)
19+
VERSION="$(git tag --list "${tool_name:?}/v*" --sort=committerdate | tail -1 | cut -d "v" -f 2)"
20+
if [[ -z "${VERSION}" ]]; then
21+
VERSION="$(git describe --abbrev=0 | cut -d "v" -f 2)"
22+
fi
2023

2124
FILE_EXT=deb
2225
if [[ "${image-}" =~ "rpm" ]]; then

build/package/download-msi.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@
1515

1616
set -Eeou pipefail
1717

18-
VERSION=$(git describe | cut -d "v" -f 2)
18+
VERSION="$(git tag --list "${TOOL_NAME:?}/v*" --sort=committerdate | tail -1 | cut -d "v" -f 2)"
19+
if [[ -z "${VERSION}" ]]; then
20+
VERSION="$(git describe --abbrev=0 | cut -d "v" -f 2)"
21+
fi
1922

2023
PACKAGE_NAME=mongocli_"${VERSION}"_windows_x86_64.msi
2124
if [[ "${TOOL_NAME:?}" == atlascli ]]; then
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash
2+
3+
# Copyright 2022 MongoDB Inc
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
set -Eeou pipefail
17+
18+
VERSION="$(git tag --list "${TOOL_NAME}/v*" --sort=committerdate | tail -1 | cut -d "v" -f 2)"
19+
20+
if [[ -z "${VERSION}" ]]; then
21+
VERSION=$(git describe | cut -d "v" -f 2)
22+
fi
23+
24+
go run ../internal/release/main.go --file "${FEED_FILE_NAME}" --version "${VERSION}"

build/package/generate-msi.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ export CGO_ENABLED
2424
go-msi check-env
2525

2626

27-
VERSION=$(git describe | cut -d "v" -f 2)
27+
VERSION="$(git tag --list "${TOOL_NAME:?}/v*" --sort=committerdate | tail -1 | cut -d "v" -f 2)"
28+
if [[ -z "${VERSION}" ]]; then
29+
VERSION="$(git describe --abbrev=0 | cut -d "v" -f 2)"
30+
fi
31+
2832
COMMIT=$(git log -n1 --format=format:"%H")
2933

3034
SOURCE_FILES=./cmd/mongocli

build/package/rename-pkg.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,16 @@
1616

1717
set -Eeou pipefail
1818

19-
VERSION=$(git describe --abbrev=0 | cut -d "v" -f 2)
19+
20+
VERSION="$(git tag --list "${tool_name:?}/v*" --sort=committerdate | tail -1 | cut -d "v" -f 2)"
21+
if [[ -z "${VERSION}" ]]; then
22+
VERSION="$(git describe --abbrev=0 | cut -d "v" -f 2)"
23+
fi
24+
2025
FILENAME="${package_name-}"_"${VERSION}"_linux_x86_64
2126
if [[ "${unstable-}" == "-unstable" ]]; then
22-
FILENAME="${package_name-}_${VERSION}-next_linux_x86_64"
27+
VERSION="${VERSION}-next"
28+
FILENAME="${package_name-}_${VERSION}_linux_x86_64"
2329
fi
2430

2531
cd dist

build/package/send-slack-notification.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515

1616
set -Eeou pipefail
1717

18-
VERSION=$(git describe | cut -d "v" -f 2)
18+
VERSION="$(git tag --list "${TOOL_NAME:?}/v*" --sort=committerdate | tail -1 | cut -d "v" -f 2)"
19+
if [[ -z "${VERSION}" ]]; then
20+
VERSION="$(git describe --abbrev=0 | cut -d "v" -f 2)"
21+
fi
22+
1923
TOOL_NAME_MESSAGE="MongoDB CLI"
2024

2125
if [[ "${TOOL_NAME:?}" == atlascli ]]; then

0 commit comments

Comments
 (0)