diff --git a/.github/workflows/badge-sqlite-version.yml b/.github/workflows/badge-sqlite-version.yml new file mode 100644 index 0000000..5d3a69d --- /dev/null +++ b/.github/workflows/badge-sqlite-version.yml @@ -0,0 +1,38 @@ +name: Badge Sqlite version + +on: + workflow_dispatch: + push: + branches: [master] + +jobs: + create-sqlite-version-badge: + runs-on: ubuntu-latest + steps: + - name: Set up Go + uses: actions/setup-go@v2.1.5 + with: + go-version: 1.17 + + - name: Check out code into the Go module directory + uses: actions/checkout@v2 + + - name: go mod package cache + uses: actions/cache@v2 + with: + path: ~/go/pkg/mod + key: ${{ runner.os }}-${{ hashFiles('go.mod') }} + + - name: request sqlite_version() + run: echo "sqlite_version=$(go test . -run '^TestSQLiteVersion$' -v | grep sqlite_version | tr -s ' ' | cut -d' ' -f3)" >> $GITHUB_ENV + + - name: Make version badge + uses: schneegans/dynamic-badges-action@v1.1.0 + with: + auth: ${{ secrets.GIST_SECRET }} + gistID: 0fd7561eb29baf31d5362ffee1ae1702 + filename: badge-sqlite-version-with-date.json + label: SQLite release + message: "${{ env.sqlite_version }}" + color: 2269d3 + labelColor: 25292d \ No newline at end of file diff --git a/README.md b/README.md index bf0df44..9bc8306 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![Tests](https://github.com/glebarez/go-sqlite/actions/workflows/tests.yml/badge.svg)](https://github.com/glebarez/go-sqlite/actions/workflows/tests.yml)
-![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/glebarez/fb4d23f63d866b3e1e58b26d2f5ed01f/raw/badge-sqlite-version.json) +![badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/glebarez/0fd7561eb29baf31d5362ffee1ae1702/raw/badge-sqlite-version-with-date.json) # go-sqlite This is a pure-Go SQLite driver for Golang's native [database/sql](https://pkg.go.dev/database/sql) package. diff --git a/sqlite_release_test.go b/sqlite_release_test.go new file mode 100644 index 0000000..f18e359 --- /dev/null +++ b/sqlite_release_test.go @@ -0,0 +1,32 @@ +package sqlite + +import ( + "database/sql" + "log" + "testing" + "time" +) + +func TestSQLiteVersion(t *testing.T) { + + db, err := sql.Open(driverName, ":memory:") + if err != nil { + log.Fatal(err) + } + var ( + version string + sourceID string + ) + + row := db.QueryRow("select sqlite_version(), sqlite_source_id()") + if row.Scan(&version, &sourceID) != nil { + log.Fatal(err) + } + + releaseDate, err := time.Parse(`2006-01-02`, sourceID[:10]) + if err != nil { + t.Fatal(err) + } + + t.Logf("%s (%s)\n", version, releaseDate.Format(`02/Jan/2006`)) +}