Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce number of places where go version is set #17762

Merged
merged 5 commits into from Nov 1, 2022
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
27 changes: 23 additions & 4 deletions .circleci/config.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 1 addition & 4 deletions .circleci/config/commands/go_test.yml
Expand Up @@ -12,9 +12,6 @@ parameters:
save_cache:
type: boolean
default: false
go_image:
type: string
default: "docker.mirror.hashicorp.services/cimg/go:1.19.2"
use_docker:
type: boolean
default: false
Expand Down Expand Up @@ -137,7 +134,7 @@ steps:
-e NO_PROXY \
-e VAULT_TEST_LOG_DIR=<< parameters.log_dir >> \
--network ${TEST_DOCKER_NETWORK_NAME} \
<< parameters.go_image >> \
$GO_IMAGE \
tail -f /dev/null)"
mkdir workspace
echo ${CONTAINER_ID} > workspace/container_id
Expand Down
32 changes: 15 additions & 17 deletions .circleci/config/executors/@executors.yml
@@ -1,13 +1,17 @@
go-machine:
machine:
image: ubuntu-2004:202201-02
shell: /usr/bin/env bash -euo pipefail -c
environment:
references:
environment: &ENVIRONMENT
CIRCLECI_CLI_VERSION: 0.1.5546 # Pin CircleCI CLI to patch version (ex: 1.2.3)
GO_VERSION: 1.19.2 # Pin Go to patch version (ex: 1.2.3)
GOTESTSUM_VERSION: 0.5.2 # Pin gotestsum to patch version (ex: 1.2.3)
GOFUMPT_VERSION: 0.3.1 # Pin gofumpt to patch version (ex: 1.2.3)
GO_TAGS: ""
GO_IMAGE: &GO_IMAGE "docker.mirror.hashicorp.services/cimg/go:1.19.2"

go-machine:
machine:
image: ubuntu-2004:202201-02
environment: *ENVIRONMENT
shell: /usr/bin/env bash -euo pipefail -c
working_directory: /home/circleci/go/src/github.com/hashicorp/vault
node:
docker:
Expand All @@ -30,24 +34,18 @@ semgrep:
docker-env-go-test-remote-docker:
resource_class: medium
docker:
- image: "docker.mirror.hashicorp.services/cimg/go:1.19.2"
environment:
CIRCLECI_CLI_VERSION: 0.1.5546 # Pin CircleCI CLI to patch version (ex: 1.2.3)
GO_TAGS: ""
- image: *GO_IMAGE
environment: *ENVIRONMENT
working_directory: /home/circleci/go/src/github.com/hashicorp/vault
docker-env-go-test:
resource_class: large
docker:
- image: "docker.mirror.hashicorp.services/cimg/go:1.19.2"
environment:
CIRCLECI_CLI_VERSION: 0.1.5546 # Pin CircleCI CLI to patch version (ex: 1.2.3)
GO_TAGS: ""
- image: *GO_IMAGE
environment: *ENVIRONMENT
working_directory: /home/circleci/go/src/github.com/hashicorp/vault
docker-env-go-test-race:
resource_class: xlarge
docker:
- image: "docker.mirror.hashicorp.services/cimg/go:1.19.2"
environment:
CIRCLECI_CLI_VERSION: 0.1.5546 # Pin CircleCI CLI to patch version (ex: 1.2.3)
GO_TAGS: ""
- image: *GO_IMAGE
environment: *ENVIRONMENT
working_directory: /home/circleci/go/src/github.com/hashicorp/vault
28 changes: 28 additions & 0 deletions .github/workflows/goversion-checker.yml
@@ -0,0 +1,28 @@
name: Check Go version

on:
pull_request:
types: [opened, synchronize, labeled, unlabeled]
ncabatoff marked this conversation as resolved.
Show resolved Hide resolved

jobs:
go-version-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
ncabatoff marked this conversation as resolved.
Show resolved Hide resolved
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Fetch go version used for circleci
id: getExecutorImage
uses: mikefarah/yq@master
ncabatoff marked this conversation as resolved.
Show resolved Hide resolved
with:
cmd: yq '.references.environment.GO_IMAGE' '.circleci/config/executors/@executors.yml'
- name: Verify go versions in tree are consistent with one another
run: |
GOVER=$(cat .go-version)
EXPECTED="docker.mirror.hashicorp.services/cimg/go:$GOVER"
tomhjp marked this conversation as resolved.
Show resolved Hide resolved
GOT="${{ steps.getExecutorImage.outputs.result }}"
if [ "$EXPECTED" != "$GOT" ]; then
echo "version mismatch, .go-version has '$GOVER' and circleci config uses '$GOT'"
exit 1
fi
1 change: 1 addition & 0 deletions .go-version
@@ -0,0 +1 @@
1.19.2
2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -15,7 +15,7 @@ GOFMT_FILES?=$$(find . -name '*.go' | grep -v pb.go | grep -v vendor)
SED?=$(shell command -v gsed || command -v sed)


GO_VERSION_MIN=1.19.2
GO_VERSION_MIN=$$(cat $(CURDIR)/.go_version)
PROTOC_VERSION_MIN=3.21.7
GO_CMD?=go
CGO_ENABLED?=0
Expand Down
3 changes: 1 addition & 2 deletions README.md
Expand Up @@ -70,8 +70,7 @@ Developing Vault
--------------------

If you wish to work on Vault itself or any of its built-in systems, you'll
first need [Go](https://www.golang.org) installed on your machine. Go version
1.19.2+ is *required*.
first need [Go](https://www.golang.org) installed on your machine.

For local dev first make sure Go is properly installed, including setting up a
[GOPATH](https://golang.org/doc/code.html#GOPATH). Ensure that `$GOPATH/bin` is in
Expand Down
2 changes: 1 addition & 1 deletion scripts/docker/Dockerfile
@@ -1,6 +1,6 @@
# Multi-stage builder to avoid polluting users environment with wrong
# architecture binaries.
ARG VERSION=1.19.2
ARG VERSION

FROM golang:${VERSION} AS builder

Expand Down
2 changes: 1 addition & 1 deletion scripts/docker/Dockerfile.ui
Expand Up @@ -2,7 +2,7 @@
# architecture binaries. This file only currently works for linux/amd64.
FROM debian:buster AS builder

ARG VERSION=1.19.2
ARG VERSION
ARG CGO_ENABLED=0
ARG BUILD_TAGS
ENV JOBS=2
Expand Down