/
githubmirror
/
ydb-dotnet-sdk
Обзор
Документация
Войти
/
githubmirror
/
ydb-dotnet-sdk
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/tests.yml
268 строк
9 KB
Kirill Kurdyukov
feat: support HTTP proxy on YdbConnectionStringBuilder (#679)
28 июл 2026, 15:05
Не верифицирован
28 июл 2026, 15:05
359bf2a
Код
Авторство
О чём код?
name: tests on: push: branches: - main pull_request: workflow_dispatch: # For detect flaky tests schedule: - cron: "45 * * * *" permissions: contents: read jobs: ydb-sdk-tests: strategy: matrix: ydb-version: [ 'latest', 'trunk' ] dotnet-version: [ 8.0.x, 9.0.x ] runs-on: ubuntu-22.04 services: ydb: image: ydbplatform/local-ydb:${{ matrix.ydb-version }} ports: [ "2135:2135", "2136:2136", "8765:8765" ] env: YDB_LOCAL_SURVIVE_RESTART: true YDB_FEATURE_FLAGS: enable_parameterized_decimal,enable_table_datetime64 options: '--name ydb-local -h localhost' env: COVERAGE_ENABLED: ${{ github.event_name != 'schedule' && matrix.ydb-version == 'latest' && matrix.dotnet-version == '9.0.x' }} COVERAGE_DIR: ${{ github.workspace }}/artifacts/coverage/ydb-sdk COVERAGE_SETTINGS: ${{ github.workspace }}/.github/coverlet.runsettings steps: - name: Checkout code uses: actions/checkout@v6 - name: Install Dotnet uses: actions/setup-dotnet@v5 with: dotnet-version: ${{ matrix.dotnet-version }} - name: Prepare coverage directory if: env.COVERAGE_ENABLED == 'true' run: mkdir -p "$COVERAGE_DIR" - name: Run ADO.NET Tests working-directory: ./src/Ydb.Sdk/test/Ydb.Sdk.Ado.Tests run: | docker cp ydb-local:/ydb_certs/ca.pem ~/ docker rm -f ydb-proxy 2>/dev/null || true docker run -d --rm --name ydb-proxy --network host \ -v "$PWD/Proxy/squid.conf:/etc/squid/squid.conf:ro" \ -v "$PWD/Proxy/passwd:/etc/squid/passwd:ro" \ ubuntu/squid:latest for i in $(seq 1 30); do (echo > /dev/tcp/127.0.0.1/3128) >/dev/null 2>&1 && break sleep 1 done if [ "$COVERAGE_ENABLED" = "true" ]; then dotnet test \ --logger "console;verbosity=normal" \ --logger "GitHubActions;report-warnings=false" \ --settings "$COVERAGE_SETTINGS" \ --collect:"XPlat Code Coverage" \ --results-directory "$COVERAGE_DIR/ado" else dotnet test --logger "console;verbosity=normal" --logger "GitHubActions;report-warnings=false" fi - name: Run ADO.NET Specification Tests working-directory: ./src/Ydb.Sdk/test/Ydb.Sdk.Ado.Specification.Tests run: | if [ "$COVERAGE_ENABLED" = "true" ]; then dotnet test \ --logger "console;verbosity=normal" \ --logger "GitHubActions;report-warnings=false" \ --settings "$COVERAGE_SETTINGS" \ --collect:"XPlat Code Coverage" \ --results-directory "$COVERAGE_DIR/specification" else dotnet test --logger "console;verbosity=normal" --logger "GitHubActions;report-warnings=false" fi - name: Run ADO.NET Dapper Tests working-directory: ./src/Ydb.Sdk/test/Ydb.Sdk.Ado.Dapper.Tests run: | if [ "$COVERAGE_ENABLED" = "true" ]; then dotnet test \ --logger "console;verbosity=normal" \ --logger "GitHubActions;report-warnings=false" \ --settings "$COVERAGE_SETTINGS" \ --collect:"XPlat Code Coverage" \ --results-directory "$COVERAGE_DIR/dapper" else dotnet test --logger "console;verbosity=normal" --logger "GitHubActions;report-warnings=false" fi - name: Run Topic Tests working-directory: ./src/Ydb.Sdk/test/Ydb.Sdk.Topic.Tests run: | if [ "$COVERAGE_ENABLED" = "true" ]; then dotnet test \ --logger "console;verbosity=normal" \ --logger "GitHubActions;report-warnings=false" \ --settings "$COVERAGE_SETTINGS" \ --collect:"XPlat Code Coverage" \ --results-directory "$COVERAGE_DIR/topic" else dotnet test --logger "console;verbosity=normal" --logger "GitHubActions;report-warnings=false" fi - name: Upload Ydb.Sdk coverage to Codecov if: env.COVERAGE_ENABLED == 'true' uses: codecov/codecov-action@v7 with: token: ${{ secrets.CODECOV_TOKEN }} directory: artifacts/coverage/ydb-sdk flags: ydb-sdk name: ydb-sdk fail_ci_if_error: true efcore-tests: runs-on: ubuntu-22.04 strategy: matrix: ydb-version: [ 'latest' ] services: ydb: image: ydbplatform/local-ydb:${{ matrix.ydb-version }} ports: [ "2135:2135", "2136:2136", "8765:8765" ] env: YDB_LOCAL_SURVIVE_RESTART: true YDB_FEATURE_FLAGS: enable_parameterized_decimal,enable_table_datetime64 options: '--name ydb-local -h localhost' env: COVERAGE_ENABLED: ${{ github.event_name != 'schedule' && matrix.ydb-version == 'latest' }} COVERAGE_DIR: ${{ github.workspace }}/artifacts/coverage/efcore-ydb COVERAGE_SETTINGS: ${{ github.workspace }}/.github/coverlet.runsettings steps: - name: Checkout code uses: actions/checkout@v6 - name: Install Dotnet uses: actions/setup-dotnet@v5 with: dotnet-version: 10.0.x - name: Prepare coverage directory if: env.COVERAGE_ENABLED == 'true' run: mkdir -p "$COVERAGE_DIR" - name: Run EFCore.Ydb functional tests working-directory: ./src/EFCore.Ydb/test/EntityFrameworkCore.Ydb.FunctionalTests run: | docker cp ydb-local:/ydb_certs/ca.pem ~/ if [ "$COVERAGE_ENABLED" = "true" ]; then dotnet test -f net9.0 \ --logger "console;verbosity=normal" \ --logger "GitHubActions;report-warnings=false" \ --settings "$COVERAGE_SETTINGS" \ --collect:"XPlat Code Coverage" \ --results-directory "$COVERAGE_DIR/functional" else dotnet test -f net9.0 --logger "console;verbosity=normal" --logger "GitHubActions;report-warnings=false" fi - name: Upload EFCore.Ydb coverage to Codecov if: env.COVERAGE_ENABLED == 'true' uses: codecov/codecov-action@v7 with: token: ${{ secrets.CODECOV_TOKEN }} directory: artifacts/coverage/efcore-ydb flags: efcore-ydb name: efcore-ydb fail_ci_if_error: true run-examples: runs-on: ubuntu-22.04 strategy: matrix: ydb-version: [ 'latest', 'trunk' ] dotnet-version: [ 8.0.x, 9.0.x ] services: ydb: image: ydbplatform/local-ydb:${{ matrix.ydb-version }} ports: [ "2135:2135", "2136:2136", "8765:8765" ] env: YDB_LOCAL_SURVIVE_RESTART: true YDB_USE_IN_MEMORY_PDISKS: true options: '--name ydb-local -h localhost' steps: - name: Checkout code uses: actions/checkout@v6 - name: Install Dotnet uses: actions/setup-dotnet@v5 with: dotnet-version: ${{ matrix.dotnet-version }} - name: Run Ydb.Sdk.AdoNet.QuickStart run: | docker cp ydb-local:/ydb_certs/ca.pem ~/ cd ./examples/Ydb.Sdk.AdoNet.QuickStart dotnet run - name: Run Ydb.Sdk.AdoNet.Dapper.QuickStart run: | cd ./examples/Ydb.Sdk.AdoNet.Dapper.QuickStart dotnet run - name: Run Ydb.Sdk.Topic.QuickStart run: | cd ./examples/Ydb.Sdk.Topic.QuickStart dotnet run - name: Run EntityFrameworkCore.Ydb.QuickStart run: | cd ./examples/EntityFrameworkCore.Ydb.QuickStart dotnet tool install --global dotnet-ef --version 9.0.10 dotnet add package Microsoft.EntityFrameworkCore.Design --version 9.0.10 dotnet ef migrations add InitialCreate dotnet ef database update dotnet run - name: Run EntityFrameworkCore.Ydb.Samples/Database.Operations.Tutorial run: | cd ./examples/EntityFrameworkCore.Ydb.Samples/Database.Operations.Tutorial dotnet tool install --global dotnet-ef --version 9.0.10 dotnet add package Microsoft.EntityFrameworkCore.Design --version 9.0.10 dotnet ef migrations add InitialCreate dotnet ef database update dotnet run - name: Run Linq2db.QuickStart run: | cd ./examples/Linq2db.QuickStart dotnet run - name: Run Ydb.Sdk.AdoNet.WebProxy run: | docker cp ydb-local:/ydb_certs/ca.pem ~/ docker rm -f ydb-proxy 2>/dev/null || true docker run -d --rm --name ydb-proxy --network host \ -v "$PWD/examples/Ydb.Sdk.AdoNet.WebProxy/squid.conf:/etc/squid/squid.conf:ro" \ -v "$PWD/examples/Ydb.Sdk.AdoNet.WebProxy/passwd:/etc/squid/passwd:ro" \ ubuntu/squid:latest for i in $(seq 1 30); do (echo > /dev/tcp/127.0.0.1/3128) >/dev/null 2>&1 && break sleep 1 done cd ./examples/Ydb.Sdk.AdoNet.WebProxy dotnet run