neo-go/.github/workflows/run_tests.yml

127 lines
2.9 KiB
YAML
Raw Normal View History

2021-02-24 18:26:34 +00:00
name: Tests
on:
pull_request:
branches:
- master
types: [opened, synchronize]
paths-ignore:
- 'scripts/**'
- '**/*.md'
workflow_dispatch:
env:
GO111MODULE: "on"
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
2021-02-24 18:26:34 +00:00
steps:
- uses: actions/checkout@v2
- name: golangci-lint
uses: golangci/golangci-lint-action@v2
2021-02-24 18:26:34 +00:00
with:
version: latest
2021-02-24 18:26:34 +00:00
gomodcheck:
name: Check internal dependencies
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Check dependencies
run: |
./scripts/check_deps.sh
2021-02-24 18:26:34 +00:00
test_cover:
name: Coverage
runs-on: ubuntu-20.04
2021-02-24 18:26:34 +00:00
env:
CGO_ENABLED: 0
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Sync VM submodule
run: |
git submodule sync
git submodule update --init
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.18
2021-02-24 18:26:34 +00:00
- name: Restore Go modules from cache
uses: actions/cache@v2
with:
path: /home/runner/go/pkg/mod
key: deps-${{ hashFiles('go.sum') }}
- name: Update Go modules
run: go mod download -json
- name: Write coverage profile
run: go test -v ./... -coverprofile=./coverage.txt -covermode=atomic -coverpkg=./pkg...,./cli/...
- name: Upload coverage results to Codecov
uses: codecov/codecov-action@v2
2021-02-24 18:26:34 +00:00
with:
fail_ci_if_error: true # if something is wrong on uploading codecov results, then this job will fail
files: ./coverage.txt
2021-02-24 18:26:34 +00:00
verbose: true
2021-11-25 07:53:33 +00:00
tests:
name: Run tests
runs-on: ${{ matrix.os }}
2021-02-24 18:26:34 +00:00
strategy:
matrix:
os: [ubuntu-20.04, windows-2022, macos-12]
go_versions: [ '1.16', '1.17', '1.18' ]
2021-11-25 07:53:33 +00:00
exclude:
# Only latest Go version for Windows and MacOS.
2021-11-25 07:53:33 +00:00
- os: windows-2022
go_versions: '1.16'
- os: windows-2022
2021-11-25 07:53:33 +00:00
go_versions: '1.17'
- os: macos-12
go_versions: '1.16'
- os: macos-12
go_versions: '1.17'
# Exclude latest Go version for Ubuntu as Coverage uses it.
- os: ubuntu-20.04
go_versions: '1.18'
2021-02-24 18:26:34 +00:00
fail-fast: false
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: '${{ matrix.go_versions }}'
- name: Restore Go modules from cache
uses: actions/cache@v2
with:
path: /home/runner/go/pkg/mod
key: deps-${{ hashFiles('go.sum') }}
- name: Update Go modules
run: go mod download -json
- name: Sync VM submodule
run: |
git submodule sync
git submodule update --init
- name: Run tests
run: go test -v -race ./...