Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
2.0 KiB
29 lines
2.0 KiB
#!/bin/bash |
|
|
|
set -ex |
|
|
|
# go to the repo root |
|
cd $(dirname $0)/../../.. |
|
|
|
if [[ -t 0 ]]; then |
|
DOCKER_TTY_ARGS="-it" |
|
else |
|
# The input device on kokoro is not a TTY, so -it does not work. |
|
DOCKER_TTY_ARGS= |
|
fi |
|
|
|
# First, build protobuf C# tests under x86_64 docker image |
|
# Tests are built "dotnet publish" because we want all the dependencies to the copied to the destination directory |
|
# (we want to avoid references to ~/.nuget that won't be available in the subsequent docker run) |
|
CSHARP_BUILD_COMMAND="dotnet publish -c Release -f net60 csharp/src/Google.Protobuf.Test/Google.Protobuf.Test.csproj" |
|
docker run $DOCKER_TTY_ARGS --rm --user "$(id -u):$(id -g)" -e "HOME=/home/fake-user" -e "DOTNET_CLI_TELEMETRY_OPTOUT=true" -e "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true" -v "$(mktemp -d):/home/fake-user" -v "$(pwd)":/work -w /work mcr.microsoft.com/dotnet/sdk:6.0.100-bullseye-slim bash -c "$CSHARP_BUILD_COMMAND" |
|
|
|
# Use an actual aarch64 docker image to run protobuf C# tests with an emulator. "dotnet vstest" allows |
|
# running tests from a pre-built project. |
|
# * mount the protobuf root as /work to be able to access the crosscompiled files |
|
# * to avoid running the process inside docker as root (which can pollute the workspace with files owned by root), we force |
|
# running under current user's UID and GID. To be able to do that, we need to provide a home directory for the user |
|
# otherwise the UID would be homeless under the docker container and pip install wouldn't work. For simplicity, |
|
# we just run map the user's home to a throwaway temporary directory |
|
CSHARP_TEST_COMMAND="dotnet vstest csharp/src/Google.Protobuf.Test/bin/Release/net60/publish/Google.Protobuf.Test.dll" |
|
docker run $DOCKER_TTY_ARGS --rm --user "$(id -u):$(id -g)" -e "HOME=/home/fake-user" -e "DOTNET_CLI_TELEMETRY_OPTOUT=true" -e "DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true" -v "$(mktemp -d):/home/fake-user" -v "$(pwd)":/work -w /work mcr.microsoft.com/dotnet/sdk:6.0.100-bullseye-slim-arm64v8 bash -c "$CSHARP_TEST_COMMAND"
|
|
|