mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-27 07:41:15 +00:00
[AZ-1132] Use system protoc in run-tests SDK container
Install protobuf-compiler and set PROTOBUF_PROTOC on arm64 where Grpc.Tools bundled protoc segfaults; align Woodpecker. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -12,5 +12,7 @@ steps:
|
|||||||
- name: unit-tests
|
- name: unit-tests
|
||||||
image: mcr.microsoft.com/dotnet/sdk:10.0
|
image: mcr.microsoft.com/dotnet/sdk:10.0
|
||||||
commands:
|
commands:
|
||||||
|
- apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends protobuf-compiler && rm -rf /var/lib/apt/lists/*
|
||||||
|
- export PROTOBUF_PROTOC=/usr/bin/protoc
|
||||||
- dotnet restore SatelliteProvider.sln
|
- dotnet restore SatelliteProvider.sln
|
||||||
- dotnet test SatelliteProvider.Tests/SatelliteProvider.Tests.csproj --no-restore --configuration Release --logger "console;verbosity=normal" --logger "trx;LogFileName=test-results.trx" --results-directory /app/test-results
|
- dotnet test SatelliteProvider.Tests/SatelliteProvider.Tests.csproj --no-restore --configuration Release --logger "console;verbosity=normal" --logger "trx;LogFileName=test-results.trx" --results-directory /app/test-results
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
| Task | Status | Files Modified | Tests | AC Coverage | Issues |
|
| Task | Status | Files Modified | Tests | AC Coverage | Issues |
|
||||||
|------|--------|---------------|-------|-------------|--------|
|
|------|--------|---------------|-------|-------------|--------|
|
||||||
| AZ-1132 | Done | 5 files | Validator unit: 144/144 PASS (host) | 5/5 ACs covered | Docker `protoc` segfault blocks `./scripts/run-tests.sh` on this host — Step 11 gate |
|
| AZ-1132 | Done | 5 files | Full suite PASS (`run-tests.sh`, 457 unit + integration) | 5/5 ACs covered | None |
|
||||||
|
|
||||||
## AC Test Coverage
|
## AC Test Coverage
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
## Current Step
|
## Current Step
|
||||||
flow: existing-code
|
flow: existing-code
|
||||||
step: 10
|
step: 11
|
||||||
name: Implement
|
name: Run Tests
|
||||||
status: in_progress
|
status: completed
|
||||||
sub_step:
|
sub_step:
|
||||||
phase: 1
|
phase: 0
|
||||||
name: parse
|
name: awaiting-invocation
|
||||||
detail: ""
|
detail: ""
|
||||||
retry_count: 0
|
retry_count: 0
|
||||||
cycle: 15
|
cycle: 15
|
||||||
|
|||||||
+13
-4
@@ -63,6 +63,17 @@ EOF
|
|||||||
}
|
}
|
||||||
ensure_dev_cert
|
ensure_dev_cert
|
||||||
|
|
||||||
|
# Grpc.Tools' bundled linux_arm64/protoc segfaults inside the stock sdk image;
|
||||||
|
# match Api/IntegrationTests Dockerfiles (see environment.md).
|
||||||
|
sdk_container_sh() {
|
||||||
|
docker run --rm -v "$PROJECT_ROOT:/src" -w /src mcr.microsoft.com/dotnet/sdk:10.0 \
|
||||||
|
sh -c 'apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends protobuf-compiler \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& export PROTOBUF_PROTOC=/usr/bin/protoc \
|
||||||
|
&& '"$1"
|
||||||
|
}
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Usage: $(basename "$0") [--unit-only | --smoke | --full] [--skip-format] [--keep-state]
|
Usage: $(basename "$0") [--unit-only | --smoke | --full] [--skip-format] [--keep-state]
|
||||||
@@ -131,8 +142,7 @@ fi
|
|||||||
|
|
||||||
if [[ "$mode" == "unit" ]]; then
|
if [[ "$mode" == "unit" ]]; then
|
||||||
echo "Running unit tests only..."
|
echo "Running unit tests only..."
|
||||||
docker run --rm -v "$PROJECT_ROOT:/src" -w /src mcr.microsoft.com/dotnet/sdk:10.0 \
|
sdk_container_sh "dotnet restore SatelliteProvider.sln && dotnet test SatelliteProvider.Tests/SatelliteProvider.Tests.csproj --no-restore --configuration Release --collect:'XPlat Code Coverage' --results-directory /src/TestResults --logger 'console;verbosity=normal'"
|
||||||
sh -c "dotnet restore SatelliteProvider.sln && dotnet test SatelliteProvider.Tests/SatelliteProvider.Tests.csproj --no-restore --configuration Release --collect:'XPlat Code Coverage' --results-directory /src/TestResults --logger 'console;verbosity=normal'"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "=== Unit tests complete (coverage written to ./TestResults/) ==="
|
echo "=== Unit tests complete (coverage written to ./TestResults/) ==="
|
||||||
exit 0
|
exit 0
|
||||||
@@ -174,8 +184,7 @@ export JWT_ISSUER
|
|||||||
export JWT_AUDIENCE
|
export JWT_AUDIENCE
|
||||||
|
|
||||||
echo "Step 1: Unit tests"
|
echo "Step 1: Unit tests"
|
||||||
docker run --rm -v "$PROJECT_ROOT:/src" -w /src mcr.microsoft.com/dotnet/sdk:10.0 \
|
sdk_container_sh "dotnet restore SatelliteProvider.sln && dotnet test SatelliteProvider.Tests/SatelliteProvider.Tests.csproj --no-restore --configuration Release --collect:'XPlat Code Coverage' --results-directory /src/TestResults --logger 'console;verbosity=normal'"
|
||||||
sh -c "dotnet restore SatelliteProvider.sln && dotnet test SatelliteProvider.Tests/SatelliteProvider.Tests.csproj --no-restore --configuration Release --collect:'XPlat Code Coverage' --results-directory /src/TestResults --logger 'console;verbosity=normal'"
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Step 2: Integration tests (Docker Compose, mode=$mode, keep_state=$keep_state)"
|
echo "Step 2: Integration tests (Docker Compose, mode=$mode, keep_state=$keep_state)"
|
||||||
|
|||||||
Reference in New Issue
Block a user