From 37d805c8178b8e5c18131d0c5ea9ebe4687837cd Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 11:27:53 +0100 Subject: [PATCH 01/36] chore: remove generate msi task --- build/ci/release.yml | 72 +++++++++++++++---------------- build/package/.goreleaser.yml | 8 ++-- build/package/windows_notarize.sh | 31 ++++++------- 3 files changed, 57 insertions(+), 54 deletions(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index 3d3ddb46d4..f92aab1dc9 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -405,31 +405,31 @@ tasks: - func: "install goreleaser" - func: "install macos notarization service" - func: "install gh-token" - - command: subprocess.exec - type: test - params: - working_dir: src/github.com/mongodb/mongodb-atlas-cli - include_expansions_in_env: - - project - - revision - - created_at - env: - BUCKET: mongodb-mongocli-build - unstable: ${unstable} - binary: build/package/download-win-binaries.sh - - command: subprocess.exec - type: test - params: - include_expansions_in_env: - - unstable - env: - ARTIFACTORY_USERNAME: ${artifactory_username} - ARTIFACTORY_PASSWORD: ${artifactory_password} - GRS_USERNAME: ${garasign_username} - GRS_PASSWORD: ${garasign_password} - AUTHENTICODE_KEY_NAME: ${authenticode_key_name} - working_dir: src/github.com/mongodb/mongodb-atlas-cli - binary: build/package/windows_notarize.sh + # - command: subprocess.exec + # type: test + # params: + # working_dir: src/github.com/mongodb/mongodb-atlas-cli + # include_expansions_in_env: + # - project + # - revision + # - created_at + # env: + # BUCKET: mongodb-mongocli-build + # unstable: ${unstable} + # binary: build/package/download-win-binaries.sh + # - command: subprocess.exec + # type: test + # params: + # include_expansions_in_env: + # - unstable + # env: + # ARTIFACTORY_USERNAME: ${artifactory_username} + # ARTIFACTORY_PASSWORD: ${artifactory_password} + # GRS_USERNAME: ${garasign_username} + # GRS_PASSWORD: ${garasign_password} + # AUTHENTICODE_KEY_NAME: ${authenticode_key_name} + # working_dir: src/github.com/mongodb/mongodb-atlas-cli + # binary: build/package/windows_notarize.sh - func: "package" vars: unstable: ${unstable} @@ -583,15 +583,15 @@ tasks: gh_token: ${cloud_docs_token} workflow: cloud-docs buildvariants: - - name: go_atlascli_msi_snapshot - display_name: "Packaging AtlasCLI (go-msi)" - run_on: - - windows-vsCurrent-small - expansions: - <<: *go_windows_version - unstable: -unstable - tasks: - - name: package_msi + # - name: go_atlascli_msi_snapshot + # display_name: "Packaging AtlasCLI (go-msi)" + # run_on: + # - windows-vsCurrent-small + # expansions: + # <<: *go_windows_version + # unstable: -unstable + # tasks: + # - name: package_msi - name: goreleaser_atlascli_snapshot display_name: "Packaging AtlasCLI (goreleaser)" run_on: @@ -607,8 +607,8 @@ buildvariants: tasks: - name: package_goreleaser depends_on: - - name: package_msi - variant: "go_atlascli_msi_snapshot" + # - name: package_msi + # variant: "go_atlascli_msi_snapshot" - name: generate_and_upload_sbom variant: ssdlc - name: publish_atlascli_snapshot diff --git a/build/package/.goreleaser.yml b/build/package/.goreleaser.yml index 905efe962a..8f42a0f6d9 100644 --- a/build/package/.goreleaser.yml +++ b/build/package/.goreleaser.yml @@ -28,13 +28,15 @@ builds: - cmd: ./build/package/mac_notarize.sh output: true - <<: *build_defaults - builder: prebuilt id: windows goos: [windows] goarch: [amd64] goamd64: [v1] - prebuilt: - path: ./bin/atlas.exe + hooks: + # This will notarize Apple binaries and replace goreleaser bins with the notarized ones + post: + - cmd: ./build/package/windows_notarize.sh + output: true gomod: # https://goreleaser.com/customization/verifiable_builds/ # Proxy a module from proxy.golang.org, making the builds verifiable. # This will only be effective if running against a tag. Snapshots will ignore diff --git a/build/package/windows_notarize.sh b/build/package/windows_notarize.sh index 5da9ddc47e..2e2b806e17 100755 --- a/build/package/windows_notarize.sh +++ b/build/package/windows_notarize.sh @@ -16,16 +16,17 @@ set -Eeou pipefail -VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" -VERSION_NAME="$VERSION_GIT" -if [[ "${unstable-}" == "-unstable" ]]; then - VERSION_NAME="$VERSION_GIT-next" -fi +# VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" +# VERSION_NAME="$VERSION_GIT" +# if [[ "${unstable-}" == "-unstable" ]]; then +# VERSION_NAME="$VERSION_GIT-next" +# fi EXE_FILE="bin/atlas.exe" -MSI_FILE="bin/mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi" +# MSI_FILE="bin/mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi" -if [[ -f "$EXE_FILE" && -f "$MSI_FILE" ]]; then +if [[ -f "$EXE_FILE" ]]; then +# if [[ -f "$EXE_FILE" && -f "$MSI_FILE" ]]; then echo "${ARTIFACTORY_PASSWORD}" | podman login --password-stdin --username "${ARTIFACTORY_USERNAME}" artifactory.corp.mongodb.com echo "GRS_CONFIG_USER1_USERNAME=${GRS_USERNAME}" > .env @@ -40,14 +41,14 @@ if [[ -f "$EXE_FILE" && -f "$MSI_FILE" ]]; then artifactory.corp.mongodb.com/release-tools-container-registry-local/garasign-jsign \ /bin/bash -c "jsign --tsaurl http://timestamp.digicert.com -a ${AUTHENTICODE_KEY_NAME} \"$EXE_FILE\"" - echo "signing $MSI_FILE" - podman run \ - --env-file=.env \ - --rm \ - -v "$(pwd):$(pwd)" \ - -w "$(pwd)" \ - artifactory.corp.mongodb.com/release-tools-container-registry-local/garasign-jsign \ - /bin/bash -c "jsign --tsaurl http://timestamp.digicert.com -a ${AUTHENTICODE_KEY_NAME} \"$MSI_FILE\"" + # echo "signing $MSI_FILE" + # podman run \ + # --env-file=.env \ + # --rm \ + # -v "$(pwd):$(pwd)" \ + # -w "$(pwd)" \ + # artifactory.corp.mongodb.com/release-tools-container-registry-local/garasign-jsign \ + # /bin/bash -c "jsign --tsaurl http://timestamp.digicert.com -a ${AUTHENTICODE_KEY_NAME} \"$MSI_FILE\"" rm .env fi From 6b7cf3afdf16e6f6e9e70582a753f970b34748ec Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 14:32:00 +0100 Subject: [PATCH 02/36] add remote host --- build/ci/release.yml | 8 ++++ build/package/.goreleaser.yml | 3 +- build/package/generate-msi.sh | 42 ----------------- build/package/msi/generate-msi.sh | 33 +++++++++++++ .../{wix/atlascli.json => msi/wix.json} | 2 +- build/package/windows_build_msi.sh | 47 +++++++++++++++++++ 6 files changed, 91 insertions(+), 44 deletions(-) delete mode 100755 build/package/generate-msi.sh create mode 100755 build/package/msi/generate-msi.sh rename build/package/{wix/atlascli.json => msi/wix.json} (93%) create mode 100755 build/package/windows_build_msi.sh diff --git a/build/ci/release.yml b/build/ci/release.yml index f92aab1dc9..76195f8c02 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -367,6 +367,13 @@ functions: shell: bash script: | ./run-copybara.sh + "create-windows-host": + - command: host.create + params: + distro: windows-vsCurrent-small + - command: host.list + params: + path: ${workdir}/src/github.com/mongodb/mongodb-atlas-cli/hosts.json tasks: - name: package_msi tags: ["packaging"] @@ -401,6 +408,7 @@ tasks: - name: compile variant: "code_health" commands: + - func: "create-windows-host" - func: "generate notices" - func: "install goreleaser" - func: "install macos notarization service" diff --git a/build/package/.goreleaser.yml b/build/package/.goreleaser.yml index 8f42a0f6d9..f1223052aa 100644 --- a/build/package/.goreleaser.yml +++ b/build/package/.goreleaser.yml @@ -33,10 +33,11 @@ builds: goarch: [amd64] goamd64: [v1] hooks: - # This will notarize Apple binaries and replace goreleaser bins with the notarized ones post: - cmd: ./build/package/windows_notarize.sh output: true + - cmd: ./build/package/generate-msi.sh + output: true gomod: # https://goreleaser.com/customization/verifiable_builds/ # Proxy a module from proxy.golang.org, making the builds verifiable. # This will only be effective if running against a tag. Snapshots will ignore diff --git a/build/package/generate-msi.sh b/build/package/generate-msi.sh deleted file mode 100755 index 044fe8ce51..0000000000 --- a/build/package/generate-msi.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2020 MongoDB Inc -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -Eeou pipefail - -GOCACHE="$(cygpath --mixed "${workdir:?}\.gocache")" -CGO_ENABLED=0 -export GOCACHE -export CGO_ENABLED - -go-msi check-env - -VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" -VERSION_NAME="$VERSION_GIT" -if [[ "${unstable-}" == "-unstable" ]]; then - VERSION_NAME="$VERSION_GIT-next" -fi - -COMMIT=$(git log -n1 --format=format:"%H") - -SOURCE_FILES=./cmd/atlas -PACKAGE_NAME=mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi -OUTPUT=./bin/atlas.exe -LINKER_FLAGS="-s -w -X github.com/mongodb/mongodb-atlas-cli/atlascli/internal/version.Version=${VERSION_GIT} -X github.com/mongodb/mongodb-atlas-cli/atlascli/internal/version.GitCommit=${COMMIT}" -WIX_MANIFEST_FILE="./build/package/wix/atlascli.json" - -env GOOS=windows GOARCH=amd64 go build \ - -ldflags "${LINKER_FLAGS}" -o ${OUTPUT} "${SOURCE_FILES}" - -go-msi make --path "${WIX_MANIFEST_FILE}" --msi "dist/${PACKAGE_NAME}" --version "${VERSION_GIT}" diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh new file mode 100755 index 0000000000..7a0cd36694 --- /dev/null +++ b/build/package/msi/generate-msi.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Copyright 2020 MongoDB Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -Eeou pipefail + +if [[ "${OUTPUT}" == "" ]]; then + echo "OUTPUT environment variable must be set to the output MSI file path." + exit 1 +fi + +if [[ "${VERSION}" == "" ]]; then + echo "VERSION environment variable must be set to the version of the MSI." + exit 1 +fi + +GOCACHE="$(cygpath --mixed "${workdir:?}\.gocache")" +CGO_ENABLED=0 +export GOCACHE +export CGO_ENABLED + +go-msi make --path "wix.json" --msi "${OUTPUT}" --version "${VERSION}" diff --git a/build/package/wix/atlascli.json b/build/package/msi/wix.json similarity index 93% rename from build/package/wix/atlascli.json rename to build/package/msi/wix.json index 994ece83e4..fb1594f385 100644 --- a/build/package/wix/atlascli.json +++ b/build/package/msi/wix.json @@ -7,7 +7,7 @@ "guid": "cac1e5b1-6547-4c47-a68c-17a5b84dd87b", "items": [ "bin/atlas.exe", - "build/package/msi/installer" + "installer" ] }, "env": { diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh new file mode 100755 index 0000000000..8f4a38bd3b --- /dev/null +++ b/build/package/windows_build_msi.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# Copyright 2020 MongoDB Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -Eeou pipefail + +HOSTNAME=$(jq -r '.hosts[0].dns_name' < hosts.json) +USERNAME=Administrator + +identity_file=~/.ssh/mcipacker.pem +attempts=0 +connection_attempts=${connection_attempts|25} + +while ! ssh \ + -i "$identity_file" \ + -o ConnectTimeout=10 \ + -o ForwardAgent=yes \ + -o IdentitiesOnly=yes \ + -o StrictHostKeyChecking=no \ + "$(printf "%s@%s" "$USERNAME" "$HOSTNAME")" \ + exit +do + [ "$attempts" -ge "$connection_attempts" ] && printf "SSH connection attempt %d/%d failed." "$attempts" "$connection_attempts" && exit 1 + ((attempts++)) + printf "SSH connection attempt %d/%d failed. Retrying...\n" "$attempts" "$connection_attempts" + sleep 10 +done + +ssh \ + -i "$identity_file" \ + -o ConnectTimeout=10 \ + -o ForwardAgent=yes \ + -o IdentitiesOnly=yes \ + -o StrictHostKeyChecking=no \ + "$(printf "%s@%s" "$USERNAME" "$HOSTNAME")" \ + bash -c 'echo "echo from remote host"' From a99f8c63398ae1e0c4909903f597948f72d562d6 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 15:00:06 +0100 Subject: [PATCH 03/36] fix --- build/package/.goreleaser.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/package/.goreleaser.yml b/build/package/.goreleaser.yml index f1223052aa..82b7398436 100644 --- a/build/package/.goreleaser.yml +++ b/build/package/.goreleaser.yml @@ -36,7 +36,7 @@ builds: post: - cmd: ./build/package/windows_notarize.sh output: true - - cmd: ./build/package/generate-msi.sh + - cmd: ./build/package/windows_build_msi.sh output: true gomod: # https://goreleaser.com/customization/verifiable_builds/ # Proxy a module from proxy.golang.org, making the builds verifiable. From 280dc638450e60bc2694bcdde1eb436d8de5e84c Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 16:04:23 +0100 Subject: [PATCH 04/36] debug --- build/package/windows_build_msi.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 8f4a38bd3b..39883ad54e 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -15,6 +15,9 @@ set -Eeou pipefail +echo "$PWD" +ls -la + HOSTNAME=$(jq -r '.hosts[0].dns_name' < hosts.json) USERNAME=Administrator From e8e28b0c4498319c0175cb0c3b5761c04372649e Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 16:57:57 +0100 Subject: [PATCH 05/36] tests --- build/ci/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/ci/release.yml b/build/ci/release.yml index 76195f8c02..6e9cce6f76 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -373,6 +373,8 @@ functions: distro: windows-vsCurrent-small - command: host.list params: + wait: true + num_hosts: 1 path: ${workdir}/src/github.com/mongodb/mongodb-atlas-cli/hosts.json tasks: - name: package_msi From fe62db21b10ef5fb359124dc1926be443ea2732a Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 17:09:29 +0100 Subject: [PATCH 06/36] fix --- build/package/windows_build_msi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 39883ad54e..d59fed3ea6 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -18,7 +18,7 @@ set -Eeou pipefail echo "$PWD" ls -la -HOSTNAME=$(jq -r '.hosts[0].dns_name' < hosts.json) +HOSTNAME=$(jq -r '.[0].dns_name' < hosts.json) USERNAME=Administrator identity_file=~/.ssh/mcipacker.pem From 7e26ae5f9fe01fe0b2cb92160a8392ca9c28d524 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 17:43:17 +0100 Subject: [PATCH 07/36] fix --- build/package/windows_build_msi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index d59fed3ea6..d4fe7b5da2 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -23,7 +23,7 @@ USERNAME=Administrator identity_file=~/.ssh/mcipacker.pem attempts=0 -connection_attempts=${connection_attempts|25} +connection_attempts=25 while ! ssh \ -i "$identity_file" \ From 7a095cf250c919d193b806a8e64ff3777ee038ce Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 17:44:44 +0100 Subject: [PATCH 08/36] fix --- build/package/windows_build_msi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index d4fe7b5da2..ec80461715 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -34,8 +34,8 @@ while ! ssh \ "$(printf "%s@%s" "$USERNAME" "$HOSTNAME")" \ exit do - [ "$attempts" -ge "$connection_attempts" ] && printf "SSH connection attempt %d/%d failed." "$attempts" "$connection_attempts" && exit 1 ((attempts++)) + [ "$attempts" -ge "$connection_attempts" ] && printf "SSH connection attempt %d/%d failed." "$attempts" "$connection_attempts" && exit 1 printf "SSH connection attempt %d/%d failed. Retrying...\n" "$attempts" "$connection_attempts" sleep 10 done From 6a8e571403f4f4960ec368875c5d03141f04e76a Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 17:58:48 +0100 Subject: [PATCH 09/36] fix --- build/ci/release.yml | 8 ++++++++ build/package/windows_build_msi.sh | 3 --- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index 6e9cce6f76..1c54ebe2b8 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -376,6 +376,14 @@ functions: wait: true num_hosts: 1 path: ${workdir}/src/github.com/mongodb/mongodb-atlas-cli/hosts.json + - command: shell.exec + params: + <<: *go_options + script: | + set -Eeou pipefail + echo "**** DEBUG ****" + ls -la ~/.ssh + echo "**** DEBUG ****" tasks: - name: package_msi tags: ["packaging"] diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index ec80461715..e60a18128b 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -15,9 +15,6 @@ set -Eeou pipefail -echo "$PWD" -ls -la - HOSTNAME=$(jq -r '.[0].dns_name' < hosts.json) USERNAME=Administrator From 0e3958232b27e9405ce8ee4bb22550e45c3364b4 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 18:10:58 +0100 Subject: [PATCH 10/36] fix --- build/ci/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index 1c54ebe2b8..1649e749e7 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -382,7 +382,7 @@ functions: script: | set -Eeou pipefail echo "**** DEBUG ****" - ls -la ~/.ssh + echo "${__project_aws_ssh_key_name}" echo "**** DEBUG ****" tasks: - name: package_msi From d0bade5a2208a69e56715e22986038e375e1c73d Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 18:27:56 +0100 Subject: [PATCH 11/36] fix --- build/ci/release.yml | 7 ++-- build/ci/ssh-ready.sh | 65 ++++++++++++++++++++++++++++++ build/package/windows_build_msi.sh | 33 +++------------ 3 files changed, 74 insertions(+), 31 deletions(-) create mode 100755 build/ci/ssh-ready.sh diff --git a/build/ci/release.yml b/build/ci/release.yml index 1649e749e7..0179ceec0d 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -375,15 +375,14 @@ functions: params: wait: true num_hosts: 1 - path: ${workdir}/src/github.com/mongodb/mongodb-atlas-cli/hosts.json + path: ${workdir}/src/github.com/mongodb/mongodb-atlas-cli/build/ci/hosts.json - command: shell.exec params: <<: *go_options script: | set -Eeou pipefail - echo "**** DEBUG ****" - echo "${__project_aws_ssh_key_name}" - echo "**** DEBUG ****" + echo "${__project_aws_ssh_key_value}" > ./build/ci/ssh_id + chmod 0600 ./build/ci/ssh_id tasks: - name: package_msi tags: ["packaging"] diff --git a/build/ci/ssh-ready.sh b/build/ci/ssh-ready.sh new file mode 100755 index 0000000000..f7fa302398 --- /dev/null +++ b/build/ci/ssh-ready.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# Copyright 2025 MongoDB Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -euo pipefail + +declare -i attempts +declare -i connection_attempts +declare -ri timeout=10 + +while getopts 'i:h:t:u:' opt; do + case ${opt} in + i) keyfile="${OPTARG}" ;; # SSH identity file + u) user="${OPTARG}" ;; # Username on the remote host + h) hostsfile="${OPTARG}" ;; # Output of Evergreen host.list + t) connection_attempts="${OPTARG}" ;; # How many times to attempt to connect via SSH + *) + echo "Invalid option" + exit 1 + ;; + esac +done + +hosts=$( + cat </dev/null; do + if [[ "${attempts}" -ge "${connection_attempts}" ]]; then + echo 'Connect to spawn host failed' + exit 1 + fi + ((attempts++)) + + echo "SSH connection attempt $attempts/$connection_attempts failed. Retrying ($host)..." + # sleep for Permission denied (publickey) errors + sleep "$timeout" + done + set -e +done diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index e60a18128b..103e7c57ce 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -15,33 +15,12 @@ set -Eeou pipefail -HOSTNAME=$(jq -r '.[0].dns_name' < hosts.json) -USERNAME=Administrator +keyfile="${keyfile:-./build/ci/ssh_id}" +user="${user:-Administrator}" +hostsfile="${hostsfile:-./build/ci/hosts.json}" -identity_file=~/.ssh/mcipacker.pem -attempts=0 -connection_attempts=25 +build/ci/ssh-ready.sh -u "$user" -i "$keyfile" -h "$hostsfile" -while ! ssh \ - -i "$identity_file" \ - -o ConnectTimeout=10 \ - -o ForwardAgent=yes \ - -o IdentitiesOnly=yes \ - -o StrictHostKeyChecking=no \ - "$(printf "%s@%s" "$USERNAME" "$HOSTNAME")" \ - exit -do - ((attempts++)) - [ "$attempts" -ge "$connection_attempts" ] && printf "SSH connection attempt %d/%d failed." "$attempts" "$connection_attempts" && exit 1 - printf "SSH connection attempt %d/%d failed. Retrying...\n" "$attempts" "$connection_attempts" - sleep 10 -done +host=$(jq -r '.[0].dns_name' "$hostsfile") -ssh \ - -i "$identity_file" \ - -o ConnectTimeout=10 \ - -o ForwardAgent=yes \ - -o IdentitiesOnly=yes \ - -o StrictHostKeyChecking=no \ - "$(printf "%s@%s" "$USERNAME" "$HOSTNAME")" \ - bash -c 'echo "echo from remote host"' +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" echo "SSH connection to $host successful." From a2ba6a117b913c350cc3cd7b3a409daff6923a00 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 18:53:24 +0100 Subject: [PATCH 12/36] fix --- build/package/msi/generate-msi.sh | 18 +++++++----------- build/package/windows_build_msi.sh | 17 ++++++++++++++++- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index 7a0cd36694..a2586d9e9c 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -15,19 +15,15 @@ set -Eeou pipefail -if [[ "${OUTPUT}" == "" ]]; then - echo "OUTPUT environment variable must be set to the output MSI file path." - exit 1 -fi - -if [[ "${VERSION}" == "" ]]; then - echo "VERSION environment variable must be set to the version of the MSI." - exit 1 -fi - +VERSION=$(cat msi/version.txt) GOCACHE="$(cygpath --mixed "${workdir:?}\.gocache")" CGO_ENABLED=0 export GOCACHE export CGO_ENABLED +export VERSION + +choco install -y "go-msi" --force + +go-msi make --path "wix.json" --msi "out.msi" --version "${VERSION}" -go-msi make --path "wix.json" --msi "${OUTPUT}" --version "${VERSION}" +choco uninstall -y "go-msi" --force diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 103e7c57ce..e2cdc905e8 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -23,4 +23,19 @@ build/ci/ssh-ready.sh -u "$user" -i "$keyfile" -h "$hostsfile" host=$(jq -r '.[0].dns_name' "$hostsfile") -ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" echo "SSH connection to $host successful." +mkdir -p ./build/package/msi/bin + +cp bin/atlas.exe ./build/package/msi/bin/atlas.exe + +cd ./build/package +git tag --list 'atlascli/v*' --sort=-taggerdate | head -1 | cut -d 'v' -f 2 > msi/version.txt +zip -r msi.zip msi >/dev/null 2>&1 +cd ../.. + +scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" "build/package/msi.zip:/cygdrive/c/Users/Administrator/msi.zip" + +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" bash -c 'unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' + +scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" "/cygdrive/c/Users/Administrator/msi/out.msi:${PWD}/build/package/msi/out.msi" + +ls -la ./build/package/msi/ From 00b5c8c95647e89e228704dfc1da35fef27a8212 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Fri, 30 May 2025 19:07:05 +0100 Subject: [PATCH 13/36] fix --- build/ci/release.yml | 38 ------------------------------ build/package/windows_build_msi.sh | 15 ++++++++---- build/package/windows_notarize.sh | 19 +-------------- 3 files changed, 12 insertions(+), 60 deletions(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index 0179ceec0d..dc538db3ab 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -422,31 +422,6 @@ tasks: - func: "install goreleaser" - func: "install macos notarization service" - func: "install gh-token" - # - command: subprocess.exec - # type: test - # params: - # working_dir: src/github.com/mongodb/mongodb-atlas-cli - # include_expansions_in_env: - # - project - # - revision - # - created_at - # env: - # BUCKET: mongodb-mongocli-build - # unstable: ${unstable} - # binary: build/package/download-win-binaries.sh - # - command: subprocess.exec - # type: test - # params: - # include_expansions_in_env: - # - unstable - # env: - # ARTIFACTORY_USERNAME: ${artifactory_username} - # ARTIFACTORY_PASSWORD: ${artifactory_password} - # GRS_USERNAME: ${garasign_username} - # GRS_PASSWORD: ${garasign_password} - # AUTHENTICODE_KEY_NAME: ${authenticode_key_name} - # working_dir: src/github.com/mongodb/mongodb-atlas-cli - # binary: build/package/windows_notarize.sh - func: "package" vars: unstable: ${unstable} @@ -651,8 +626,6 @@ buildvariants: tasks: - name: package_goreleaser depends_on: - - name: package_msi - variant: release_atlascli_msi - name: generate_and_upload_sbom variant: ssdlc - name: copybara @@ -666,17 +639,6 @@ buildvariants: <<: *go_linux_version tasks: - name: copybara - - name: release_atlascli_msi - display_name: "Release AtlasCLI (go-msi)" - run_on: - - windows-vsCurrent-small - git_tag_only: true - tags: - - foliage_health - expansions: - <<: *go_windows_version - tasks: - - name: package_msi - name: release_atlascli_publish display_name: "Publish AtlasCLI Generator" run_on: diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index e2cdc905e8..abaf5c389a 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -25,10 +25,10 @@ host=$(jq -r '.[0].dns_name' "$hostsfile") mkdir -p ./build/package/msi/bin -cp bin/atlas.exe ./build/package/msi/bin/atlas.exe +cp dist/windows_windows_amd64_v1/bin/atlas.exe ./build/package/msi/bin/atlas.exe +git tag --list 'atlascli/v*' --sort=-taggerdate | head -1 | cut -d 'v' -f 2 > ./build/package/msi/version.txt cd ./build/package -git tag --list 'atlascli/v*' --sort=-taggerdate | head -1 | cut -d 'v' -f 2 > msi/version.txt zip -r msi.zip msi >/dev/null 2>&1 cd ../.. @@ -36,6 +36,13 @@ scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o Strict ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" bash -c 'unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' -scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" "/cygdrive/c/Users/Administrator/msi/out.msi:${PWD}/build/package/msi/out.msi" +VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" +VERSION_NAME="$VERSION_GIT" +if [[ "${unstable-}" == "-unstable" ]]; then + VERSION_NAME="$VERSION_GIT-next" +fi +MSI_FILE="${PWD}/bin/mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi" -ls -la ./build/package/msi/ +scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" "/cygdrive/c/Users/Administrator/msi/out.msi:${MSI_FILE}" + +ls -la ./bin diff --git a/build/package/windows_notarize.sh b/build/package/windows_notarize.sh index 2e2b806e17..5516f54cac 100755 --- a/build/package/windows_notarize.sh +++ b/build/package/windows_notarize.sh @@ -16,17 +16,9 @@ set -Eeou pipefail -# VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" -# VERSION_NAME="$VERSION_GIT" -# if [[ "${unstable-}" == "-unstable" ]]; then -# VERSION_NAME="$VERSION_GIT-next" -# fi - -EXE_FILE="bin/atlas.exe" -# MSI_FILE="bin/mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi" +EXE_FILE="dist/windows_windows_amd64_v1/bin/atlas.exe" if [[ -f "$EXE_FILE" ]]; then -# if [[ -f "$EXE_FILE" && -f "$MSI_FILE" ]]; then echo "${ARTIFACTORY_PASSWORD}" | podman login --password-stdin --username "${ARTIFACTORY_USERNAME}" artifactory.corp.mongodb.com echo "GRS_CONFIG_USER1_USERNAME=${GRS_USERNAME}" > .env @@ -41,14 +33,5 @@ if [[ -f "$EXE_FILE" ]]; then artifactory.corp.mongodb.com/release-tools-container-registry-local/garasign-jsign \ /bin/bash -c "jsign --tsaurl http://timestamp.digicert.com -a ${AUTHENTICODE_KEY_NAME} \"$EXE_FILE\"" - # echo "signing $MSI_FILE" - # podman run \ - # --env-file=.env \ - # --rm \ - # -v "$(pwd):$(pwd)" \ - # -w "$(pwd)" \ - # artifactory.corp.mongodb.com/release-tools-container-registry-local/garasign-jsign \ - # /bin/bash -c "jsign --tsaurl http://timestamp.digicert.com -a ${AUTHENTICODE_KEY_NAME} \"$MSI_FILE\"" - rm .env fi From 5a3464c034a60573f7b5b29d5dfcffb32c6dc516 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 09:40:29 +0100 Subject: [PATCH 14/36] fix --- build/ci/release.yml | 43 ++++++++++++++----------------- build/package/windows_notarize.sh | 2 ++ 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index dc538db3ab..85b2df5fb3 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -383,30 +383,26 @@ functions: set -Eeou pipefail echo "${__project_aws_ssh_key_value}" > ./build/ci/ssh_id chmod 0600 ./build/ci/ssh_id + "prepare-windows-notarize": + - command: shell.exec + params: + <<: *go_options + env: + <<: *go_env + ARTIFACTORY_USERNAME: ${artifactory_username} + ARTIFACTORY_PASSWORD: ${artifactory_password} + GRS_USERNAME: ${garasign_username} + GRS_PASSWORD: ${garasign_password} + AUTHENTICODE_KEY_NAME: ${authenticode_key_name} + script: | + set -Eeou pipefail + echo "ARTIFACTORY_USERNAME=${ARTIFACTORY_USERNAME}" > build/package/windows_notarize.env + echo "ARTIFACTORY_PASSWORD=${ARTIFACTORY_PASSWORD}" >> build/package/windows_notarize.env + echo "GRS_USERNAME=${GRS_USERNAME}" >> build/package/windows_notarize.env + echo "GRS_PASSWORD=${GRS_PASSWORD}" >> build/package/windows_notarize.env + echo "AUTHENTICODE_KEY_NAME=${AUTHENTICODE_KEY_NAME}" >> build/package/windows_notarize.env + chmod 0600 build/package/windows_notarize.env tasks: - - name: package_msi - tags: ["packaging"] - depends_on: - - name: compile - variant: "code_health" - commands: - - func: "install go-msi" - - func: "generate msi" - vars: - unstable: ${unstable} - - func: "uninstall go-msi" - - command: s3.put - params: - aws_key: ${aws_key} - aws_secret: ${aws_secret} - local_files_include_filter: - - src/github.com/mongodb/mongodb-atlas-cli/bin/*.exe - - src/github.com/mongodb/mongodb-atlas-cli/dist/*.msi - remote_file: ${project}/dist/${revision}_${created_at}/unsigned_ - bucket: mongodb-mongocli-build - permissions: public-read - content_type: ${content_type|application/octet-stream} - display_name: unsigned - name: generate_and_upload_sbom commands: - func: "generate sbom" @@ -422,6 +418,7 @@ tasks: - func: "install goreleaser" - func: "install macos notarization service" - func: "install gh-token" + - func: "prepare-windows-notarize" - func: "package" vars: unstable: ${unstable} diff --git a/build/package/windows_notarize.sh b/build/package/windows_notarize.sh index 5516f54cac..3553807b2a 100755 --- a/build/package/windows_notarize.sh +++ b/build/package/windows_notarize.sh @@ -16,6 +16,8 @@ set -Eeou pipefail +set -a && source "./build/package/windows_notarize.env" && set +a + EXE_FILE="dist/windows_windows_amd64_v1/bin/atlas.exe" if [[ -f "$EXE_FILE" ]]; then From 5078fbf16a1fb04b0ccaf8516453c93a16ee7879 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 09:41:38 +0100 Subject: [PATCH 15/36] fix --- build/ci/release.yml | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index 85b2df5fb3..47027bd69d 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -383,25 +383,6 @@ functions: set -Eeou pipefail echo "${__project_aws_ssh_key_value}" > ./build/ci/ssh_id chmod 0600 ./build/ci/ssh_id - "prepare-windows-notarize": - - command: shell.exec - params: - <<: *go_options - env: - <<: *go_env - ARTIFACTORY_USERNAME: ${artifactory_username} - ARTIFACTORY_PASSWORD: ${artifactory_password} - GRS_USERNAME: ${garasign_username} - GRS_PASSWORD: ${garasign_password} - AUTHENTICODE_KEY_NAME: ${authenticode_key_name} - script: | - set -Eeou pipefail - echo "ARTIFACTORY_USERNAME=${ARTIFACTORY_USERNAME}" > build/package/windows_notarize.env - echo "ARTIFACTORY_PASSWORD=${ARTIFACTORY_PASSWORD}" >> build/package/windows_notarize.env - echo "GRS_USERNAME=${GRS_USERNAME}" >> build/package/windows_notarize.env - echo "GRS_PASSWORD=${GRS_PASSWORD}" >> build/package/windows_notarize.env - echo "AUTHENTICODE_KEY_NAME=${AUTHENTICODE_KEY_NAME}" >> build/package/windows_notarize.env - chmod 0600 build/package/windows_notarize.env tasks: - name: generate_and_upload_sbom commands: @@ -418,7 +399,6 @@ tasks: - func: "install goreleaser" - func: "install macos notarization service" - func: "install gh-token" - - func: "prepare-windows-notarize" - func: "package" vars: unstable: ${unstable} @@ -426,6 +406,7 @@ tasks: ARTIFACTORY_PASSWORD: ${artifactory_password} GRS_USERNAME: ${garasign_username} GRS_PASSWORD: ${garasign_password} + AUTHENTICODE_KEY_NAME: ${authenticode_key_name} - func: "rename pkg" vars: unstable: ${unstable} From 612535005e8af1ffd79c91ac9f7ec7326fecf1d5 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 09:53:15 +0100 Subject: [PATCH 16/36] fix --- build/package/windows_notarize.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/build/package/windows_notarize.sh b/build/package/windows_notarize.sh index 3553807b2a..5516f54cac 100755 --- a/build/package/windows_notarize.sh +++ b/build/package/windows_notarize.sh @@ -16,8 +16,6 @@ set -Eeou pipefail -set -a && source "./build/package/windows_notarize.env" && set +a - EXE_FILE="dist/windows_windows_amd64_v1/bin/atlas.exe" if [[ -f "$EXE_FILE" ]]; then From d2c71fd19d1a3d4eb66283b1f3fe57ba28e69bc7 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 12:46:06 +0100 Subject: [PATCH 17/36] fix --- build/ci/release.yml | 38 +------------------------------------- 1 file changed, 1 insertion(+), 37 deletions(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index 47027bd69d..2e2a053684 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -126,6 +126,7 @@ functions: ARTIFACTORY_PASSWORD: ${artifactory_password} GRS_USERNAME: ${garasign_username} GRS_PASSWORD: ${garasign_password} + AUTHENTICODE_KEY_NAME: ${authenticode_key_name} GITHUB_TOKEN: ${github_token} include_expansions_in_env: - go_base_path @@ -136,38 +137,6 @@ functions: - goreleaser_key - unstable binary: build/package/package.sh - "install go-msi": - - command: subprocess.exec - type: setup - params: - working_dir: src/github.com/mongodb/mongodb-atlas-cli - command: choco install -y "go-msi" --force - "uninstall go-msi": - - command: subprocess.exec - type: setup - params: - working_dir: src/github.com/mongodb/mongodb-atlas-cli - command: choco uninstall -y "go-msi" - "generate msi": - - command: subprocess.exec - type: test - params: - <<: *go_options - add_to_path: - - ${go_bin} - - ${go_base_path}${workdir}/bin - - ${go_base_path}${workdir}/src/github.com/mongodb/mongodb-atlas-cli/bin - - "/cygdrive/c/Program Files/go-msi" - - "/cygdrive/c/wixtools/bin" - env: - <<: *go_env - SECRET_API_KEY: ${chocolatey_api_key} - ARTIFACTORY_USERNAME: ${artifactory_username} - ARTIFACTORY_PASSWORD: ${artifactory_password} - GRS_USERNAME: ${garasign_username} - GRS_PASSWORD: ${garasign_password} - unstable: ${unstable} - command: bash.exe -c build/package/generate-msi.sh "rename pkg": - command: subprocess.exec type: test @@ -402,11 +371,6 @@ tasks: - func: "package" vars: unstable: ${unstable} - ARTIFACTORY_USERNAME: ${artifactory_username} - ARTIFACTORY_PASSWORD: ${artifactory_password} - GRS_USERNAME: ${garasign_username} - GRS_PASSWORD: ${garasign_password} - AUTHENTICODE_KEY_NAME: ${authenticode_key_name} - func: "rename pkg" vars: unstable: ${unstable} From 5217c100482f083ffd73b3f07eb85d0b62b5a279 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 13:51:37 +0100 Subject: [PATCH 18/36] fix --- build/package/windows_build_msi.sh | 32 ++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index abaf5c389a..2109dfce21 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -25,16 +25,16 @@ host=$(jq -r '.[0].dns_name' "$hostsfile") mkdir -p ./build/package/msi/bin -cp dist/windows_windows_amd64_v1/bin/atlas.exe ./build/package/msi/bin/atlas.exe +cp ./dist/windows_windows_amd64_v1/bin/atlas.exe ./build/package/msi/bin/atlas.exe git tag --list 'atlascli/v*' --sort=-taggerdate | head -1 | cut -d 'v' -f 2 > ./build/package/msi/version.txt - cd ./build/package -zip -r msi.zip msi >/dev/null 2>&1 +zip -r msi.zip msi cd ../.. +echo "Uploading $PWD/build/package/msi.zip to ${user}@${host}:/cygdrive/c/Users/Administrator/msi.zip" +scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" "${PWD}/build/package/msi.zip:/cygdrive/c/Users/Administrator/msi.zip" +rm -rf ./build/package/msi.zip ./build/package/msi/version.txt ./build/package/msi/bin/atlas.exe -scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" "build/package/msi.zip:/cygdrive/c/Users/Administrator/msi.zip" - -ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" bash -c 'unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" VERSION_NAME="$VERSION_GIT" @@ -43,6 +43,22 @@ if [[ "${unstable-}" == "-unstable" ]]; then fi MSI_FILE="${PWD}/bin/mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi" -scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" "/cygdrive/c/Users/Administrator/msi/out.msi:${MSI_FILE}" +scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" "/cygdrive/c/Users/Administrator/msi/out.msi:${MSI_FILE}" + +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'rm -rf "/cygdrive/c/Users/Administrator/msi"' + +echo "${ARTIFACTORY_PASSWORD}" | podman login --password-stdin --username "${ARTIFACTORY_USERNAME}" artifactory.corp.mongodb.com + +echo "GRS_CONFIG_USER1_USERNAME=${GRS_USERNAME}" > .env +echo "GRS_CONFIG_USER1_PASSWORD=${GRS_PASSWORD}" >> .env + +echo "signing $MSI_FILE" +podman run \ + --env-file=.env \ + --rm \ + -v "$(pwd):$(pwd)" \ + -w "$(pwd)" \ + artifactory.corp.mongodb.com/release-tools-container-registry-local/garasign-jsign \ + /bin/bash -c "jsign --tsaurl http://timestamp.digicert.com -a ${AUTHENTICODE_KEY_NAME} \"$MSI_FILE\"" -ls -la ./bin +rm .env From c0256f51e3b06e187cb5c6e4d455f3b3efa73e48 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 14:06:26 +0100 Subject: [PATCH 19/36] fix --- build/package/windows_build_msi.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 2109dfce21..b2f010405c 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -31,8 +31,8 @@ cd ./build/package zip -r msi.zip msi cd ../.. echo "Uploading $PWD/build/package/msi.zip to ${user}@${host}:/cygdrive/c/Users/Administrator/msi.zip" -scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" "${PWD}/build/package/msi.zip:/cygdrive/c/Users/Administrator/msi.zip" -rm -rf ./build/package/msi.zip ./build/package/msi/version.txt ./build/package/msi/bin/atlas.exe +scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${PWD}/build/package/msi.zip" "${user}@${host}:/cygdrive/c/Users/Administrator/msi.zip" +rm -rf ./build/package/msi.zip ./build/package/msi/version.txt ./build/package/msi/bin/atlas.exe ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' @@ -43,7 +43,7 @@ if [[ "${unstable-}" == "-unstable" ]]; then fi MSI_FILE="${PWD}/bin/mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi" -scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" "/cygdrive/c/Users/Administrator/msi/out.msi:${MSI_FILE}" +scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}:/cygdrive/c/Users/Administrator/msi/out.msi" "${MSI_FILE}" ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'rm -rf "/cygdrive/c/Users/Administrator/msi"' From 12388c1d09fab7c5dc2fb60637a1ae8e1e9b0247 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 14:11:58 +0100 Subject: [PATCH 20/36] fix --- build/package/windows_build_msi.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index b2f010405c..11bd6d3b2d 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -19,21 +19,24 @@ keyfile="${keyfile:-./build/ci/ssh_id}" user="${user:-Administrator}" hostsfile="${hostsfile:-./build/ci/hosts.json}" -build/ci/ssh-ready.sh -u "$user" -i "$keyfile" -h "$hostsfile" - -host=$(jq -r '.[0].dns_name' "$hostsfile") - +echo "Packaging $PWD/build/package/msi.zip" mkdir -p ./build/package/msi/bin - cp ./dist/windows_windows_amd64_v1/bin/atlas.exe ./build/package/msi/bin/atlas.exe git tag --list 'atlascli/v*' --sort=-taggerdate | head -1 | cut -d 'v' -f 2 > ./build/package/msi/version.txt cd ./build/package zip -r msi.zip msi +rm -rf ./msi/version.txt ./msi/bin/atlas.exe cd ../.. + +echo "Waiting for the Windows host to become available..." +build/ci/ssh-ready.sh -u "$user" -i "$keyfile" -h "$hostsfile" +host=$(jq -r '.[0].dns_name' "$hostsfile") + echo "Uploading $PWD/build/package/msi.zip to ${user}@${host}:/cygdrive/c/Users/Administrator/msi.zip" scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${PWD}/build/package/msi.zip" "${user}@${host}:/cygdrive/c/Users/Administrator/msi.zip" -rm -rf ./build/package/msi.zip ./build/package/msi/version.txt ./build/package/msi/bin/atlas.exe +rm -rf ./build/package/msi.zip +echo "Building MSI on ${user}@${host}..." ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" @@ -43,10 +46,13 @@ if [[ "${unstable-}" == "-unstable" ]]; then fi MSI_FILE="${PWD}/bin/mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi" +echo "Downloading from ${user}@${host}:/cygdrive/c/Users/Administrator/msi/out.msi to ${MSI_FILE}" scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}:/cygdrive/c/Users/Administrator/msi/out.msi" "${MSI_FILE}" +echo "Cleaning up ${user}@${host}:/cygdrive/c/Users/Administrator/msi" ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'rm -rf "/cygdrive/c/Users/Administrator/msi"' +echo "Notarizing ${MSI_FILE}" echo "${ARTIFACTORY_PASSWORD}" | podman login --password-stdin --username "${ARTIFACTORY_USERNAME}" artifactory.corp.mongodb.com echo "GRS_CONFIG_USER1_USERNAME=${GRS_USERNAME}" > .env From 92ee791fac7482ec0d5b34b042c3829bbfc166d3 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 14:13:06 +0100 Subject: [PATCH 21/36] fix --- build/ci/release.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index 5a0dcbeef1..e008e03572 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -496,15 +496,6 @@ tasks: gh_token: ${cloud_docs_token} workflow: cloud-docs buildvariants: - # - name: go_atlascli_msi_snapshot - # display_name: "Packaging AtlasCLI (go-msi)" - # run_on: - # - windows-vsCurrent-small - # expansions: - # <<: *go_windows_version - # unstable: -unstable - # tasks: - # - name: package_msi - name: goreleaser_atlascli_snapshot display_name: "Packaging AtlasCLI (goreleaser)" run_on: @@ -520,8 +511,6 @@ buildvariants: tasks: - name: package_goreleaser depends_on: - # - name: package_msi - # variant: "go_atlascli_msi_snapshot" - name: generate_and_upload_sbom variant: ssdlc - name: publish_atlascli_snapshot From ca084bd843513b3efecac1e9741ca92be65fe836 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 14:42:58 +0100 Subject: [PATCH 22/36] fix --- build/package/msi/generate-msi.sh | 4 +--- build/package/windows_build_msi.sh | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index a2586d9e9c..a1195ec0ab 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -15,15 +15,13 @@ set -Eeou pipefail -VERSION=$(cat msi/version.txt) GOCACHE="$(cygpath --mixed "${workdir:?}\.gocache")" CGO_ENABLED=0 export GOCACHE export CGO_ENABLED -export VERSION choco install -y "go-msi" --force -go-msi make --path "wix.json" --msi "out.msi" --version "${VERSION}" +go-msi make --path "wix.json" --msi "out.msi" --version "$(cat version.txt)" choco uninstall -y "go-msi" --force diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 11bd6d3b2d..474745ecef 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -37,7 +37,7 @@ scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o Strict rm -rf ./build/package/msi.zip echo "Building MSI on ${user}@${host}..." -ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'mkdir -p "/cygdrive/c/Users/Administrator/msi" && unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" VERSION_NAME="$VERSION_GIT" From a74af5beda643dfd2a8f1c8be9850366ff9b7937 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 15:22:05 +0100 Subject: [PATCH 23/36] fix --- build/package/windows_build_msi.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 474745ecef..9437944335 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -37,7 +37,8 @@ scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o Strict rm -rf ./build/package/msi.zip echo "Building MSI on ${user}@${host}..." -ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'mkdir -p "/cygdrive/c/Users/Administrator/msi" && unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' +COMMAND='mkdir -p "/cygdrive/c/Users/Administrator/msi" && unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c "$COMMAND" VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" VERSION_NAME="$VERSION_GIT" From 3192d1a6321c22d3f401b79cee1ccd9fe6d4a9f7 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 15:35:37 +0100 Subject: [PATCH 24/36] fix --- build/package/windows_build_msi.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 9437944335..a91dca9bb7 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -37,8 +37,13 @@ scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o Strict rm -rf ./build/package/msi.zip echo "Building MSI on ${user}@${host}..." -COMMAND='mkdir -p "/cygdrive/c/Users/Administrator/msi" && unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" && rm -rf "/cygdrive/c/Users/Administrator/msi.zip" && cd "/cygdrive/c/Users/Administrator/msi" && ./generate-msi.sh' -ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c "$COMMAND" +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" /bin/bash << EOF +mkdir -p "/cygdrive/c/Users/Administrator/msi" +unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" +rm -rf "/cygdrive/c/Users/Administrator/msi.zip" +cd "/cygdrive/c/Users/Administrator/msi" +./generate-msi.sh +EOF VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" VERSION_NAME="$VERSION_GIT" From 65efe94c5c456718d1f21c1d067c65ce3e44894a Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 15:58:55 +0100 Subject: [PATCH 25/36] fix --- build/package/windows_build_msi.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index a91dca9bb7..f37dd2e46d 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -37,13 +37,14 @@ scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o Strict rm -rf ./build/package/msi.zip echo "Building MSI on ${user}@${host}..." -ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" /bin/bash << EOF -mkdir -p "/cygdrive/c/Users/Administrator/msi" -unzip -o "/cygdrive/c/Users/Administrator/msi.zip" -d "/cygdrive/c/Users/Administrator/msi" -rm -rf "/cygdrive/c/Users/Administrator/msi.zip" -cd "/cygdrive/c/Users/Administrator/msi" -./generate-msi.sh -EOF +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" "echo 'extracting msi.zip to /cygdrive/c/Users/Administrator/msi'; +mkdir -p '/cygdrive/c/Users/Administrator/msi'; +unzip -o '/cygdrive/c/Users/Administrator/msi.zip' -d '/cygdrive/c/Users/Administrator/msi'; +rm -rf '/cygdrive/c/Users/Administrator/msi.zip'; +echo 'running generate-msi.sh in /cygdrive/c/Users/Administrator/msi'; +cd '/cygdrive/c/Users/Administrator/msi'; +./generate-msi.sh; +" VERSION_GIT="$(git tag --list "atlascli/v*" --sort=taggerdate | tail -1 | cut -d "v" -f 2)" VERSION_NAME="$VERSION_GIT" From a3ff63bec5db5a0aa56e344ce56257e34fd9acb4 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 16:20:50 +0100 Subject: [PATCH 26/36] fix --- build/package/windows_build_msi.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index f37dd2e46d..9080008b2e 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -43,6 +43,7 @@ unzip -o '/cygdrive/c/Users/Administrator/msi.zip' -d '/cygdrive/c/Users/Adminis rm -rf '/cygdrive/c/Users/Administrator/msi.zip'; echo 'running generate-msi.sh in /cygdrive/c/Users/Administrator/msi'; cd '/cygdrive/c/Users/Administrator/msi'; +ls -la; ./generate-msi.sh; " From d63bf068bdb9e0153f81679dab6d7089e5b2ba47 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 16:33:22 +0100 Subject: [PATCH 27/36] fix --- build/package/windows_build_msi.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 9080008b2e..597f43c373 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -38,12 +38,10 @@ rm -rf ./build/package/msi.zip echo "Building MSI on ${user}@${host}..." ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}" "echo 'extracting msi.zip to /cygdrive/c/Users/Administrator/msi'; -mkdir -p '/cygdrive/c/Users/Administrator/msi'; -unzip -o '/cygdrive/c/Users/Administrator/msi.zip' -d '/cygdrive/c/Users/Administrator/msi'; +unzip -o '/cygdrive/c/Users/Administrator/msi.zip' -d '/cygdrive/c/Users/Administrator'; rm -rf '/cygdrive/c/Users/Administrator/msi.zip'; echo 'running generate-msi.sh in /cygdrive/c/Users/Administrator/msi'; cd '/cygdrive/c/Users/Administrator/msi'; -ls -la; ./generate-msi.sh; " From 3211ad3a51b4b8ecc6be5993bc1209b07d28f978 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 16:58:49 +0100 Subject: [PATCH 28/36] fix --- build/ci/release.yml | 4 ---- build/package/msi/generate-msi.sh | 8 +++++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/build/ci/release.yml b/build/ci/release.yml index e008e03572..8816054e41 100644 --- a/build/ci/release.yml +++ b/build/ci/release.yml @@ -3,10 +3,6 @@ variables: go_root: "/opt/golang/go1.24" go_bin: "/opt/golang/go1.24/bin" go_base_path: "" - - &go_windows_version - go_root: "c:\\golang\\go1.24" - go_bin: "c:\\golang\\go1.24\\bin" - go_base_path: "c:" - &go_env XDG_CONFIG_HOME: ${go_base_path}${workdir} GO111MODULE: "on" diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index a1195ec0ab..099f169197 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -15,10 +15,12 @@ set -Eeou pipefail -GOCACHE="$(cygpath --mixed "${workdir:?}\.gocache")" +GOROOT="$(cygpath --mixed "c:\\golang\\go1.24")" +PATH="$(cygpath --mixed "c:\\golang\\go1.24\\bin");${PATH}" +GOCACHE="off" CGO_ENABLED=0 -export GOCACHE -export CGO_ENABLED + +export GOROOT PATH GOCACHE CGO_ENABLED choco install -y "go-msi" --force From 67e596e50f685c63979964ba1fb08d7ee581a549 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 17:14:28 +0100 Subject: [PATCH 29/36] fix --- build/package/msi/generate-msi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index 099f169197..c9e62347df 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -16,7 +16,7 @@ set -Eeou pipefail GOROOT="$(cygpath --mixed "c:\\golang\\go1.24")" -PATH="$(cygpath --mixed "c:\\golang\\go1.24\\bin");${PATH}" +PATH="$(cygpath --mixed "c:\\golang\\go1.24\\bin"):${PATH}" GOCACHE="off" CGO_ENABLED=0 From 88223c383b2e54d2d9d23bc2b473bdde70ff9809 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 18:13:43 +0100 Subject: [PATCH 30/36] fix --- build/package/msi/generate-msi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index c9e62347df..b1839b2186 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -16,7 +16,7 @@ set -Eeou pipefail GOROOT="$(cygpath --mixed "c:\\golang\\go1.24")" -PATH="$(cygpath --mixed "c:\\golang\\go1.24\\bin"):${PATH}" +PATH="$(cygpath --mixed "c:\\golang\\go1.24\\bin"):$(cygpath --mixed "c:\\Program Files\\go-msi"):$(cygpath --mixed "c:\\wixtools\\bin"):${PATH}" GOCACHE="off" CGO_ENABLED=0 From ec2789c5d5254584b74aa109150915c91ba91ebd Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 18:52:03 +0100 Subject: [PATCH 31/36] fix --- build/package/msi/generate-msi.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index b1839b2186..4e12e57499 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -17,13 +17,17 @@ set -Eeou pipefail GOROOT="$(cygpath --mixed "c:\\golang\\go1.24")" PATH="$(cygpath --mixed "c:\\golang\\go1.24\\bin"):$(cygpath --mixed "c:\\Program Files\\go-msi"):$(cygpath --mixed "c:\\wixtools\\bin"):${PATH}" -GOCACHE="off" +GOCACHE="$(cygpath --mixed "c:\\Users\\Administrator\\.cache")" CGO_ENABLED=0 export GOROOT PATH GOCACHE CGO_ENABLED choco install -y "go-msi" --force +echo "PATH: $PATH" + go-msi make --path "wix.json" --msi "out.msi" --version "$(cat version.txt)" choco uninstall -y "go-msi" --force + +rm -rf "$GOCACHE" From 950fcb31c06a72f099024e2eba5d086438d85dfa Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 19:01:25 +0100 Subject: [PATCH 32/36] fix --- build/package/msi/generate-msi.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index 4e12e57499..d0b196109a 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -15,17 +15,15 @@ set -Eeou pipefail -GOROOT="$(cygpath --mixed "c:\\golang\\go1.24")" -PATH="$(cygpath --mixed "c:\\golang\\go1.24\\bin"):$(cygpath --mixed "c:\\Program Files\\go-msi"):$(cygpath --mixed "c:\\wixtools\\bin"):${PATH}" -GOCACHE="$(cygpath --mixed "c:\\Users\\Administrator\\.cache")" +GOROOT="$(cygpath --unix "c:\\golang\\go1.24")" +PATH="${PATH}:$(cygpath --unix "c:\\golang\\go1.24\\bin"):$(cygpath --unix "c:\\Program Files\\go-msi"):$(cygpath --unix "c:\\wixtools\\bin")" +GOCACHE="$(cygpath --unix "c:\\Users\\Administrator\\.cache")" CGO_ENABLED=0 export GOROOT PATH GOCACHE CGO_ENABLED choco install -y "go-msi" --force -echo "PATH: $PATH" - go-msi make --path "wix.json" --msi "out.msi" --version "$(cat version.txt)" choco uninstall -y "go-msi" --force From 64067b3e244f4bf51788fcbfbc96bddafa13f101 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 19:02:04 +0100 Subject: [PATCH 33/36] fix --- build/package/msi/generate-msi.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index d0b196109a..6184501bbf 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -24,6 +24,8 @@ export GOROOT PATH GOCACHE CGO_ENABLED choco install -y "go-msi" --force +echo "PATH: $PATH" + go-msi make --path "wix.json" --msi "out.msi" --version "$(cat version.txt)" choco uninstall -y "go-msi" --force From 03e229422593fc84fc7f78653972f34a5cdee400 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 20:25:19 +0100 Subject: [PATCH 34/36] fix --- build/package/msi/generate-msi.sh | 2 -- build/package/windows_build_msi.sh | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/build/package/msi/generate-msi.sh b/build/package/msi/generate-msi.sh index 6184501bbf..d0b196109a 100755 --- a/build/package/msi/generate-msi.sh +++ b/build/package/msi/generate-msi.sh @@ -24,8 +24,6 @@ export GOROOT PATH GOCACHE CGO_ENABLED choco install -y "go-msi" --force -echo "PATH: $PATH" - go-msi make --path "wix.json" --msi "out.msi" --version "$(cat version.txt)" choco uninstall -y "go-msi" --force diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 597f43c373..c8f3dbb21a 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -22,10 +22,11 @@ hostsfile="${hostsfile:-./build/ci/hosts.json}" echo "Packaging $PWD/build/package/msi.zip" mkdir -p ./build/package/msi/bin cp ./dist/windows_windows_amd64_v1/bin/atlas.exe ./build/package/msi/bin/atlas.exe +cp ./LICENSE ./build/package/msi/LICENSE git tag --list 'atlascli/v*' --sort=-taggerdate | head -1 | cut -d 'v' -f 2 > ./build/package/msi/version.txt cd ./build/package zip -r msi.zip msi -rm -rf ./msi/version.txt ./msi/bin/atlas.exe +rm -rf ./msi/version.txt ./msi/bin/atlas.exe ./msi/LICENSE cd ../.. echo "Waiting for the Windows host to become available..." From 3f3a944488e65b024f8610ff3867991ec2f89465 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 21:16:12 +0100 Subject: [PATCH 35/36] fix --- build/package/windows_build_msi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index c8f3dbb21a..5b115c8d4b 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -57,7 +57,7 @@ echo "Downloading from ${user}@${host}:/cygdrive/c/Users/Administrator/msi/out.m scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}:/cygdrive/c/Users/Administrator/msi/out.msi" "${MSI_FILE}" echo "Cleaning up ${user}@${host}:/cygdrive/c/Users/Administrator/msi" -ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" bash -c 'rm -rf "/cygdrive/c/Users/Administrator/msi"' +ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" "rm -rf '/cygdrive/c/Users/Administrator/msi'" echo "Notarizing ${MSI_FILE}" echo "${ARTIFACTORY_PASSWORD}" | podman login --password-stdin --username "${ARTIFACTORY_USERNAME}" artifactory.corp.mongodb.com From ecec9962dd2c8847dea835f36a3cc0d7ceb8b489 Mon Sep 17 00:00:00 2001 From: Filipe C Menezes Date: Tue, 3 Jun 2025 22:47:01 +0100 Subject: [PATCH 36/36] fix --- build/package/windows_build_msi.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build/package/windows_build_msi.sh b/build/package/windows_build_msi.sh index 5b115c8d4b..3a9e131341 100755 --- a/build/package/windows_build_msi.sh +++ b/build/package/windows_build_msi.sh @@ -55,6 +55,7 @@ MSI_FILE="${PWD}/bin/mongodb-atlas-cli_${VERSION_NAME}_windows_x86_64.msi" echo "Downloading from ${user}@${host}:/cygdrive/c/Users/Administrator/msi/out.msi to ${MSI_FILE}" scp -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no "${user}@${host}:/cygdrive/c/Users/Administrator/msi/out.msi" "${MSI_FILE}" +chmod 644 "${MSI_FILE}" echo "Cleaning up ${user}@${host}:/cygdrive/c/Users/Administrator/msi" ssh -i "$keyfile" -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -tt "${user}@${host}" "rm -rf '/cygdrive/c/Users/Administrator/msi'"