87 lines
2.0 KiB
YAML
87 lines
2.0 KiB
YAML
name: Go
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
test:
|
|
timeout-minutes: 30
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
go-version: [ '1.16', '1.17', 'tip' ]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./.github/actions/go-common
|
|
- run: go test -race -count 2 ./...
|
|
|
|
test-benchmarks:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
go-version: [ '1.17' ]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./.github/actions/go-common
|
|
- run: go test -race -run @ -bench . -benchtime 2x ./...
|
|
|
|
bench:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
go-version: [ '1.17' ]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./.github/actions/go-common
|
|
- run: go test -run @ -bench . ./...
|
|
|
|
test-386:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
go-version: [ '1.16', '1.17' ]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./.github/actions/go-common
|
|
- run: GOARCH=386 go test ./...
|
|
- run: GOARCH=386 go test ./... -run @ -bench .
|
|
|
|
build-wasm:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
go-version: [ '1.16', '1.17' ]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./.github/actions/go-common
|
|
- name: Some packages compile for WebAssembly
|
|
run: GOOS=js GOARCH=wasm go build -v . ./storage ./tracker/...
|
|
|
|
torrentfs:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
go-version: [ '1.17' ]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./.github/actions/go-common
|
|
- name: Install godo
|
|
run: |
|
|
# Need master for cross-compiling fix
|
|
go install -v -x github.com/anacrolix/godo@master
|
|
echo $PATH
|
|
|
|
- name: Apt packages
|
|
run: sudo apt install pv fuse
|
|
|
|
- name: torrentfs end-to-end test
|
|
# Test on 386 for atomic alignment and other bad 64-bit assumptions
|
|
run: GOARCH=386 fs/test.sh
|
|
timeout-minutes: 10
|