Skip to content

Commit 1cb3641

Browse files
committed
Merge branch 'main' into ado-net-driver
2 parents 88ec7c1 + fdd991b commit 1cb3641

File tree

39 files changed

+520
-298
lines changed

39 files changed

+520
-298
lines changed

.github/workflows/integration-tests-on-emulator.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
- name: Set up Ruby
4747
uses: ruby/setup-ruby@v1
4848
with:
49-
ruby-version: '3.3.1'
49+
ruby-version: '3.4.7'
5050
working-directory: spannerlib/wrappers/spannerlib-ruby
5151
bundler-cache: true
5252
- name: Compile and Run Ruby Integration Tests

.github/workflows/release-dotnet-native-spanner-lib.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ jobs:
2121
working-directory: spannerlib
2222
run: go build grpc_server.go
2323
- name: Upload linux-x64 shared lib
24-
uses: actions/upload-artifact@v4
24+
uses: actions/upload-artifact@v5
2525
with:
2626
name: spannerlib-linux-x64
2727
path: spannerlib/spannerlib.so
2828
- name: Upload linux-x64 gRPC server
29-
uses: actions/upload-artifact@v4
29+
uses: actions/upload-artifact@v5
3030
with:
3131
name: spannerlib-server-linux-x64
3232
path: spannerlib/grpc_server
@@ -46,12 +46,12 @@ jobs:
4646
working-directory: spannerlib
4747
run: go build grpc_server.go
4848
- name: Upload osx-arm64 shared lib
49-
uses: actions/upload-artifact@v4
49+
uses: actions/upload-artifact@v5
5050
with:
5151
name: spannerlib-osx-arm64
5252
path: spannerlib/spannerlib.dylib
5353
- name: Upload osx-arm64 gRPC server
54-
uses: actions/upload-artifact@v4
54+
uses: actions/upload-artifact@v5
5555
with:
5656
name: spannerlib-server-osx-arm64
5757
path: spannerlib/grpc_server
@@ -62,24 +62,24 @@ jobs:
6262
- name: Checkout code
6363
uses: actions/checkout@v5
6464
- name: Download and copy linux-x64 shared lib
65-
uses: actions/download-artifact@v5
65+
uses: actions/download-artifact@v6
6666
with:
6767
name: spannerlib-linux-x64
6868
path: spannerlib/dotnet-spannerlib/Google.Cloud.SpannerLib.Native/libraries/linux-x64/
6969
- name: Download and copy linux-x64 gRPC server
70-
uses: actions/download-artifact@v5
70+
uses: actions/download-artifact@v6
7171
with:
7272
name: spannerlib-server-linux-x64
7373
path: spannerlib/dotnet-spannerlib/Google.Cloud.SpannerLib.Grpc/binaries/linux-x64/
7474
- name: Add execute permission to linux-x64 gRPC server
7575
run: chmod +x spannerlib/dotnet-spannerlib/Google.Cloud.SpannerLib.Grpc/binaries/linux-x64/grpc_server
7676
- name: Download and copy osx-arm64
77-
uses: actions/download-artifact@v5
77+
uses: actions/download-artifact@v6
7878
with:
7979
name: spannerlib-osx-arm64
8080
path: spannerlib/dotnet-spannerlib/Google.Cloud.SpannerLib.Native/libraries/osx-arm64/
8181
- name: Download and copy osx-arm64 gRPC server
82-
uses: actions/download-artifact@v5
82+
uses: actions/download-artifact@v6
8383
with:
8484
name: spannerlib-server-osx-arm64
8585
path: spannerlib/dotnet-spannerlib/Google.Cloud.SpannerLib.Grpc/binaries/osx-arm64/

.github/workflows/spanner-lib-tests.yml

Lines changed: 36 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -87,82 +87,63 @@ jobs:
8787
os: [ubuntu-latest, macos-latest, windows-latest]
8888
runs-on: ${{ matrix.os }}
8989
steps:
90-
- name: Install dotnet
91-
uses: actions/setup-dotnet@v4
92-
with:
93-
dotnet-version: '9.0.x'
94-
- name: Install Go
95-
uses: actions/setup-go@v5
96-
with:
97-
go-version: ${{ matrix.go-version }}
9890
- name: Checkout code
9991
uses: actions/checkout@v4
10092
with:
10193
submodules: 'true'
102-
- name: Build shared library
103-
working-directory: spannerlib/shared
104-
run: go build -o spannerlib.so -buildmode=c-shared shared_lib.go
105-
- name: Copy to .NET wrapper
106-
working-directory: spannerlib
94+
- name: Install dotnet
95+
uses: actions/setup-dotnet@v4
96+
with:
97+
dotnet-version: '8.0.x'
98+
- name: Create temporary global.json
99+
# Force the use of .NET 8.0.x by writing that version to a global.json file.
100+
# Otherwise, .NET will default to the latest version on the host.
101+
# .NET 8 has a much smaller chance of crashing when using a native library written in Go
102+
# than .NET 9 has, so using .NET 8 allows us to run the tests using the native library as well.
107103
run: |
108-
mkdir -p wrappers/spannerlib-dotnet/spannerlib-dotnet-native/libraries/any
109-
if [ "$RUNNER_OS" == "Windows" ]; then
110-
cp shared/spannerlib.so wrappers/spannerlib-dotnet/spannerlib-dotnet-native/libraries/any/spannerlib.dll
111-
else
112-
cp shared/spannerlib.so wrappers/spannerlib-dotnet/spannerlib-dotnet-native/libraries/any/spannerlib
113-
fi
114-
shell: bash
115-
- name: Build .NET native library package
116-
run: dotnet pack
117-
working-directory: spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native
104+
echo '{"sdk":{"version": "8.0.0", "rollForward": "latestFeature"}}' > ./global.json
118105
shell: bash
119-
- name: Add .NET package source
120-
run: |
121-
if [ "$RUNNER_OS" == "Windows" ]; then
122-
echo ${GITHUB_WORKSPACE}"\spannerlib\wrappers\spannerlib-dotnet\spannerlib-dotnet-native\bin\Release"
123-
dotnet nuget add source ${GITHUB_WORKSPACE}"\spannerlib\wrappers\spannerlib-dotnet\spannerlib-dotnet-native\bin\Release" --name local
124-
else
125-
dotnet nuget add source "$PWD"/bin/Release --name local
126-
fi
127-
working-directory: spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-native
106+
- name: .NET Version check
107+
working-directory: spannerlib/wrappers/spannerlib-dotnet
108+
run: dotnet --version
128109
shell: bash
129-
- name: Build gRPC server
130-
working-directory: spannerlib/grpc-server
131-
run: |
132-
go build -o grpc_server server.go
133-
chmod +x grpc_server
134-
- name: Copy gRPC server to .NET wrapper
135-
working-directory: spannerlib
110+
- name: Install Go
111+
uses: actions/setup-go@v5
112+
with:
113+
go-version: ${{ matrix.go-version }}
114+
# Install compilers for cross-compiling between operating systems.
115+
- name: Install compilers
136116
run: |
137-
mkdir -p wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server/binaries/any
117+
echo "$RUNNER_OS"
138118
if [ "$RUNNER_OS" == "Windows" ]; then
139-
cp grpc-server/grpc_server wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server/binaries/any/grpc_server.exe
119+
echo "Windows does not yet support cross compiling"
120+
elif [ "$RUNNER_OS" == "macOS" ]; then
121+
brew tap SergioBenitez/osxct
122+
brew install x86_64-unknown-linux-gnu
123+
brew install mingw-w64
140124
else
141-
cp grpc-server/grpc_server wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server/binaries/any/grpc_server
125+
sudo apt-get update
126+
sudo apt install -y g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64
127+
sudo apt-get install -y gcc-arm-linux-gnueabihf
142128
fi
143129
shell: bash
144-
- name: Build .NET gRPC server package
145-
run: dotnet pack
146-
working-directory: spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server
147-
shell: bash
148-
- name: Add .NET package source
130+
- name: Build the .NET wrapper using the build script
131+
working-directory: spannerlib/wrappers/spannerlib-dotnet
149132
run: |
150-
if [ "$RUNNER_OS" == "Windows" ]; then
151-
dotnet nuget add source ${GITHUB_WORKSPACE}"\spannerlib\wrappers\spannerlib-dotnet\spannerlib-dotnet-grpc-server\bin\Release" --name local-grpc-server
152-
else
153-
dotnet nuget add source "$PWD"/bin/Release --name local-grpc-server
154-
fi
155-
working-directory: spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-grpc-server
133+
echo "$RUNNER_OS"
134+
./build.sh
156135
shell: bash
157136
- name: Restore dependencies
158137
run: dotnet restore
159138
working-directory: spannerlib/wrappers/spannerlib-dotnet
160139
shell: bash
161140
- name: Build
162-
run: dotnet build --no-restore
141+
run: dotnet build --no-restore -c Release
163142
working-directory: spannerlib/wrappers/spannerlib-dotnet
164143
shell: bash
165144
- name: .NET Unit Tests
166145
working-directory: spannerlib/wrappers/spannerlib-dotnet/spannerlib-dotnet-tests
167-
run: dotnet test --no-build --verbosity normal
146+
run: |
147+
dotnet --version
148+
dotnet test --no-build --verbosity normal -c Release
168149
shell: bash

benchmarks/go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ module github.com/googleapis/go-sql-spanner/benchmarks
22

33
go 1.24.0
44

5-
toolchain go1.25.2
5+
toolchain go1.25.3
66

77
replace github.com/googleapis/go-sql-spanner => ../
88

99
require (
1010
cloud.google.com/go v0.123.0
11-
cloud.google.com/go/spanner v1.86.0
11+
cloud.google.com/go/spanner v1.86.1
1212
github.com/google/uuid v1.6.0
1313
github.com/googleapis/go-sql-spanner v1.19.0
14-
google.golang.org/api v0.252.0
14+
google.golang.org/api v0.253.0
1515
google.golang.org/grpc v1.76.0
1616
google.golang.org/protobuf v1.36.10
1717
)
@@ -22,7 +22,7 @@ require (
2222
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
2323
cloud.google.com/go/compute/metadata v0.9.0 // indirect
2424
cloud.google.com/go/iam v1.5.2 // indirect
25-
cloud.google.com/go/longrunning v0.6.7 // indirect
25+
cloud.google.com/go/longrunning v0.7.0 // indirect
2626
cloud.google.com/go/monitoring v1.24.2 // indirect
2727
github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.3 // indirect
2828
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect
@@ -52,14 +52,14 @@ require (
5252
go.opentelemetry.io/otel/sdk v1.37.0 // indirect
5353
go.opentelemetry.io/otel/sdk/metric v1.37.0 // indirect
5454
go.opentelemetry.io/otel/trace v1.37.0 // indirect
55-
golang.org/x/crypto v0.42.0 // indirect
56-
golang.org/x/net v0.44.0 // indirect
57-
golang.org/x/oauth2 v0.31.0 // indirect
55+
golang.org/x/crypto v0.43.0 // indirect
56+
golang.org/x/net v0.46.0 // indirect
57+
golang.org/x/oauth2 v0.32.0 // indirect
5858
golang.org/x/sync v0.17.0 // indirect
59-
golang.org/x/sys v0.36.0 // indirect
60-
golang.org/x/text v0.29.0 // indirect
61-
golang.org/x/time v0.13.0 // indirect
59+
golang.org/x/sys v0.37.0 // indirect
60+
golang.org/x/text v0.30.0 // indirect
61+
golang.org/x/time v0.14.0 // indirect
6262
google.golang.org/genproto v0.0.0-20250804133106-a7a43d27e69b // indirect
6363
google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c // indirect
64-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251007200510-49b9836ed3ff // indirect
64+
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
6565
)

0 commit comments

Comments
 (0)