Skip to content

Go bindings tests CI #5351

Go bindings tests CI

Go bindings tests CI #5351

Workflow file for this run

name: Go bindings tests CI
on:
push:
branches: [ "main" ]
pull_request:
merge_group:
branches: [ "main" ]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
golang-bindings:
runs-on: ubuntu-latest
services:
sqld:
image: ghcr.io/tursodatabase/libsql-server:latest
ports:
- 8080:8080
steps:
- uses: actions/checkout@v3
# needed because we run out of disk space during tests
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# when set to "true" but frees about 6 GB
tool-cache: true
- uses: dtolnay/rust-toolchain@stable
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: '>=1.21'
- name: get TCL
run: sudo apt-get install -y tcl8.6-dev
- name: Install Protoc
uses: arduino/setup-protoc@v2
- name: Set up cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Build sql-experimental
run: cargo b -j16 --release -p sql-experimental
- name: go-libsql checkout
uses: actions/checkout@v3
with:
repository: tursodatabase/go-libsql
ref: "main"
path: "go-libsql"
- name: Copy sql-experimental library to go-libsql
run: cp target/release/libsql_experimental.a go-libsql/lib/darwin_amd64/
&& cp target/release/libsql_experimental.a go-libsql/lib/darwin_arm64/
&& cp target/release/libsql_experimental.a go-libsql/lib/linux_amd64/
&& cp target/release/libsql_experimental.a go-libsql/lib/linux_arm64/
&& cp bindings/c/include/libsql.h go-libsql/lib/include/
- name: Run go-libsql tests
working-directory: go-libsql
run: go test -v -count=1 ./...
env:
LIBSQL_PRIMARY_URL: "http://127.0.0.1:8080"