From 0bea00418d18b4638e4309e4939ad98dad26a1d3 Mon Sep 17 00:00:00 2001 From: Anatoly Popov Date: Mon, 20 Nov 2023 19:05:03 +0300 Subject: [PATCH] feat: update MsgPack.Light & CI Signed-off-by: Anatoly Popov --- .azure/build.yml | 11 ---- .azure/test.yml | 19 ------ .azure/tests.yml | 25 -------- .github/workflows/ci.yml | 61 +++++++++++++++++++ .vscode/tasks.json | 37 +++++++---- Directory.Build.props | 8 +++ Directory.Packages.props | 21 +++++++ docker-compose.yml | 12 ++-- .../progaudi.tarantool.benchmark.csproj | 6 +- .../progaudi.tarantool.csproj | 21 ++++--- tarantool/docker/Dockerfile.1.7 | 6 ++ tarantool/docker/Dockerfile.1.8 | 6 ++ .../progaudi.tarantool.tests.csproj | 16 ++--- 13 files changed, 158 insertions(+), 91 deletions(-) delete mode 100644 .azure/build.yml delete mode 100644 .azure/test.yml delete mode 100644 .azure/tests.yml create mode 100644 .github/workflows/ci.yml create mode 100644 Directory.Build.props create mode 100644 Directory.Packages.props create mode 100644 tarantool/docker/Dockerfile.1.7 create mode 100644 tarantool/docker/Dockerfile.1.8 diff --git a/.azure/build.yml b/.azure/build.yml deleted file mode 100644 index 6779f719..00000000 --- a/.azure/build.yml +++ /dev/null @@ -1,11 +0,0 @@ -parameters: - netcore1Global: true - -steps: -- task: DotNetCoreCLI@2 - displayName: dotnet build - inputs: - command: build - projects: progaudi.tarantool.sln - arguments: -c Release - verbosityRestore: minimal diff --git a/.azure/test.yml b/.azure/test.yml deleted file mode 100644 index 3c527e3c..00000000 --- a/.azure/test.yml +++ /dev/null @@ -1,19 +0,0 @@ -parameters: - path: '' - framework: '' - frameworkGlobal: true - -steps: -- ${{ if eq(parameters.frameworkGlobal, 'false') }}: - - script: ${{ format('/home/vsts/.dotnet/dotnet test -f {0} --no-build --logger trx -c Release {1}', parameters.framework, parameters.path) }} - displayName: ${{ format('dotnet test -f {0}', parameters.framework) }} - -- ${{ if eq(parameters.frameworkGlobal, 'true') }}: - - task: DotNetCoreCLI@2 - displayName: ${{ format('dotnet test -f {0}', parameters.framework) }} - inputs: - command: test - nobuild: true - projects: ${{ parameters.path }} - arguments: ${{ format(' -f {0} -c Release', parameters.framework) }} - publishTestResults: true diff --git a/.azure/tests.yml b/.azure/tests.yml deleted file mode 100644 index 058959b9..00000000 --- a/.azure/tests.yml +++ /dev/null @@ -1,25 +0,0 @@ -parameters: - netcore1Global: true - -steps: -- task: Bash@3 - inputs: - targetType: inline - script: docker-compose up -d - -- template: test.yml - parameters: - path: tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj - framework: netcoreapp1.0 - frameworkGlobal: ${{ parameters.netcore1Global }} - -- template: test.yml - parameters: - path: tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj - framework: netcoreapp1.1 - frameworkGlobal: ${{ parameters.netcore1Global }} - -- template: test.yml - parameters: - path: tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj - framework: netcoreapp2.0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..b95eaafd --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,61 @@ +name: Build, Test & Publish nuget + +on: + push: + branches: [ "master" ] + tags: ['*'] + pull_request: + types: [ opened, synchronize ] + branches: [ "master" ] + +env: + NuGetDirectory: ${{ github.workspace }}/nuget + +jobs: + build_test_and_pack: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 # Fetches entire history, so we can analyze commits since last tag + - name: Setup .net core + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 3.1.x + 6.0.x + + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build -c Release --no-restore + + - name: Docker build + run: docker-compose build + + - name: Docker pull + run: docker-compose pull + + - name: Docker-compose run + run: docker-compose up -d + + - name: Tests + run: dotnet test -c Release --no-build --verbosity normal + + - name: Pack nuget + if: success() + run: | + set +x + NUGET_VERSION=$(git describe --tags --abbrev=1 | sed 's/-/./') + dotnet pack -c Release --no-build -v minimal -o ${{ env.NuGetDirectory }} -p:PackageVersion=$NUGET_VERSION + - name: Publish NuGet package + if: success() && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) + run: dotnet nuget push "${{ env.NuGetDirectory }}/*.nupkg" --api-key "${{ secrets.NUGET_PUSH }}" --source https://api.nuget.org/v3/index.json --skip-duplicate + - name: Upload files to a GitHub release + if: success() && github.ref_type == 'tag' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository) + uses: xresloader/upload-to-github-release@v1.4.2 + with: + file: ${{ env.NuGetDirectory }}/*.nupkg + tags: true + overwrite: true + tag_name: ${{ github.ref_name }} diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 357de099..490debce 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,24 +1,37 @@ { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format - "version": "0.1.0", + "version": "2.0.0", "command": "dotnet", - "isShellCommand": true, "args": [], "tasks": [ { - "taskName": "build", - "args": [ "progaudi.tarantool.sln"], - "isBuildCommand": true, - "showOutput": "silent", - "problemMatcher": "$msCompile" + "label": "build", + "type": "shell", + "command": "dotnet", + "args": [ + "build", + "progaudi.tarantool.sln" + ], + "problemMatcher": "$msCompile", + "group": { + "_id": "build", + "isDefault": false + } }, { - "taskName": "test", - "args": [ "tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj"], - "isTestCommand": true, - "showOutput": "silent", - "problemMatcher": "$msCompile" + "label": "test", + "type": "shell", + "command": "dotnet", + "args": [ + "test", + "tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj" + ], + "problemMatcher": "$msCompile", + "group": { + "_id": "test", + "isDefault": false + } } ] } diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 00000000..0a3d7e3f --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,8 @@ + + + true + true + false + NETSDK1138 + + diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..cc3db9f5 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,21 @@ + + + true + + + + + + + + + + + + + + + + + + diff --git a/docker-compose.yml b/docker-compose.yml index 9f227fde..5aa18efb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,10 +2,10 @@ version: '3.2' services: tarantool_1_7: - image: progaudi/tarantool:1.7.5-184-g5be3a82be # same version as tarantool in homebrew on mac os + build: + context: tarantool + dockerfile: docker/Dockerfile.1.7 command: tarantool /usr/local/share/tarantool/tarantool.docker.lua - volumes: - - $PWD/tarantool:/usr/local/share/tarantool ports: - "3301:3301" environment: @@ -14,10 +14,10 @@ services: TARANTOOL_SLAB_ALLOC_ARENA: 0.1 tarantool_1_8: - image: progaudi/tarantool:1.8.2-288-g99128d7d3 + build: + context: tarantool + dockerfile: docker/Dockerfile.1.8 command: tarantool /usr/local/share/tarantool/tarantool.docker.lua - volumes: - - $PWD/tarantool:/usr/local/share/tarantool ports: - "3302:3301" environment: diff --git a/src/progaudi.tarantool.benchmark/progaudi.tarantool.benchmark.csproj b/src/progaudi.tarantool.benchmark/progaudi.tarantool.benchmark.csproj index a487e470..def4c961 100644 --- a/src/progaudi.tarantool.benchmark/progaudi.tarantool.benchmark.csproj +++ b/src/progaudi.tarantool.benchmark/progaudi.tarantool.benchmark.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp1.1;netcoreapp2.0 + netcoreapp3.1;net6.0 true progaudi.tarantool.benchmark @@ -12,8 +12,8 @@ - - + + diff --git a/src/progaudi.tarantool/progaudi.tarantool.csproj b/src/progaudi.tarantool/progaudi.tarantool.csproj index a568dcb2..6f3a7633 100644 --- a/src/progaudi.tarantool/progaudi.tarantool.csproj +++ b/src/progaudi.tarantool/progaudi.tarantool.csproj @@ -1,9 +1,9 @@  - net46;netstandard1.4;netstandard2.0 + net462;netstandard2.0;net60 - netstandard1.4;netstandard2.0 + netstandard2.0;net60 0 @@ -16,11 +16,13 @@ progaudi.tarantool ProGaudi.Tarantool.Client progaudi.tarantool - Copyright © 2016-2018 + Copyright © 2016-2023 tarantool;csharp https://github.com/progaudi/progaudi.tarantool - https://raw.githubusercontent.com/progaudi/progaudi.tarantool/master/LICENSE + + README.md + LICENSE true true @@ -28,9 +30,9 @@ - - - + + + @@ -83,4 +85,9 @@ $(DefineConstants);PROGAUDI_NETCORE + + + + + \ No newline at end of file diff --git a/tarantool/docker/Dockerfile.1.7 b/tarantool/docker/Dockerfile.1.7 new file mode 100644 index 00000000..bf57f9ec --- /dev/null +++ b/tarantool/docker/Dockerfile.1.7 @@ -0,0 +1,6 @@ +FROM progaudi/tarantool:1.7.5-184-g5be3a82be + +RUN set -x \ + && mkdir -p /usr/local/share/tarantool + +COPY --chown=tarantool:tarantool *.lua /usr/local/share/tarantool/ diff --git a/tarantool/docker/Dockerfile.1.8 b/tarantool/docker/Dockerfile.1.8 new file mode 100644 index 00000000..42ae951e --- /dev/null +++ b/tarantool/docker/Dockerfile.1.8 @@ -0,0 +1,6 @@ +FROM progaudi/tarantool:1.8.2-288-g99128d7d3 + +RUN set -x \ + && mkdir -p /usr/local/share/tarantool + +COPY --chown=tarantool:tarantool *.lua /usr/local/share/tarantool/ diff --git a/tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj b/tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj index 3c325553..6e8889a8 100644 --- a/tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj +++ b/tests/progaudi.tarantool.tests/progaudi.tarantool.tests.csproj @@ -2,13 +2,13 @@ progaudi.tarantool Class Library tests Exe - netcoreapp1.0;netcoreapp1.1;netcoreapp2.0 + netcoreapp3.1;net6.0 true progaudi.tarantool.tests ProGaudi.Tarantool.Client.Tests progaudi.tarantool - Copyright © 2016-2017 + Copyright © 2016-2023 tarantool;csharp;tests https://github.com/progaudi/progaudi.tarantool @@ -22,12 +22,12 @@ - - - - - - + + + + + +