1language: go
2
3os:
4  - linux
5  - osx
6  - windows
7
8arch:
9  - amd64
10  - arm64
11  - ppc64le
12  - s390x
13
14go:
15  - 1.12.x
16  - 1.13.x
17  - 1.14.x
18  - master
19
20install:
21 - go get ./...
22
23script:
24 - go vet ./...
25 - go test -cpu=1,2 .
26 - go test -tags=noasm -cpu=1,2 .
27 - go build examples/simple-decoder.go
28 - go build examples/simple-encoder.go
29 - go build examples/stream-decoder.go
30 - go build examples/stream-encoder.go
31
32stages:
33  - gofmt
34  - test
35  - deploy
36
37jobs:
38  allow_failures:
39    - go: 'master'
40    - arch: s390x
41  fast_finish: true
42  include:
43    - stage: gofmt
44      go: 1.14.x
45      os: linux
46      arch: amd64
47      script:
48        - diff <(gofmt -d .) <(printf "")
49        - diff <(gofmt -d ./examples) <(printf "")
50        - go install github.com/klauspost/asmfmt/cmd/asmfmt
51        - diff <(asmfmt -d .) <(printf "")
52    - stage: race
53      go: 1.14.x
54      os: linux
55      arch: amd64
56      script:
57        - go test -cpu=1 -short -race .
58        - go test -cpu=2 -short -race .
59        - go test -tags=noasm -cpu=1 -short -race .
60        - go test -tags=noasm -cpu=4 -short -race .
61        - go test -no-avx512 -short -race .
62        - go test -no-avx512 -no-avx2 -short -race .
63        - go test -no-avx512 -no-avx2 -no-ssse3 -short -race .
64    - stage: amd64-noasm
65      go: 1.14.x
66      os: linux
67      arch: amd64
68      script:
69        - go test -no-avx512
70        - go test -no-avx512 -no-avx2
71        - go test -no-avx512 -no-avx2 -no-ssse3
72    - stage: i386
73      go: 1.14.x
74      os: linux
75      arch: amd64
76      script:
77        - GOOS=linux GOARCH=386 go test -short .
78