diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
new file mode 100644
index 0000000..6373321
--- /dev/null
+++ b/.github/workflows/build-and-test.yml
@@ -0,0 +1,34 @@
+name: Build and Test
+
+on:
+ push:
+ branches: [ main ]
+ pull_request:
+ branches: [ main ]
+
+defaults:
+ run:
+ shell: pwsh
+
+jobs:
+ build-and-test:
+ name: build-and-test on ${{matrix.os}}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [windows-latest]
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v2
+ with:
+ dotnet-version: |
+ 3.1.x
+ 6.x
+ - name: Restore dependencies
+ run: dotnet restore
+ - name: Build
+ run: dotnet build -p:ContinuousIntegrationBuild=True --no-restore --configuration Release
+ - name: Test
+ run: dotnet test --no-build --configuration Release --verbosity normal
\ No newline at end of file
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..345cc7c
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,76 @@
+name: Deploy
+
+on:
+ release:
+ types: [created]
+
+defaults:
+ run:
+ shell: pwsh
+
+env:
+ baseVersion: 1.0.0
+
+jobs:
+ build-and-test:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v2
+ with:
+ dotnet-version: |
+ 3.1.x
+ 6.x
+ - name: Restore dependencies
+ run: dotnet restore
+ - name: Set Version
+ run: |
+ echo "${{ github.ref }}"
+ if ("${{ github.ref }}".startsWith("refs/tags/v")) {
+ $tagVersion = "${{ github.ref }}".substring(11)
+ echo "buildVersion=$tagVersion.${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ echo "nugetVersion=$tagVersion" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ echo "preRelease=false" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ } else {
+ echo "buildVersion=${{ env.baseVersion }}.${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ echo "nugetVersion=${{ env.baseVersion }}-ci${{ github.run_number }}" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ }
+ - name: Build
+ run: dotnet build -p:Version=${{ env.buildVersion }} -p:ContinuousIntegrationBuild=True --no-restore --configuration Release
+ - name: Test
+ run: dotnet test --no-build --configuration Release --verbosity normal
+ - name: Pack
+ if: startsWith(github.ref, 'refs/tags/v')
+ run: dotnet pack -p:PackageVersion=${{ env.nugetVersion }} --configuration Release -o ${{env.DOTNET_ROOT}}/IntelliTect.ListingManagerPack --no-build
+ - name: Upload Artifacts
+ if: startsWith(github.ref, 'refs/tags/v')
+ uses: actions/upload-artifact@v2
+ with:
+ name: NuGet
+ path: ${{env.DOTNET_ROOT}}/IntelliTect.ListingManagerPack
+
+ deploy:
+ if: startsWith(github.ref, 'refs/tags/v')
+ runs-on: ubuntu-latest
+ needs: build-and-test
+ environment:
+ name: 'Production'
+ url: 'https://www.nuget.org/packages/IntelliTect.EssentialCSharp.ListingManager'
+ steps:
+ - name: Download artifact from build job
+ uses: actions/download-artifact@v2
+ with:
+ name: NuGet
+ - name: Push NuGet
+ run: |
+ $tagVersion = "${{ github.ref }}".substring(11)
+ echo "::set-output name=TAG_VERSION::$tagVersion"
+ dotnet nuget push IntelliTect.EssentialCSharp.ListingManager.$tagVersion.nupkg --source https://api.nuget.org/v3/index.json -k ${{ secrets.NUGET_API_KEY }} --skip-duplicate
+ id: tag-version
+ - name: Upload nupkg to Releases
+ uses: softprops/action-gh-release@v1
+ with:
+ fail_on_unmatched_files: true
+ generate_release_notes: true
+ files: IntelliTect.EssentialCSharp.ListingManager.${{ steps.tag-version.outputs.TAG_VERSION }}.nupkg
\ No newline at end of file
diff --git a/ListingManager/ListingManager.csproj b/ListingManager/ListingManager.csproj
index 2c0192b..fee200b 100644
--- a/ListingManager/ListingManager.csproj
+++ b/ListingManager/ListingManager.csproj
@@ -5,6 +5,9 @@
netcoreapp3.1
true
ListingManager
+ git
+ true
+ IntelliTect, EssentialCSharp, ListingManager
IntelliTect
0.1.5
IntelliTect.EssentialCSharp.ListingManager
@@ -13,10 +16,35 @@
10
enable
CS1591
-
+ MIT
+ https://github.com/IntelliTect/ListingManager
+ https://github.com/IntelliTect/ListingManager
+
+ true
+
+ true
+
+ true
+ snupkg
+
+
+ true
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
\ No newline at end of file