| 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.24', '1.25', '1.26'] |
| fail-fast: false |
| env: |
| OS: ${{ matrix.os }} |
| GO: ${{ matrix.go }} |
| steps: |
| - if: startsWith(matrix.os, 'macos') |
| run: brew update |
| |
| - uses: actions/setup-go@v6 |
| with: |
| go-version: ${{ matrix.go }} |
| |
| - name: Get Build Tools |
| run: | |
| GO111MODULE=on go install github.com/ory/go-acc@latest |
| |
| - name: Add $GOPATH/bin to $PATH |
| run: | |
| echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" |
| |
| - uses: actions/checkout@v6 |
| |
| - name: 'Tags: default' |
| run: go-acc . -- -race -v -tags "" |
| |
| - name: 'Tags: libsqlite3' |
| run: go-acc . -- -race -v -tags "libsqlite3" |
| |
| - name: 'Tags: full' |
| run: go-acc . -- -race -v -tags "sqlite_allow_uri_authority sqlite_app_armor sqlite_column_metadata sqlite_foreign_keys sqlite_fts5 sqlite_icu sqlite_introspect sqlite_json sqlite_math_functions sqlite_os_trace sqlite_preupdate_hook sqlite_secure_delete sqlite_see sqlite_stat4 sqlite_trace sqlite_unlock_notify sqlite_vacuum_incr sqlite_vtable" |
| |
| - name: 'Tags: vacuum' |
| run: go-acc . -- -race -v -tags "sqlite_vacuum_full" |
| |
| - name: Upload coverage to Codecov |
| uses: codecov/codecov-action@v5 |
| with: |
| env_vars: OS,GO |
| file: coverage.txt |
| |
| test-windows: |
| name: Test for Windows |
| runs-on: windows-latest |
| defaults: |
| run: |
| shell: bash |
| |
| strategy: |
| matrix: |
| go: ['1.24', '1.25', '1.26'] |
| fail-fast: false |
| env: |
| OS: windows-latest |
| GO: ${{ matrix.go }} |
| 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@v6 |
| with: |
| go-version: ${{ matrix.go }} |
| |
| - name: Add $GOPATH/bin to $PATH |
| run: | |
| echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" |
| shell: msys2 {0} |
| |
| - uses: actions/checkout@v6 |
| |
| - name: 'Tags: default' |
| run: go build -race -v -tags "" |
| shell: msys2 {0} |
| |
| - name: 'Tags: libsqlite3' |
| run: go build -race -v -tags "libsqlite3" |
| shell: msys2 {0} |
| |
| - name: 'Tags: full' |
| run: | |
| echo 'skip this test' |
| echo go build -race -v -tags "sqlite_allow_uri_authority sqlite_app_armor sqlite_column_metadata sqlite_foreign_keys sqlite_fts5 sqlite_icu sqlite_introspect sqlite_json sqlite_math_functions sqlite_preupdate_hook sqlite_secure_delete sqlite_see sqlite_stat4 sqlite_trace sqlite_unlock_notify sqlite_vacuum_incr sqlite_vtable" |
| shell: msys2 {0} |
| |
| - name: 'Tags: vacuum' |
| run: go build -race -v -tags "sqlite_vacuum_full" |
| shell: msys2 {0} |
| |
| - name: Upload coverage to Codecov |
| uses: codecov/codecov-action@v5 |
| with: |
| env_vars: OS,GO |
| file: coverage.txt |
| |
| # based on: github.com/koron-go/_skeleton/.github/workflows/go.yml |