FedP2P/.github/workflows/go.yml

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