From 498de901e3d62f79198beca3df62f086fdb225cd Mon Sep 17 00:00:00 2001 From: Frederik Prijck Date: Wed, 25 Oct 2023 12:21:20 +0200 Subject: [PATCH] Build using GitHub Actions (#296) --- .github/workflows/build.yml | 40 +++++++++++++++++ .github/workflows/publish.yml | 82 +++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..752a380c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,40 @@ +name: Build + +on: + pull_request: {} + + push: + branches: ["master"] + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - name: Install .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: 6.x + + - name: Install .NET Android and iOS workload + run: dotnet workload install android ios + + - name: Setup NuGet + uses: nuget/setup-nuget@v1 + + - name: Restore NuGet + run: nuget restore Auth0.OidcClient.All.sln + + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1.1 + + - name: Build + run: msbuild Auth0.OidcClient.All.sln -t:rebuild -verbosity:diag -property:Configuration=Release + + - name: Tests + uses: microsoft/vstest-action@v1.0.0 + with: + testAssembly: '**\bin\**\*UnitTests.dll' + searchFolder: '.\' + runInParallel: false diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..6b55731c --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,82 @@ +name: Publish Release + +on: + workflow_dispatch: + inputs: + branch: + description: The branch to release from + required: true + default: master + +permissions: + contents: read + +jobs: + publish-nuget: + needs: configure + + name: Publish to NPM + runs-on: windows-latest + environment: 'release' + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.inputs.branch }} + + - name: Install .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: 6.x + + - name: Install .NET Android and iOS workload + run: dotnet workload install android ios + + - name: Setup NuGet + uses: nuget/setup-nuget@v1 + + - name: Restore NuGet + run: nuget restore Auth0.OidcClient.All.sln + + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1.1 + + - name: Build + run: msbuild Auth0.OidcClient.All.sln -t:rebuild -verbosity:diag -property:Configuration=Release + + - name: NuGet pack + run: | + nuget pack nuget/Auth0.OidcClient.Android.nuspec + nuget pack nuget/Auth0.OidcClient.AndroidX.nuspec + nuget pack nuget/Auth0.OidcClient.Core.nuspec + nuget pack nuget/Auth0.OidcClient.iOS.nuspec + nuget pack nuget/Auth0.OidcClient.UWP.nuspec + nuget pack nuget/Auth0.OidcClient.WinForms.nuspec + nuget pack nuget/Auth0.OidcClient.WPF.nuspec + + - name: Install DocFX + run: dotnet tool install -g docfx + + - name: Build docs + run: ./tools/build-docs.sh + shell: bash + + - uses: actions/upload-artifact@v3 + with: + name: docs + path: docs + + - uses: actions/upload-artifact@v3 + with: + name: drop + path: '**/*.nupkg' + + - name: Publish release to NuGet + run: nuget push **\*.nupkg -ApiKey ${{ env.NUGET_API_KEY }} -Source https://api.nuget.org/v3/index.json -SkipDuplicate -NonInteractive + env: + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} + + +