Refactor CircleCI config for version 2.1

This commit is contained in:
Philip O'Toole
2025-09-19 15:03:17 -04:00
committed by GitHub
parent 15453e2734
commit 6fd701f8ab

View File

@@ -1,13 +1,10 @@
# CircleCI 2.0 configuration file ---
# Check https://circleci.com/docs/2.0/language-go/ for more details
version: 2.1 version: 2.1
parameters: parameters:
primary_image: primary_image:
type: string type: string
default: 'rqlite/circleci-primary:0.0.12' default: rqlite/circleci-primary:0.0.12
commands:
commands: # a reusable command with parameters
restore_and_save_cache: restore_and_save_cache:
steps: steps:
- restore_cache: - restore_cache:
@@ -17,8 +14,7 @@ commands: # a reusable command with parameters
- save_cache: - save_cache:
key: go-mod-v4-{{ checksum "go.sum" }} key: go-mod-v4-{{ checksum "go.sum" }}
paths: paths:
- "/home/circleci/go/pkg/mod" - /home/circleci/go/pkg/mod
cross_compile: cross_compile:
parameters: parameters:
cc: cc:
@@ -32,27 +28,23 @@ commands: # a reusable command with parameters
steps: steps:
- run: go version - run: go version
- run: - run:
name: "Cross compile using <<parameters.cc>>" name: Cross compile using <<parameters.cc>>
command: go install -a ./... command: go install -a ./...
environment: environment:
CGO_ENABLED: 1 CGO_ENABLED: 1
GOARCH: <<parameters.goarch>> GOARCH: <<parameters.goarch>>
GOOS: <<parameters.goos>> GOOS: <<parameters.goos>>
CC: <<parameters.cc>> CC: <<parameters.cc>>
jobs: jobs:
lint: lint:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
steps: steps:
# Don't do a restore_cache here, so we regularly check that the Go
# modules are actually fetchable.
- checkout - checkout
- run: go version - run: go version
- run: test -z "$(gofmt -l . | tee /dev/stderr)" - run: test -z "$(gofmt -l . | tee /dev/stderr)"
- run: go vet ./... - run: go vet ./...
resource_class: large resource_class: large
test_odd: test_odd:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -61,7 +53,6 @@ jobs:
- restore_and_save_cache - restore_and_save_cache
- run: go test -failfast $(go list ./... | sed -n 'n;p') - run: go test -failfast $(go list ./... | sed -n 'n;p')
resource_class: large resource_class: large
test_odd_race: test_odd_race:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -71,9 +62,8 @@ jobs:
- run: - run:
command: go test -v -failfast -timeout 20m -race $(go list ./... | sed -n 'n;p') command: go test -v -failfast -timeout 20m -race $(go list ./... | sed -n 'n;p')
environment: environment:
GORACE: "halt_on_error=1" GORACE: halt_on_error=1
resource_class: large resource_class: large
test_even: test_even:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -82,7 +72,6 @@ jobs:
- restore_and_save_cache - restore_and_save_cache
- run: go test -failfast $(go list ./... | sed -n 'p;n') - run: go test -failfast $(go list ./... | sed -n 'p;n')
resource_class: large resource_class: large
test_even_race: test_even_race:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -92,9 +81,8 @@ jobs:
- run: - run:
command: go test -v -failfast -timeout 20m -race $(go list ./... | sed -n 'p;n') command: go test -v -failfast -timeout 20m -race $(go list ./... | sed -n 'p;n')
environment: environment:
GORACE: "halt_on_error=1" GORACE: halt_on_error=1
resource_class: large resource_class: large
cross_compile_windows: cross_compile_windows:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -168,7 +156,6 @@ jobs:
cc: mips64el-linux-gnuabi64-gcc cc: mips64el-linux-gnuabi64-gcc
goarch: mips64le goarch: mips64le
resource_class: large resource_class: large
end_to_end_single: end_to_end_single:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -182,7 +169,6 @@ jobs:
environment: environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large resource_class: large
end_to_end_upgrade: end_to_end_upgrade:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -197,7 +183,6 @@ jobs:
environment: environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large resource_class: large
end_to_end_joining: end_to_end_joining:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -210,7 +195,6 @@ jobs:
environment: environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large resource_class: large
end_to_end_multi: end_to_end_multi:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -223,7 +207,6 @@ jobs:
environment: environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large resource_class: large
end_to_end_multi_adv: end_to_end_multi_adv:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -236,7 +219,6 @@ jobs:
environment: environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large resource_class: large
end_to_end_autoclustering: end_to_end_autoclustering:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -251,7 +233,6 @@ jobs:
environment: environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large resource_class: large
end_to_end_auto_state: end_to_end_auto_state:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -259,7 +240,7 @@ jobs:
name: minio name: minio
command: server /data command: server /data
environment: environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited RQLITED_PATH: /home/circleci/go/bin/rqlited
steps: steps:
- checkout - checkout
- restore_and_save_cache - restore_and_save_cache
@@ -275,10 +256,9 @@ jobs:
MINIO_BUCKET: minio-bucket MINIO_BUCKET: minio-bucket
- run: - run:
command: python3 system_test/e2e/auto_state_file.py command: python3 system_test/e2e/auto_state_file.py
-run: - run:
command: python3 system_test/e2e/auto_state_gcs.py command: python3 system_test/e2e/auto_state_gcs.py
resource_class: large resource_class: large
end_to_end_cdc: end_to_end_cdc:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -291,7 +271,6 @@ jobs:
environment: environment:
RQLITED_PATH: /home/circleci/go/bin/rqlited RQLITED_PATH: /home/circleci/go/bin/rqlited
resource_class: large resource_class: large
end_to_end_extensions: end_to_end_extensions:
docker: docker:
- image: << pipeline.parameters.primary_image >> - image: << pipeline.parameters.primary_image >>
@@ -301,11 +280,16 @@ jobs:
- run: go install ./... - run: go install ./...
- run: mkdir /home/circleci/extensions - run: mkdir /home/circleci/extensions
- run: mkdir /home/circleci/extensions-misc - run: mkdir /home/circleci/extensions-misc
- run: gcc -g -fPIC -shared db/testdata/rot13.c -o /home/circleci/extensions/rot13.so - run: gcc -g -fPIC -shared db/testdata/rot13.c -o
- run: gcc -g -fPIC -shared db/testdata/carray.c -o /home/circleci/extensions/carray.so /home/circleci/extensions/rot13.so
- run: gcc -g -fPIC -shared db/testdata/carray.c -o
/home/circleci/extensions/carray.so
- run: zip -j /home/circleci/rot13.zip /home/circleci/extensions/rot13.so - run: zip -j /home/circleci/rot13.zip /home/circleci/extensions/rot13.so
- run: tar -czf /home/circleci/rot13.tar.gz --strip-components=1 -C /home/circleci/extensions rot13.so - run: tar -czf /home/circleci/rot13.tar.gz --strip-components=1 -C
- run: git clone https://github.com/rqlite/rqlite-sqlite-ext.git && cd rqlite-sqlite-ext/misc && make && cp *.so /home/circleci/extensions-misc /home/circleci/extensions rot13.so
- run: git clone https://github.com/rqlite/rqlite-sqlite-ext.git && cd
rqlite-sqlite-ext/misc && make && cp *.so
/home/circleci/extensions-misc
- run: - run:
command: python3 system_test/e2e/extensions.py command: python3 system_test/e2e/extensions.py
environment: environment:
@@ -317,7 +301,6 @@ jobs:
EXTENSIONS_PATH_MULTIPLE: /home/circleci/rot13.zip,/home/circleci/extensions/carray.so EXTENSIONS_PATH_MULTIPLE: /home/circleci/rot13.zip,/home/circleci/extensions/carray.so
EXTENSIONS_PATH_MISC: /home/circleci/extensions-misc EXTENSIONS_PATH_MISC: /home/circleci/extensions-misc
resource_class: large resource_class: large
workflows: workflows:
version: 2 version: 2
build_and_test: build_and_test: