diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..1506b31 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,52 @@ +name: Build +on: + push: + branches: + - main + paths-ignore: + - example/** + - tests/** + - LICENSE.md + - README.md + pull_request: + branches: + - main + paths-ignore: + - example/** + - tests/** + - LICENSE.md + - README.md +jobs: + build: + name: Build + runs-on: windows-2022 + env: + CREATE_RELEASE: ${{ github.ref_name == 'main' && !contains(github.event.head_commit.message, 'dependabot[bot]') }} + CREATE_PRERELEASE: ${{ github.ref_name != 'main' }} + steps: + - name: checkout + uses: actions/checkout@v4.1.7 + with: + fetch-depth: 0 + - uses: actions/setup-dotnet@v4.0.1 + name: Install .NET 8 + with: + dotnet-version: '8.0.x' + dotnet-quality: 'ga' + - name: Restore .NET tools + run: dotnet tool restore + - name: Build + run: | + dotnet cake build.cake --bootstrap + dotnet cake build.cake --pack + - name: Upload NuGet Package + uses: actions/upload-artifact@v4.3.4 + with: + name: package + path: .\artifacts\packages + - name: Push NuGet package on main branch + if: ${{ env.CREATE_RELEASE == 'true' }} + run: dotnet nuget push .\artifacts\packages\ --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_ACTIONS }} + - name: Push NuGet package on feature branch + if: ${{ env.CREATE_PRERELEASE == 'true' }} + run: dotnet nuget push .\artifacts\packages\ --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_ACTIONS }}