Skip to content

Release upgrade to .NET 8 #51

Release upgrade to .NET 8

Release upgrade to .NET 8 #51

Workflow file for this run

name: Create NuGet and GitHub Release
on:
pull_request:
types:
- closed
workflow_dispatch:
permissions:
contents: write
id-token: write
### TODO: Replace instances of './.github/workflows/' w/ `auth0/dx-sdk-actions/workflows` and append `@latest` after the common `dx-sdk-actions` repo is made public.
### TODO: Also remove `get-prerelease`, `get-release-notes`, `get-version`, `release-create`, and `tag-exists` actions from this repo's .github/actions folder once the repo is public.
jobs:
build:
name: Build
runs-on: windows-latest
environment: 'release'
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.event.pull_request.merged && startsWith(github.event.pull_request.head.ref, 'release/'))
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
- name: Install .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.0.404'
- name: Install .NET Android and iOS workload
run: dotnet workload install android ios maui --version 8.0.404
- 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
- uses: actions/upload-artifact@v4
with:
name: build
path: './src'
retention-days: 1
compression-level: 9
rl-scanner-android:
needs: build
uses: ./.github/workflows/rl-secure.yml
with:
nuspec-file: "nuget/Auth0.OidcClient.Android.nuspec"
artifact-name: "Auth0.OidcClient.Android.tgz"
project-path: "src/Auth0.OidcClient.Android"
secrets:
RLSECURE_LICENSE: ${{ secrets.RLSECURE_LICENSE }}
RLSECURE_SITE_KEY: ${{ secrets.RLSECURE_SITE_KEY }}
SIGNAL_HANDLER_TOKEN: ${{ secrets.SIGNAL_HANDLER_TOKEN }}
PRODSEC_TOOLS_USER: ${{ secrets.PRODSEC_TOOLS_USER }}
PRODSEC_TOOLS_TOKEN: ${{ secrets.PRODSEC_TOOLS_TOKEN }}
PRODSEC_TOOLS_ARN: ${{ secrets.PRODSEC_TOOLS_ARN }}
rl-scanner-androidx:
needs: build
uses: ./.github/workflows/rl-secure.yml
with:
nuspec-file: "nuget/Auth0.OidcClient.AndroidX.nuspec"
artifact-name: "Auth0.OidcClient.AndroidX.tgz"
project-path: "src/Auth0.OidcClient.AndroidX"
secrets:
RLSECURE_LICENSE: ${{ secrets.RLSECURE_LICENSE }}
RLSECURE_SITE_KEY: ${{ secrets.RLSECURE_SITE_KEY }}
SIGNAL_HANDLER_TOKEN: ${{ secrets.SIGNAL_HANDLER_TOKEN }}
PRODSEC_TOOLS_USER: ${{ secrets.PRODSEC_TOOLS_USER }}
PRODSEC_TOOLS_TOKEN: ${{ secrets.PRODSEC_TOOLS_TOKEN }}
PRODSEC_TOOLS_ARN: ${{ secrets.PRODSEC_TOOLS_ARN }}
rl-scanner-iOS:
needs: build
uses: ./.github/workflows/rl-secure.yml
with:
nuspec-file: "nuget/Auth0.OidcClient.iOS.nuspec"
artifact-name: "Auth0.OidcClient.iOS.tgz"
project-path: "src/Auth0.OidcClient.iOS"
secrets:
RLSECURE_LICENSE: ${{ secrets.RLSECURE_LICENSE }}
RLSECURE_SITE_KEY: ${{ secrets.RLSECURE_SITE_KEY }}
SIGNAL_HANDLER_TOKEN: ${{ secrets.SIGNAL_HANDLER_TOKEN }}
PRODSEC_TOOLS_USER: ${{ secrets.PRODSEC_TOOLS_USER }}
PRODSEC_TOOLS_TOKEN: ${{ secrets.PRODSEC_TOOLS_TOKEN }}
PRODSEC_TOOLS_ARN: ${{ secrets.PRODSEC_TOOLS_ARN }}
rl-scanner-core:
needs: build
uses: ./.github/workflows/rl-secure.yml
with:
nuspec-file: "nuget/Auth0.OidcClient.Core.nuspec"
artifact-name: "Auth0.OidcClient.Core.tgz"
project-path: "src/Auth0.OidcClient.Core"
secrets:
RLSECURE_LICENSE: ${{ secrets.RLSECURE_LICENSE }}
RLSECURE_SITE_KEY: ${{ secrets.RLSECURE_SITE_KEY }}
SIGNAL_HANDLER_TOKEN: ${{ secrets.SIGNAL_HANDLER_TOKEN }}
PRODSEC_TOOLS_USER: ${{ secrets.PRODSEC_TOOLS_USER }}
PRODSEC_TOOLS_TOKEN: ${{ secrets.PRODSEC_TOOLS_TOKEN }}
PRODSEC_TOOLS_ARN: ${{ secrets.PRODSEC_TOOLS_ARN }}
rl-scanner-wpf:
needs: build
uses: ./.github/workflows/rl-secure.yml
with:
nuspec-file: "nuget/Auth0.OidcClient.WPF.nuspec"
artifact-name: "Auth0.OidcClient.WPF.tgz"
project-path: "src/Auth0.OidcClient.WPF"
secrets:
RLSECURE_LICENSE: ${{ secrets.RLSECURE_LICENSE }}
RLSECURE_SITE_KEY: ${{ secrets.RLSECURE_SITE_KEY }}
SIGNAL_HANDLER_TOKEN: ${{ secrets.SIGNAL_HANDLER_TOKEN }}
PRODSEC_TOOLS_USER: ${{ secrets.PRODSEC_TOOLS_USER }}
PRODSEC_TOOLS_TOKEN: ${{ secrets.PRODSEC_TOOLS_TOKEN }}
PRODSEC_TOOLS_ARN: ${{ secrets.PRODSEC_TOOLS_ARN }}
rl-scanner-winforms:
needs: build
uses: ./.github/workflows/rl-secure.yml
with:
nuspec-file: "nuget/Auth0.OidcClient.WinForms.nuspec"
artifact-name: "Auth0.OidcClient.WinForms.tgz"
project-path: "src/Auth0.OidcClient.WinForms"
secrets:
RLSECURE_LICENSE: ${{ secrets.RLSECURE_LICENSE }}
RLSECURE_SITE_KEY: ${{ secrets.RLSECURE_SITE_KEY }}
SIGNAL_HANDLER_TOKEN: ${{ secrets.SIGNAL_HANDLER_TOKEN }}
PRODSEC_TOOLS_USER: ${{ secrets.PRODSEC_TOOLS_USER }}
PRODSEC_TOOLS_TOKEN: ${{ secrets.PRODSEC_TOOLS_TOKEN }}
PRODSEC_TOOLS_ARN: ${{ secrets.PRODSEC_TOOLS_ARN }}
rl-scanner-uwp:
needs: build
uses: ./.github/workflows/rl-secure.yml
with:
nuspec-file: "nuget/Auth0.OidcClient.UWP.nuspec"
artifact-name: "Auth0.OidcClient.UWP.tgz"
project-path: "src/Auth0.OidcClient.UWP"
secrets:
RLSECURE_LICENSE: ${{ secrets.RLSECURE_LICENSE }}
RLSECURE_SITE_KEY: ${{ secrets.RLSECURE_SITE_KEY }}
SIGNAL_HANDLER_TOKEN: ${{ secrets.SIGNAL_HANDLER_TOKEN }}
PRODSEC_TOOLS_USER: ${{ secrets.PRODSEC_TOOLS_USER }}
PRODSEC_TOOLS_TOKEN: ${{ secrets.PRODSEC_TOOLS_TOKEN }}
PRODSEC_TOOLS_ARN: ${{ secrets.PRODSEC_TOOLS_ARN }}
rl-scanner-maui:
needs: build
uses: ./.github/workflows/rl-secure.yml
with:
nuspec-file: "nuget/Auth0.OidcClient.MAUI.nuspec"
artifact-name: "Auth0.OidcClient.MAUI.tgz"
project-path: "src/Auth0.OidcClient.MAUI"
secrets:
RLSECURE_LICENSE: ${{ secrets.RLSECURE_LICENSE }}
RLSECURE_SITE_KEY: ${{ secrets.RLSECURE_SITE_KEY }}
SIGNAL_HANDLER_TOKEN: ${{ secrets.SIGNAL_HANDLER_TOKEN }}
PRODSEC_TOOLS_USER: ${{ secrets.PRODSEC_TOOLS_USER }}
PRODSEC_TOOLS_TOKEN: ${{ secrets.PRODSEC_TOOLS_TOKEN }}
PRODSEC_TOOLS_ARN: ${{ secrets.PRODSEC_TOOLS_ARN }}
android:
name: Android
uses: ./.github/workflows/nuget-release.yml
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
with:
tag-prefix: 'android-'
project-path: "src/Auth0.OidcClient.Android"
nuspec-file: "nuget/Auth0.OidcClient.Android.nuspec"
secrets:
nuget-token: ${{ secrets.NUGET_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
androidx:
name: AndroidX
uses: ./.github/workflows/nuget-release.yml
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
with:
tag-prefix: 'androidx-'
project-path: "src/Auth0.OidcClient.AndroidX"
nuspec-file: "nuget/Auth0.OidcClient.AndroidX.nuspec"
secrets:
nuget-token: ${{ secrets.NUGET_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
ios:
name: iOS
uses: ./.github/workflows/nuget-release.yml
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
with:
tag-prefix: 'ios-'
project-path: "src/Auth0.OidcClient.iOS"
nuspec-file: "nuget/Auth0.OidcClient.iOS.nuspec"
secrets:
nuget-token: ${{ secrets.NUGET_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
core:
name: Core
uses: ./.github/workflows/nuget-release.yml
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
with:
tag-prefix: 'core-'
project-path: "src/Auth0.OidcClient.Core"
nuspec-file: "nuget/Auth0.OidcClient.Core.nuspec"
secrets:
nuget-token: ${{ secrets.NUGET_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
wpf:
name: WPF
uses: ./.github/workflows/nuget-release.yml
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
with:
tag-prefix: 'wpf-'
project-path: "src/Auth0.OidcClient.WPF"
nuspec-file: "nuget/Auth0.OidcClient.WPF.nuspec"
secrets:
nuget-token: ${{ secrets.NUGET_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
winforms:
name: WinForms
uses: ./.github/workflows/nuget-release.yml
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
with:
tag-prefix: 'winforms-'
project-path: "src/Auth0.OidcClient.WinForms"
nuspec-file: "nuget/Auth0.OidcClient.WinForms.nuspec"
secrets:
nuget-token: ${{ secrets.NUGET_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
uwp:
name: UWP
uses: ./.github/workflows/nuget-release.yml
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
with:
tag-prefix: 'uwp-'
project-path: "src/Auth0.OidcClient.UWP"
nuspec-file: "nuget/Auth0.OidcClient.UWP.nuspec"
secrets:
nuget-token: ${{ secrets.NUGET_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
maui:
name: MAUI
uses: ./.github/workflows/nuget-release.yml
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
with:
tag-prefix: 'maui-'
project-path: "src/Auth0.OidcClient.MAUI"
nuspec-file: "nuget/Auth0.OidcClient.MAUI.nuspec"
secrets:
nuget-token: ${{ secrets.NUGET_API_KEY }}
github-token: ${{ secrets.GITHUB_TOKEN }}
generate-docs:
name: Generate API docs
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.event.pull_request.merged && startsWith(github.event.pull_request.head.ref, 'release/'))
runs-on: windows-latest
environment: release
needs: [rl-scanner-android,rl-scanner-androidx,rl-scanner-iOS,rl-scanner-core,rl-scanner-wpf,rl-scanner-winforms,rl-scanner-uwp,rl-scanner-maui]
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/download-artifact@v4
with:
path: './src'
name: build
- name: Install DocFX
run: dotnet tool install -g docfx
- name: Build docs
run: ./tools/build-docs.sh
shell: bash
- uses: actions/upload-pages-artifact@v2
with:
path: docs
deploy-docs:
needs: generate-docs
name: Deploy API docs
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && github.event.pull_request.merged && startsWith(github.event.pull_request.head.ref, 'release/'))
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3 # or specific "vX.X.X" version tag for this action