chore(tools): Cache rework for CircleCI (#14156)
This commit is contained in:
parent
04480a5bc4
commit
4413991c01
|
|
@ -37,15 +37,34 @@ commands:
|
||||||
default: "gotestsum"
|
default: "gotestsum"
|
||||||
cache_version:
|
cache_version:
|
||||||
type: string
|
type: string
|
||||||
default: "v2"
|
default: "v1"
|
||||||
goversion:
|
goversion:
|
||||||
type: string
|
type: string
|
||||||
default: 1.21.3
|
default: 1.21.3
|
||||||
steps:
|
steps:
|
||||||
- check-changed-files-or-halt
|
- check-changed-files-or-halt
|
||||||
|
- when:
|
||||||
|
condition:
|
||||||
|
equal: [ windows, << parameters.os >> ]
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Remove Go and MinGW to avoid clashes after upgrade during cache restore
|
||||||
|
command: |
|
||||||
|
rm -rf '/c/Program Files/Go'
|
||||||
|
rm -rf '/c/ProgramData/chocolatey/lib/mingw'
|
||||||
|
- when:
|
||||||
|
condition:
|
||||||
|
equal: [ darwin, << parameters.os >> ]
|
||||||
|
steps:
|
||||||
|
- run:
|
||||||
|
name: Ensure go directory is empty and have proper permissions before cache restore
|
||||||
|
command: |
|
||||||
|
sudo rm -rf '/usr/local/Cellar/go'
|
||||||
|
sudo mkdir -p '/usr/local/Cellar/go'
|
||||||
|
sudo chown -R $(id -u):$(id -g) '/usr/local/Cellar/go'
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
name: "Restore binaries from cache"
|
name: "Restore binaries from cache"
|
||||||
key: << parameters.os >>-<< parameters.arch >>-go<< parameters.goversion >>-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-bins-<< parameters.cache_version >>-<< parameters.os >>-<< parameters.arch >>-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
- when:
|
- when:
|
||||||
condition:
|
condition:
|
||||||
equal: [ linux, << parameters.os >> ]
|
equal: [ linux, << parameters.os >> ]
|
||||||
|
|
@ -61,10 +80,11 @@ commands:
|
||||||
condition:
|
condition:
|
||||||
equal: [ windows, << parameters.os >> ]
|
equal: [ windows, << parameters.os >> ]
|
||||||
steps:
|
steps:
|
||||||
- run: rm -rf '/c/Program Files/Go'
|
|
||||||
- run: choco feature enable -n allowGlobalConfirmation
|
- run: choco feature enable -n allowGlobalConfirmation
|
||||||
|
- run: git config --system core.longpaths true
|
||||||
- run: 'sh ./scripts/installgo_windows.sh'
|
- run: 'sh ./scripts/installgo_windows.sh'
|
||||||
- run: choco install mingw --version=12.2.0.03042023
|
- run: 'sh ./scripts/installmingw_windows.sh'
|
||||||
|
- run: choco install make
|
||||||
- run: go env
|
- run: go env
|
||||||
- run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.55.0
|
- run: go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.55.0
|
||||||
- when:
|
- when:
|
||||||
|
|
@ -103,8 +123,18 @@ commands:
|
||||||
equal: [ "386", << parameters.arch >> ]
|
equal: [ "386", << parameters.arch >> ]
|
||||||
steps:
|
steps:
|
||||||
- run: echo 'export RACE="-race"' >> $BASH_ENV
|
- run: echo 'export RACE="-race"' >> $BASH_ENV
|
||||||
- run: |
|
- when:
|
||||||
GOARCH=<< parameters.arch >> ./<< parameters.gotestsum >> -- ${RACE} -short -cover -coverprofile=coverage.out ./...
|
condition:
|
||||||
|
equal: [ windows, << parameters.os >> ]
|
||||||
|
steps:
|
||||||
|
- run: |
|
||||||
|
export PATH="/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin:$PATH"
|
||||||
|
GOARCH=<< parameters.arch >> ./<< parameters.gotestsum >> -- ${RACE} -short -cover -coverprofile=coverage.out ./...
|
||||||
|
- unless:
|
||||||
|
condition:
|
||||||
|
equal: [ windows, << parameters.os >> ]
|
||||||
|
steps:
|
||||||
|
- run: GOARCH=<< parameters.arch >> ./<< parameters.gotestsum >> -- ${RACE} -short -cover -coverprofile=coverage.out ./...
|
||||||
- when:
|
- when:
|
||||||
condition:
|
condition:
|
||||||
and:
|
and:
|
||||||
|
|
@ -127,7 +157,7 @@ commands:
|
||||||
steps:
|
steps:
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: 'Saving binaries to cache'
|
name: 'Saving binaries to cache'
|
||||||
key: << parameters.os >>-<< parameters.arch >>-go<< parameters.goversion >>-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-bins-<< parameters.cache_version >>-<< parameters.os >>-<< parameters.arch >>-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
paths:
|
paths:
|
||||||
- '/go/src/github.com/influxdata/telegraf/gotestsum'
|
- '/go/src/github.com/influxdata/telegraf/gotestsum'
|
||||||
- when:
|
- when:
|
||||||
|
|
@ -136,7 +166,7 @@ commands:
|
||||||
steps:
|
steps:
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: 'Saving binaries to cache'
|
name: 'Saving binaries to cache'
|
||||||
key: << parameters.os >>-<< parameters.arch >>-go<< parameters.goversion >>-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-bins-<< parameters.cache_version >>-<< parameters.os >>-<< parameters.arch >>-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
paths:
|
paths:
|
||||||
- '~/go/src/github.com/influxdata/telegraf/gotestsum'
|
- '~/go/src/github.com/influxdata/telegraf/gotestsum'
|
||||||
- '/usr/local/Cellar/go'
|
- '/usr/local/Cellar/go'
|
||||||
|
|
@ -148,10 +178,11 @@ commands:
|
||||||
steps:
|
steps:
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: 'Saving binaries to cache'
|
name: 'Saving binaries to cache'
|
||||||
key: << parameters.os >>-<< parameters.arch >>-go<< parameters.goversion >>-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-bins-<< parameters.cache_version >>-<< parameters.os >>-<< parameters.arch >>-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
paths:
|
paths:
|
||||||
- '~\project\gotestsum.exe'
|
- '~\project\gotestsum.exe'
|
||||||
- 'C:\Program Files\Go'
|
- 'C:\Program Files\Go'
|
||||||
|
- 'C:\ProgramData\chocolatey\lib\mingw'
|
||||||
package-build:
|
package-build:
|
||||||
parameters:
|
parameters:
|
||||||
type:
|
type:
|
||||||
|
|
@ -201,12 +232,12 @@ jobs:
|
||||||
default: 1.21.3
|
default: 1.21.3
|
||||||
cache_version:
|
cache_version:
|
||||||
type: string
|
type: string
|
||||||
default: "v2"
|
default: "v1"
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
name: "Restore Go caches"
|
name: "Restore Go caches"
|
||||||
key: linux-amd64-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-linux-amd64-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
- check-changed-files-or-halt
|
- check-changed-files-or-halt
|
||||||
- run: ./scripts/make_docs.sh
|
- run: ./scripts/make_docs.sh
|
||||||
- run: 'make deps'
|
- run: 'make deps'
|
||||||
|
|
@ -216,7 +247,7 @@ jobs:
|
||||||
- test-go
|
- test-go
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: "Save Go caches"
|
name: "Save Go caches"
|
||||||
key: linux-amd64-go<< parameters.goversion >>-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-linux-amd64-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
paths:
|
paths:
|
||||||
- '/go/pkg/mod'
|
- '/go/pkg/mod'
|
||||||
- '~/.cache/golangci-lint'
|
- '~/.cache/golangci-lint'
|
||||||
|
|
@ -233,12 +264,12 @@ jobs:
|
||||||
default: 1.21.3
|
default: 1.21.3
|
||||||
cache_version:
|
cache_version:
|
||||||
type: string
|
type: string
|
||||||
default: "v2"
|
default: "v1"
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
name: "Restore Go caches"
|
name: "Restore Go caches"
|
||||||
key: linux-386-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-linux-386-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
- check-changed-files-or-halt
|
- check-changed-files-or-halt
|
||||||
- run: 'GOARCH=386 make deps'
|
- run: 'GOARCH=386 make deps'
|
||||||
- run: 'GOARCH=386 make tidy'
|
- run: 'GOARCH=386 make tidy'
|
||||||
|
|
@ -247,7 +278,7 @@ jobs:
|
||||||
arch: "386"
|
arch: "386"
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: "Save Go caches"
|
name: "Save Go caches"
|
||||||
key: linux-386-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-linux-386-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
paths:
|
paths:
|
||||||
- '/go/pkg/mod'
|
- '/go/pkg/mod'
|
||||||
- '~/.cache/golangci-lint'
|
- '~/.cache/golangci-lint'
|
||||||
|
|
@ -270,18 +301,18 @@ jobs:
|
||||||
default: 1.21.3
|
default: 1.21.3
|
||||||
cache_version:
|
cache_version:
|
||||||
type: string
|
type: string
|
||||||
default: "v2"
|
default: "v1"
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
name: "Restore Go caches"
|
name: "Restore Go caches"
|
||||||
key: darwin-arm64-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-darwin-arm64-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
- test-go:
|
- test-go:
|
||||||
os: darwin
|
os: darwin
|
||||||
arch: arm64
|
arch: arm64
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: "Save Go caches"
|
name: "Save Go caches"
|
||||||
key: darwin-arm64-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-darwin-arm64-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
paths:
|
paths:
|
||||||
- '~/go/pkg/mod'
|
- '~/go/pkg/mod'
|
||||||
- '~/Library/Caches/golangci-lint'
|
- '~/Library/Caches/golangci-lint'
|
||||||
|
|
@ -293,7 +324,7 @@ jobs:
|
||||||
default: 1.21.3
|
default: 1.21.3
|
||||||
cache_version:
|
cache_version:
|
||||||
type: string
|
type: string
|
||||||
default: "v2"
|
default: "v1"
|
||||||
executor:
|
executor:
|
||||||
name: win/default
|
name: win/default
|
||||||
shell: bash.exe
|
shell: bash.exe
|
||||||
|
|
@ -302,13 +333,13 @@ jobs:
|
||||||
- checkout
|
- checkout
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
name: "Restore Go caches"
|
name: "Restore Go caches"
|
||||||
key: windows-amd64-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-windows-amd64-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
- test-go:
|
- test-go:
|
||||||
os: windows
|
os: windows
|
||||||
gotestsum: "gotestsum.exe"
|
gotestsum: "gotestsum.exe"
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: "Save Go caches"
|
name: "Save Go caches"
|
||||||
key: windows-amd64-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-windows-amd64-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
paths:
|
paths:
|
||||||
- '~\go\pkg\mod'
|
- '~\go\pkg\mod'
|
||||||
- '~\AppData\Local\golangci-lint'
|
- '~\AppData\Local\golangci-lint'
|
||||||
|
|
@ -322,18 +353,18 @@ jobs:
|
||||||
default: 1.21.3
|
default: 1.21.3
|
||||||
cache_version:
|
cache_version:
|
||||||
type: string
|
type: string
|
||||||
default: "v2"
|
default: "v1"
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
name: "Restore Go caches"
|
name: "Restore Go caches"
|
||||||
key: linux-amd64-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-linux-amd64-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
- check-changed-files-or-halt
|
- check-changed-files-or-halt
|
||||||
- run: 'make build_tools'
|
- run: 'make build_tools'
|
||||||
- run: './tools/license_checker/license_checker -whitelist ./tools/license_checker/data/whitelist'
|
- run: './tools/license_checker/license_checker -whitelist ./tools/license_checker/data/whitelist'
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: "Save Go caches"
|
name: "Save Go caches"
|
||||||
key: linux-amd64-go<< parameters.goversion >>-cache-<< parameters.cache_version >>-{{ checksum "go.sum" }}
|
key: go-caches-<< parameters.cache_version >>-linux-amd64-go<< parameters.goversion >>-{{ checksum "go.sum" }}
|
||||||
paths:
|
paths:
|
||||||
- '/go/pkg/mod'
|
- '/go/pkg/mod'
|
||||||
- '~/.cache/golangci-lint'
|
- '~/.cache/golangci-lint'
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,6 @@ setup_go () {
|
||||||
|
|
||||||
sudo rm -rfv /usr/local/go
|
sudo rm -rfv /usr/local/go
|
||||||
sudo tar -C /usr/local -xzf go${GO_VERSION}.${GO_ARCH}.tar.gz
|
sudo tar -C /usr/local -xzf go${GO_VERSION}.${GO_ARCH}.tar.gz
|
||||||
|
|
||||||
echo "$PATH"
|
|
||||||
which go
|
|
||||||
go version
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if command -v go >/dev/null 2>&1; then
|
if command -v go >/dev/null 2>&1; then
|
||||||
|
|
@ -34,3 +30,7 @@ if command -v go >/dev/null 2>&1; then
|
||||||
else
|
else
|
||||||
setup_go
|
setup_go
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "$PATH"
|
||||||
|
command -v go
|
||||||
|
go version
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,11 @@ if command -v go >/dev/null 2>&1; then
|
||||||
echo "$v is installed, required version is ${GO_VERSION}"
|
echo "$v is installed, required version is ${GO_VERSION}"
|
||||||
if [ "$v" != ${GO_VERSION} ]; then
|
if [ "$v" != ${GO_VERSION} ]; then
|
||||||
setup_go
|
setup_go
|
||||||
go version
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
setup_go
|
setup_go
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "$PATH"
|
||||||
|
command -v go
|
||||||
|
go version
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,7 @@ set -eux
|
||||||
GO_VERSION="1.21.3"
|
GO_VERSION="1.21.3"
|
||||||
|
|
||||||
setup_go () {
|
setup_go () {
|
||||||
rm -rf '/c/Program Files/Go'
|
choco upgrade golang --allow-downgrade --force --version=${GO_VERSION}
|
||||||
choco upgrade golang --allow-downgrade --version=${GO_VERSION}
|
|
||||||
choco install make
|
|
||||||
git config --system core.longpaths true
|
git config --system core.longpaths true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -17,8 +15,11 @@ if command -v go >/dev/null 2>&1; then
|
||||||
echo "$v is installed, required version is ${GO_VERSION}"
|
echo "$v is installed, required version is ${GO_VERSION}"
|
||||||
if [ "$v" != ${GO_VERSION} ]; then
|
if [ "$v" != ${GO_VERSION} ]; then
|
||||||
setup_go
|
setup_go
|
||||||
go version
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
setup_go
|
setup_go
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "$PATH"
|
||||||
|
command -v go
|
||||||
|
go version
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eux
|
||||||
|
|
||||||
|
MINGW_VERSION="12.2.0.03042023"
|
||||||
|
GCC_VERSION="12.2.0"
|
||||||
|
|
||||||
|
setup_mingw () {
|
||||||
|
choco upgrade mingw --allow-downgrade --force --version=${MINGW_VERSION}
|
||||||
|
}
|
||||||
|
|
||||||
|
export PATH="/c/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin:$PATH"
|
||||||
|
echo "$PATH"
|
||||||
|
|
||||||
|
if command -v gcc >/dev/null 2>&1; then
|
||||||
|
echo "MinGW is already installed"
|
||||||
|
v=$(gcc -dumpversion)
|
||||||
|
echo "$v is installed, required version is ${GCC_VERSION}"
|
||||||
|
if [ "$v" != ${GCC_VERSION} ]; then
|
||||||
|
setup_mingw
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
setup_mingw
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$PATH"
|
||||||
|
command -v gcc
|
||||||
|
gcc -dumpversion
|
||||||
Loading…
Reference in New Issue