name: Go

on: [push, pull_request]

jobs:

  build:
    timeout-minutes: 30
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go-version: [ '1.16', '1.17' ]
      fail-fast: false
    steps:
    - uses: actions/checkout@v2

    - name: Set up Go
      uses: actions/setup-go@v2
      with:
        go-version: ${{ matrix.go-version }}

    - name: Test
      run: go test -race -count 2 -bench . ./...

    - name: Bench
      run: go test -run @ -bench . ./...

    - name: Test on 386
      run: GOARCH=386 go test ./... -bench .
      continue-on-error: true

    - name: Some packages compile for WebAssembly
      run: GOOS=js GOARCH=wasm go build . ./storage ./tracker/...

    - name: Install godo
      run: go install github.com/anacrolix/godo@latest

    - name: Apt packages
      run: sudo apt install pv fuse

    - name: torrentfs end-to-end test
      run: fs/test.sh
      timeout-minutes: 10

name: Go

on: [push, pull_request]

jobs:

  build:
    timeout-minutes: 30
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go-version: [ '1.16', '1.17' ]
      fail-fast: false
    steps:
    - uses: actions/checkout@v2

    - name: Set up Go
      uses: actions/setup-go@v2
      with:
        go-version: ${{ matrix.go-version }}

    - name: Test
      run: go test -race -count 2 ./...

    - name: Test Benchmarks
      run: go test -race -run @ -bench . -benchtime 2x ./...

    - name: Bench
      run: go test -run @ -bench . ./...

    - name: Test on 386
      run: GOARCH=386 go test ./... -bench .
      continue-on-error: true

    - name: Some packages compile for WebAssembly
      run: GOOS=js GOARCH=wasm go build . ./storage ./tracker/...

    - name: Install godo
      run: go install github.com/anacrolix/godo@latest

    - name: Apt packages
      run: sudo apt install pv fuse

    - name: torrentfs end-to-end test
      run: fs/test.sh
      timeout-minutes: 10

Test benchmarks in a separate step and limit executions
Test benchmarks in a separate step and limit executions
