diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..2935f4d --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,56 @@ +name: Build and Deploy + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + DOTNET_VERSION: '8.0.x' + CONFIGURATION: Release + +jobs: + build: + runs-on: windows-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Required for Source Link + + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + + - name: Restore dependencies + run: dotnet restore + + - name: Build + run: dotnet build --configuration ${{ env.CONFIGURATION }} --no-restore + + - name: Test + run: dotnet test --configuration ${{ env.CONFIGURATION }} --no-build --verbosity normal --filter "TestCategory=AppVeyor" + + - name: Pack NuGet packages + run: dotnet pack --configuration ${{ env.CONFIGURATION }} --no-build --output ./artifacts + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: nuget-packages + path: ./artifacts/*.nupkg + + - name: Upload symbol packages + uses: actions/upload-artifact@v4 + with: + name: symbol-packages + path: ./artifacts/*.snupkg + + - name: Publish to NuGet + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + run: dotnet nuget push ./artifacts/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate + env: + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 273f5da..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: 0.{build} -image: Visual Studio 2019 -pull_requests: - do_not_increment_build_number: true -branches: - only: - - master -before_build: -- nuget restore -- dotnet restore -configuration: - - Release -build: - verbosity: minimal - # publish_nuget: true - publish_nuget_symbols: true - use_snupkg_format: true -test: - categories: - only: - - AppVeyor -deploy: -- provider: NuGet - api_key: - secure: z+VCuAl52RiKf1Ie2p6ivQloYTH12q7H0G6fEl/c4FepMD75/vI7oRnbMISdgWEm - on: - branch: master -artifacts: -- path: src\AdysTech.CredentialManager\bin\Debug - name: CredentialManager -- path: src\AdysTech.CredentialManager\bin\**\*nupkg