mirror of https://github.com/status-im/consul.git
Merge pull request #11787 from odidev/arm64-testing
Add test jobs for arm64 in CircleCI
This commit is contained in:
commit
8988807195
|
@ -39,8 +39,14 @@ steps:
|
|||
environment:
|
||||
GOTESTSUM_RELEASE: 1.6.4
|
||||
command: |
|
||||
ARCH=`uname -m`
|
||||
if [[ "$ARCH" == "aarch64" ]]; then
|
||||
ARCH="arm64"
|
||||
else
|
||||
ARCH="amd64"
|
||||
fi
|
||||
url=https://github.com/gotestyourself/gotestsum/releases/download
|
||||
curl -sSL "${url}/v${GOTESTSUM_RELEASE}/gotestsum_${GOTESTSUM_RELEASE}_linux_amd64.tar.gz" | \
|
||||
curl -sSL "${url}/v${GOTESTSUM_RELEASE}/gotestsum_${GOTESTSUM_RELEASE}_linux_${ARCH}.tar.gz" | \
|
||||
sudo tar -xz --overwrite -C /usr/local/bin gotestsum
|
||||
|
||||
get-aws-cli: &get-aws-cli
|
||||
|
@ -105,6 +111,54 @@ commands:
|
|||
echo "export AWS_SECRET_ACCESS_KEY=$(echo $CREDENTIALS | jq -r '.SecretAccessKey')" >> $BASH_ENV
|
||||
echo "export AWS_SESSION_TOKEN=$(echo $CREDENTIALS | jq -r '.SessionToken')" >> $BASH_ENV
|
||||
|
||||
run-go-test-full:
|
||||
parameters:
|
||||
go_test_flags:
|
||||
type: string
|
||||
default: ""
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/circleci/go/bin
|
||||
- run: sudo apt-get update --allow-releaseinfo-change-suite --allow-releaseinfo-change-version && sudo apt-get install -y rsyslog
|
||||
- run: sudo service rsyslog start
|
||||
- run: go mod download
|
||||
- run:
|
||||
name: go test
|
||||
command: |
|
||||
mkdir -p $TEST_RESULTS_DIR /tmp/jsonfile
|
||||
PACKAGE_NAMES=$(go list -tags "$GOTAGS" ./... | circleci tests split --split-by=timings --timings-type=classname)
|
||||
echo "Running $(echo $PACKAGE_NAMES | wc -w) packages"
|
||||
echo $PACKAGE_NAMES
|
||||
# some tests expect this umask, and arm images have a different default
|
||||
umask 0022
|
||||
|
||||
<< parameters.go_test_flags >>
|
||||
|
||||
gotestsum \
|
||||
--format=short-verbose \
|
||||
--jsonfile /tmp/jsonfile/go-test-${CIRCLE_NODE_INDEX}.log \
|
||||
--debug \
|
||||
--rerun-fails=3 \
|
||||
--rerun-fails-max-failures=40 \
|
||||
--rerun-fails-report=/tmp/gotestsum-rerun-fails \
|
||||
--packages="$PACKAGE_NAMES" \
|
||||
--junitfile $TEST_RESULTS_DIR/gotestsum-report.xml -- \
|
||||
-tags="$GOTAGS" -p 2 \
|
||||
${GO_TEST_FLAGS-} \
|
||||
-cover -coverprofile=coverage.txt
|
||||
|
||||
- store_test_results:
|
||||
path: *TEST_RESULTS_DIR
|
||||
- store_artifacts:
|
||||
path: *TEST_RESULTS_DIR
|
||||
- store_artifacts:
|
||||
path: /tmp/jsonfile
|
||||
- run: &rerun-fails-report
|
||||
name: "Re-run fails report"
|
||||
command: |
|
||||
.circleci/scripts/rerun-fails-report.sh /tmp/gotestsum-rerun-fails
|
||||
- run: *notify-slack-failure
|
||||
|
||||
jobs:
|
||||
# lint consul tests
|
||||
lint-consul-retry:
|
||||
|
@ -194,6 +248,32 @@ jobs:
|
|||
exit 1
|
||||
fi
|
||||
|
||||
go-test-arm64:
|
||||
machine:
|
||||
image: ubuntu-2004:202101-01
|
||||
resource_class: arm.medium
|
||||
parallelism: 4
|
||||
environment:
|
||||
<<: *ENVIRONMENT
|
||||
GOTAGS: "" # No tags for OSS but there are for enterprise
|
||||
# GOMAXPROCS defaults to number of cores on underlying hardware, set
|
||||
# explicitly to avoid OOM issues https://support.circleci.com/hc/en-us/articles/360034684273-common-GoLang-memory-issues
|
||||
GOMAXPROCS: 4
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
sudo rm -rf /usr/local/go
|
||||
wget https://golang.org/dl/go1.17.5.linux-arm64.tar.gz
|
||||
sudo tar -C /usr/local -xzvf go1.17.5.linux-arm64.tar.gz
|
||||
- run: *install-gotestsum
|
||||
- run: go mod download
|
||||
- run:
|
||||
name: make dev
|
||||
command: if [[ "$CIRCLE_BRANCH" =~ ^main$|^release/ ]]; then make dev; fi
|
||||
- run-go-test-full:
|
||||
go_test_flags: 'if ! [[ "$CIRCLE_BRANCH" =~ ^main$|^release/ ]]; then export GO_TEST_FLAGS="-short"; fi'
|
||||
|
||||
go-test:
|
||||
docker:
|
||||
- image: *GOLANG_IMAGE
|
||||
|
@ -204,46 +284,9 @@ jobs:
|
|||
# GOMAXPROCS defaults to number of cores on underlying hardware, set
|
||||
# explicitly to avoid OOM issues https://support.circleci.com/hc/en-us/articles/360034684273-common-GoLang-memory-issues
|
||||
GOMAXPROCS: 4
|
||||
# The medium resource class (default) boxes are 2 vCPUs, 4GB RAM
|
||||
# https://circleci.com/docs/2.0/configuration-reference/#docker-executor
|
||||
# but we can run a little over that limit.
|
||||
steps:
|
||||
- checkout
|
||||
- attach_workspace:
|
||||
at: /home/circleci/go/bin
|
||||
- run: sudo apt-get update --allow-releaseinfo-change-suite --allow-releaseinfo-change-version && sudo apt-get install -y rsyslog
|
||||
- run: sudo service rsyslog start
|
||||
- run: go mod download
|
||||
- run:
|
||||
name: go test
|
||||
command: |
|
||||
mkdir -p $TEST_RESULTS_DIR /tmp/jsonfile
|
||||
PACKAGE_NAMES=$(go list -tags "$GOTAGS" ./... | circleci tests split --split-by=timings --timings-type=classname)
|
||||
echo "Running $(echo $PACKAGE_NAMES | wc -w) packages"
|
||||
echo $PACKAGE_NAMES
|
||||
gotestsum \
|
||||
--format=short-verbose \
|
||||
--jsonfile /tmp/jsonfile/go-test-${CIRCLE_NODE_INDEX}.log \
|
||||
--debug \
|
||||
--rerun-fails=3 \
|
||||
--rerun-fails-max-failures=40 \
|
||||
--rerun-fails-report=/tmp/gotestsum-rerun-fails \
|
||||
--packages="$PACKAGE_NAMES" \
|
||||
--junitfile $TEST_RESULTS_DIR/gotestsum-report.xml -- \
|
||||
-tags="$GOTAGS" -p 2 \
|
||||
-cover -coverprofile=coverage.txt
|
||||
|
||||
- store_test_results:
|
||||
path: *TEST_RESULTS_DIR
|
||||
- store_artifacts:
|
||||
path: *TEST_RESULTS_DIR
|
||||
- store_artifacts:
|
||||
path: /tmp/jsonfile
|
||||
- run: &rerun-fails-report
|
||||
name: "Re-run fails report"
|
||||
command: |
|
||||
.circleci/scripts/rerun-fails-report.sh /tmp/gotestsum-rerun-fails
|
||||
- run: *notify-slack-failure
|
||||
- run-go-test-full
|
||||
|
||||
go-test-race:
|
||||
docker:
|
||||
|
@ -1016,6 +1059,7 @@ workflows:
|
|||
go-arch: "386"
|
||||
<<: *filter-ignore-non-go-branches
|
||||
- test-connect-ca-providers: *filter-ignore-non-go-branches
|
||||
- go-test-arm64: *filter-ignore-non-go-branches
|
||||
- dev-build: *filter-ignore-non-go-branches
|
||||
- go-test:
|
||||
requires: [dev-build]
|
||||
|
|
Loading…
Reference in New Issue