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 @@
-
-
-
-
-
-
+
+
+
+
+
+