1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

269 lines
7.2 KiB
YAML

# CircleCI 2.0 configuration file
# Check https://circleci.com/docs/2.0/language-go/ for more details
1 year ago
version: 2.1
parameters:
primary_image:
type: string
default: 'rqlite/circleci-primary:0.0.3'
commands: # a reusable command with parameters
restore_and_save_cache:
steps:
- restore_cache:
keys:
- go-mod-v4-{{ checksum "go.sum" }}
- run: go get -v -t -d ./...
- save_cache:
key: go-mod-v4-{{ checksum "go.sum" }}
paths:
- "/home/circleci/go/pkg/mod"
cross_compile:
parameters:
cc:
type: string
goarch:
default: ""
type: string
goos:
default: ""
type: string
steps:
- run:
name: "Cross compile using <<parameters.cc>>"
command: go install -a -tags sqlite_omit_load_extension ./...
environment:
CGO_ENABLED: 1
GOARCH: <<parameters.goarch>>
GOOS: <<parameters.goos>>
CC: <<parameters.cc>>
jobs:
lint:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
# Don't do a restore_cache here, so we regularly check that the Go
# modules are actually fetchable.
- checkout
- run: test -z "$(gofmt -l . | tee /dev/stderr)"
- run: go vet ./...
resource_class: large
test_odd:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run: go test -failfast -v $(go list ./... | sed -n 'n;p')
resource_class: large
test_even:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run: go test -failfast -v $(go list ./... | sed -n 'p;n')
resource_class: large
race_odd:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run:
command: go test -failfast -timeout 20m -race $(go list ./... | sed -n 'n;p')
environment:
GORACE: "halt_on_error=1"
resource_class: large
race_even:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run:
command: go test -failfast -timeout 20m -race $(go list ./... | sed -n 'p;n')
environment:
GORACE: "halt_on_error=1"
resource_class: large
cross_compile_windows:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- cross_compile:
cc: x86_64-w64-mingw32-gcc
goarch: amd64
goos: windows
resource_class: large
cross_compile:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- cross_compile:
cc: musl-gcc
goarch: amd64
- cross_compile:
cc: riscv64-linux-gnu-gcc
goarch: riscv64
- cross_compile:
cc: powerpc64le-linux-gnu-gcc
goarch: ppc64le
resource_class: large
cross_compile_arm:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- cross_compile:
cc: arm-linux-gnueabi-gcc
goarch: arm
- cross_compile:
cc: aarch64-linux-gnu-gcc
goarch: arm64
resource_class: large
1 year ago
cross_compile_mips:
docker:
- image: << pipeline.parameters.primary_image >>
1 year ago
steps:
- checkout
- restore_and_save_cache
- cross_compile:
cc: mips-linux-gnu-gcc
goarch: mips
- cross_compile:
cc: mips64-linux-gnuabi64-gcc
goarch: mips64
resource_class: large
cross_compile_mips_le:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- cross_compile:
cc: mipsel-linux-gnu-gcc
goarch: mipsle
- cross_compile:
cc: mips64el-linux-gnuabi64-gcc
goarch: mips64le
resource_class: large
end_to_end_single:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run: go install -tags osusergo,netgo,sqlite_omit_load_extension
-ldflags="-extldflags=-static" ./...
- run:
command: python3 system_test/e2e/single_node.py
environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large
end_to_end_joining:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run: go install -tags osusergo,netgo,sqlite_omit_load_extension
-ldflags="-extldflags=-static" ./...
- run:
command: python3 system_test/e2e/joining.py
environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large
end_to_end_multi:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run: go install -tags osusergo,netgo,sqlite_omit_load_extension
-ldflags="-extldflags=-static" ./...
- run:
command: python3 system_test/e2e/multi_node.py
environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large
end_to_end_multi_adv:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run: go install -tags osusergo,netgo,sqlite_omit_load_extension
-ldflags="-extldflags=-static" ./...
- run:
command: python3 system_test/e2e/multi_node_adv.py
environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large
end_to_end_autoclustering:
5 years ago
docker:
- image: << pipeline.parameters.primary_image >>
- image: hashicorp/consul
- image: gcr.io/etcd-development/etcd:v3.5.1
5 years ago
steps:
- checkout
- restore_and_save_cache
- run: go install -tags osusergo,netgo,sqlite_omit_load_extension
-ldflags="-extldflags=-static" ./...
- run:
command: python3 system_test/e2e/auto_clustering.py
environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large
5 years ago
end_to_end_auto_state:
docker:
- image: << pipeline.parameters.primary_image >>
steps:
- checkout
- restore_and_save_cache
- run: go install -tags osusergo,netgo,sqlite_omit_load_extension
-ldflags="-extldflags=-static" ./...
- run:
command: python3 system_test/e2e/auto_state.py
environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large
5 years ago
workflows:
version: 2
build_and_test:
jobs:
- lint
- cross_compile
- cross_compile_windows
1 year ago
- cross_compile_arm
- cross_compile_mips
1 year ago
- cross_compile_mips_le
- test_even
- test_odd
- race_even
- race_odd
- end_to_end_single
- end_to_end_multi
- end_to_end_multi_adv
- end_to_end_joining
- end_to_end_autoclustering
- end_to_end_auto_state