108 lines
2.5 KiB
YAML
108 lines
2.5 KiB
YAML
version: 2.1
|
|
|
|
commands:
|
|
test:
|
|
parameters:
|
|
arch:
|
|
default: "amd64"
|
|
description: The target architecture.
|
|
type: enum
|
|
enum: ["amd64", "386"]
|
|
steps:
|
|
- run:
|
|
name: "Test (<<parameters.arch>>)"
|
|
command: |
|
|
export GOARCH=<<parameters.arch>>
|
|
go version
|
|
go env
|
|
go test -v -coverprofile=coverage-<<parameters.arch>>.txt -covermode=count
|
|
|
|
jobs:
|
|
|
|
go114:
|
|
docker:
|
|
- image: cimg/go:1.14
|
|
steps:
|
|
- run:
|
|
name: "Install tools"
|
|
command: |
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.23.8
|
|
- checkout
|
|
- run:
|
|
name: "Lint"
|
|
command: golangci-lint run
|
|
- test:
|
|
arch: "amd64"
|
|
- test:
|
|
arch: "386"
|
|
- run:
|
|
name: "Codecov upload"
|
|
command: bash <(curl -s https://codecov.io/bash)
|
|
- restore_cache:
|
|
keys:
|
|
- corpus
|
|
- run:
|
|
name: "Fuzzing"
|
|
command: |
|
|
go get -u github.com/dvyukov/go-fuzz/go-fuzz github.com/dvyukov/go-fuzz/go-fuzz-build
|
|
go-fuzz-build
|
|
timeout --preserve-status --signal INT 1m go-fuzz -procs=2
|
|
test ! "$(ls crashers)"
|
|
- save_cache:
|
|
key: corpus-{{ epoch }}
|
|
paths:
|
|
- corpus
|
|
- run:
|
|
name: "Benchmark"
|
|
command: go test -run=- -bench=. -benchmem
|
|
- run:
|
|
name: "Build tests for PPC64"
|
|
command: |
|
|
GOARCH=ppc64 go test -c
|
|
mv uint256.test uint256.test.ppc64
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- uint256.test.*
|
|
|
|
bigendian:
|
|
docker:
|
|
- image: circleci/buildpack-deps:bullseye
|
|
steps:
|
|
- run:
|
|
name: "Install QEMU"
|
|
command: sudo apt-get -q update && sudo apt-get -qy install qemu-user-static --no-install-recommends
|
|
- attach_workspace:
|
|
at: .
|
|
- run:
|
|
name: "Test (PPC64 emulation)"
|
|
command: qemu-ppc64-static uint256.test.ppc64 -test.v
|
|
|
|
|
|
go113:
|
|
docker:
|
|
- image: cimg/go:1.13
|
|
steps:
|
|
- checkout
|
|
- test
|
|
|
|
go112:
|
|
docker:
|
|
- image: cimg/go:1.12
|
|
steps:
|
|
- checkout
|
|
- test
|
|
|
|
|
|
|
|
workflows:
|
|
version: 2
|
|
uint256:
|
|
jobs:
|
|
- go114
|
|
- go113
|
|
- go112
|
|
- bigendian:
|
|
requires:
|
|
- go114
|