mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-27 00:35:18 +00:00
add circleci config
This commit is contained in:
parent
563226c86d
commit
6a0f325e35
122
.circleci/config.yml
Normal file
122
.circleci/config.yml
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
version 2.1
|
||||||
|
|
||||||
|
executors:
|
||||||
|
golang:
|
||||||
|
docker:
|
||||||
|
- image: circleci/golang:1.13
|
||||||
|
|
||||||
|
commands:
|
||||||
|
make:
|
||||||
|
parameters:
|
||||||
|
description:
|
||||||
|
type: string
|
||||||
|
target:
|
||||||
|
type: string
|
||||||
|
steps:
|
||||||
|
- attach_workspace:
|
||||||
|
at: /tmp/workspace
|
||||||
|
- restore_cache:
|
||||||
|
name: "Restore source code cache"
|
||||||
|
keys:
|
||||||
|
- go-src-v1-{{ .Revision }}
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
name: "Restore go modules cache"
|
||||||
|
keys:
|
||||||
|
- go-mod-v2-{{ checksum "go.sum" }}
|
||||||
|
- run:
|
||||||
|
name: << parameters.description >>
|
||||||
|
cammnd: |
|
||||||
|
make << parameters.target >>
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
setup-dependencies:
|
||||||
|
executor: golang
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
name: "Restore go modules cache"
|
||||||
|
keys:
|
||||||
|
- go-mod-v2-{{ checksum "go.sum" }}
|
||||||
|
- run:
|
||||||
|
name: Cache go modules
|
||||||
|
command: make go-mod-cache
|
||||||
|
- run:
|
||||||
|
name: Build
|
||||||
|
command: make build
|
||||||
|
- run:
|
||||||
|
name: Git garbage collection
|
||||||
|
command: git gc
|
||||||
|
- save_cache:
|
||||||
|
name: "Save go modules cache"
|
||||||
|
key: go-mod-v2-{{ checksum "go.sum" }}
|
||||||
|
paths:
|
||||||
|
- "/go/pkg/mod"
|
||||||
|
- save_cache:
|
||||||
|
name: "Save source code cache"
|
||||||
|
key: go-src-v1-{{ .Revision }}
|
||||||
|
paths:
|
||||||
|
- ".git"
|
||||||
|
test-cover:
|
||||||
|
executor: golang
|
||||||
|
parallelism: 4
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
keys:
|
||||||
|
- go-mod-v2-{{ checksum "go.sum" }}
|
||||||
|
- run:
|
||||||
|
name: Run tests
|
||||||
|
command: |
|
||||||
|
export VERSION="$(git describe --tags --long | sed 's/v\(.*\)/\1/')"
|
||||||
|
export GO111MODULE=on
|
||||||
|
mkdir -p /tmp/logs /tmp/workspace/profiles
|
||||||
|
for pkg in $(go list ./... | grep -v '/simulation' | circleci tests split); do
|
||||||
|
id=$(echo "$pkg" | sed 's|[/.]|_|g')
|
||||||
|
go test -mod=readonly -timeout 8m -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic -tags='ledger test_ledger_mock' "$pkg" | tee "/tmp/logs/$id-$RANDOM.log"
|
||||||
|
done
|
||||||
|
- persist_to_workspace:
|
||||||
|
root: /tmp/workspace
|
||||||
|
paths:
|
||||||
|
- "profiles/*"
|
||||||
|
- store_artifacts:
|
||||||
|
path: /tmp/logs
|
||||||
|
|
||||||
|
test-all:
|
||||||
|
executor: golang
|
||||||
|
steps:
|
||||||
|
- make:
|
||||||
|
target: test-all
|
||||||
|
description: "Run all tests and simulations"
|
||||||
|
|
||||||
|
start-remote-sims:
|
||||||
|
executor: golang
|
||||||
|
steps:
|
||||||
|
- make:
|
||||||
|
target: start-remote-sims
|
||||||
|
description: "Test multi-seed simulation (long)"
|
||||||
|
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
test-suite:
|
||||||
|
jobs:
|
||||||
|
- setup-dependencies:
|
||||||
|
# This filter enables the job for tags
|
||||||
|
filters:
|
||||||
|
tags:
|
||||||
|
only:
|
||||||
|
- /^v.*/
|
||||||
|
- test-cover:
|
||||||
|
requires:
|
||||||
|
- setup-dependencies
|
||||||
|
- test-all:
|
||||||
|
requires:
|
||||||
|
- setup-dependencies
|
||||||
|
# These filters ensure that the long sim only runs during release
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
ignore: /.*/
|
||||||
|
tags:
|
||||||
|
only:
|
||||||
|
- /^v.*/
|
Loading…
Reference in New Issue
Block a user