123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #
- # DO NOT EDIT THIS FILE
- #
- # It is automatically copied from https://github.com/pion/.goassets repository.
- # If this repository should have package specific CI config,
- # remove the repository name from .goassets/.github/workflows/assets-sync.yml.
- #
- # If you want to update the shared CI config, send a PR to
- # https://github.com/pion/.goassets instead of this repository.
- #
- dist: bionic
- language: go
- branches:
- only:
- - master
- env:
- global:
- - GO111MODULE=on
- - GOLANGCI_LINT_VERSION=1.19.1
- cache:
- directories:
- - ${HOME}/.cache/go-build
- - ${GOPATH}/pkg/mod
- npm: true
- yarn: true
- _lint_job: &lint_job
- env: CACHE_NAME=lint
- before_install:
- - if [ -f .github/.ci.conf ]; then . .github/.ci.conf; fi
- install: skip
- before_script:
- - |
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \
- | bash -s - -b $GOPATH/bin v${GOLANGCI_LINT_VERSION}
- script:
- - bash .github/assert-contributors.sh
- - bash .github/lint-disallowed-functions-in-library.sh
- - bash .github/lint-commit-message.sh
- - bash .github/lint-filename.sh
- - golangci-lint run ./...
- _test_job: &test_job
- env: CACHE_NAME=test
- before_install:
- - if [ -f .github/.ci.conf ]; then . .github/.ci.conf; fi
- - go mod download
- install:
- - go build ./...
- script:
- # If you want to specify repository specific test packages rule,
- # add `TEST_PACKAGES=$(command to list test target packages)` to .github/.ci.conf
- - testpkgs=${TEST_PACKAGES:-$(go list ./... | grep -v examples)}
- - coverpkgs=$(echo "${testpkgs}" | paste -s -d ',')
- - |
- go test \
- -coverpkg=${coverpkgs} -coverprofile=cover.out -covermode=atomic \
- ${TEST_EXTRA_ARGS:-} \
- -v -race ${testpkgs}
- - if [ -n "${TEST_HOOK}" ]; then ${TEST_HOOK}; fi
- after_success:
- - travis_retry bash <(curl -s https://codecov.io/bash) -c -F go
- _test_i386_job: &test_i386_job
- env: CACHE_NAME=test386
- services: docker
- before_install:
- - if [ -f .github/.ci.conf ]; then . .github/.ci.conf; fi
- script:
- - testpkgs=${TEST_PACKAGES:-$(go list ./... | grep -v examples)}
- - |
- docker run \
- -u $(id -u):$(id -g) \
- -e "GO111MODULE=on" \
- -e "CGO_ENABLED=0" \
- -v ${PWD}:/go/src/github.com/pion/$(basename ${PWD}) \
- -v ${HOME}/gopath/pkg/mod:/go/pkg/mod \
- -v ${HOME}/.cache/go-build:/.cache/go-build \
- -w /go/src/github.com/pion/$(basename ${PWD}) \
- -it i386/golang:${GO_VERSION}-alpine \
- /usr/local/go/bin/go test \
- ${TEST_EXTRA_ARGS:-} \
- -v ${testpkgs}
- _test_wasm_job: &test_wasm_job
- env: CACHE_NAME=wasm
- language: node_js
- node_js: 12
- before_install:
- - if [ -f .github/.ci.conf ]; then . .github/.ci.conf; fi
- - if ${SKIP_WASM_TEST:-false}; then exit 0; fi
- install:
- # Manually download and install Go instead of using gimme.
- # It looks like gimme Go causes some errors on go-test for Wasm.
- - curl -sSfL https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz | tar -C ~ -xzf -
- - export GOROOT=${HOME}/go
- - export PATH=${GOROOT}/bin:${PATH}
- - yarn install
- - export GO_JS_WASM_EXEC=${GO_JS_WASM_EXEC:-${GOROOT}/misc/wasm/go_js_wasm_exec}
- script:
- - testpkgs=${TEST_PACKAGES:-$(go list ./... | grep -v examples)}
- - coverpkgs=$(echo "${testpkgs}" | paste -s -d ',')
- - |
- GOOS=js GOARCH=wasm go test \
- -coverpkg=${coverpkgs} -coverprofile=cover.out -covermode=atomic \
- -exec="${GO_JS_WASM_EXEC}" \
- -v ${testpkgs}
- after_success:
- - travis_retry bash <(curl -s https://codecov.io/bash) -c -F wasm
- jobs:
- include:
- - <<: *lint_job
- name: Lint 1.14
- go: 1.14
- - <<: *test_job
- name: Test 1.13
- go: 1.13
- - <<: *test_job
- name: Test 1.14
- go: 1.14
- - <<: *test_i386_job
- name: Test i386 1.13
- env: GO_VERSION=1.13
- go: 1.14 # Go version for host environment only for `go list`.
- # All tests are done on the version specified by GO_VERSION.
- - <<: *test_i386_job
- name: Test i386 1.14
- env: GO_VERSION=1.14
- go: 1.14 # Go version for host environment only for `go list`.
- # All tests are done on the version specified by GO_VERSION.
- - <<: *test_wasm_job
- name: Test WASM 1.13
- env: GO_VERSION=1.13
- - <<: *test_wasm_job
- name: Test WASM 1.14
- env: GO_VERSION=1.14
- notifications:
- email: false
|