name: Go on: [push, pull_request] jobs: test: name: Test runs-on: ${{ matrix.os }} defaults: run: shell: bash strategy: matrix: os: [ ubuntu-latest, macos-latest ] go: [ '1.11.13', '1.12.17', '1.13.15', '1.14.7', '1.15' ] fail-fast: false steps: - if: startsWith(matrix.os, 'macos') run: brew update - uses: actions/setup-go@v2 with: go-version: ${{ matrix.go }} - name: Get Build Tools run: | go get github.com/mattn/goveralls go get golang.org/x/tools/cmd/cover - name: Add $GOPATH/bin to $PATH run: | echo "::add-path::$(go env GOPATH)/bin" - uses: actions/checkout@v2 - name: Setup goveralls run: goveralls -repotoken 3qJVUE0iQwqnCbmNcDsjYu1nh4J4KIFXx -parallel - name: Test1 run: go test -race -v . -tags "" - name: Test2 run: go test -race -v . -tags "libsqlite3" - name: Test3 run: go test -race -v . -tags "sqlite_allow_uri_authority sqlite_app_armor sqlite_foreign_keys sqlite_fts5 sqlite_icu sqlite_introspect sqlite_json sqlite_preupdate_hook sqlite_secure_delete sqlite_see sqlite_stat4 sqlite_trace sqlite_userauth sqlite_vacuum_incr sqlite_vtable sqlite_unlock_notify" - name: Test4 run: go test -race -v . -tags "sqlite_vacuum_full" test-windows: name: Test for Windows runs-on: windows-latest defaults: run: shell: bash strategy: matrix: go: [ '1.11.13', '1.12.17', '1.13.15', '1.14.7', '1.15' ] fail-fast: false steps: - uses: msys2/setup-msys2@v2 with: update: true install: mingw-w64-x86_64-toolchain mingw-w64-x86_64-sqlite3 msystem: MINGW64 path-type: inherit - uses: actions/setup-go@v2 with: go-version: ${{ matrix.go }} - name: Get Build Tools run: | go get github.com/mattn/goveralls go get golang.org/x/tools/cmd/cover shell: msys2 {0} - name: Add $GOPATH/bin to $PATH run: | echo "::add-path::$(go env GOPATH)/bin" shell: msys2 {0} - uses: actions/checkout@v2 - name: Setup goveralls run: goveralls -repotoken 3qJVUE0iQwqnCbmNcDsjYu1nh4J4KIFXx -parallel shell: msys2 {0} - name: Test1 run: go test -race -v . -tags "" shell: msys2 {0} - name: Test2 run: go test -race -v . -tags "libsqlite3" shell: msys2 {0} - name: Test3 run: | echo 'skip this test' echo go test -race -v . -tags "sqlite_allow_uri_authority sqlite_app_armor sqlite_foreign_keys sqlite_fts5 sqlite_icu sqlite_introspect sqlite_json sqlite_preupdate_hook sqlite_secure_delete sqlite_see sqlite_stat4 sqlite_trace sqlite_userauth sqlite_vacuum_incr sqlite_vtable sqlite_unlock_notify" shell: msys2 {0} - name: Test4 run: go test -race -v . -tags "sqlite_vacuum_full" shell: msys2 {0} finish: needs: [test, test-windows] name: Test Finished runs-on: ubuntu-latest steps: - uses: actions/setup-go@v2 with: go-version: 1.x - name: Get Build Tools run: | go get github.com/mattn/goveralls go get golang.org/x/tools/cmd/cover - name: Add $GOPATH/bin to $PATH run: | echo "::add-path::$(go env GOPATH)/bin" - name: Send coverage env: COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: goveralls -repotoken 3qJVUE0iQwqnCbmNcDsjYu1nh4J4KIFXx -parallel-finish # based on: github.com/koron-go/_skeleton/.github/workflows/go.yml