AugustSecurityUpdate (#1338) #145
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: GithubActionsRelease | |
############################################################################################################ | |
# All of thes jobs runs commands only on a tag push in the Material-Blazor\Material.Blazor repository | |
# The publishing actions in forked repositories were handled by the WIP workflow | |
# An 'ExitWorkflow' action is sorely needed | |
############################################################################################################ | |
on: | |
push: | |
tags: | |
- 5.** # Push events to matching pattern, i.e. 5.0.0, 5.1.0 | |
env: | |
buildPlatform: 'Any CPU' | |
buildConfiguration: 'WebAssembly' | |
outputDocFx: ${{github.workspace}}\siteDocFx | |
outputMB: ${{github.workspace}}\siteMB | |
outputWeb: ${{github.workspace}}\siteWeb | |
projectMB: 'Material.Blazor/Material.Blazor.csproj' | |
projectTest: 'Material.Blazor.Test/Material.Blazor.Test.csproj' | |
projectWeb: 'Material.Blazor.Website.WebAssembly/Material.Blazor.Website.WebAssembly.csproj' | |
jobs: | |
############################################################################################################ | |
# This job is used to gate actions. By creating this job we don't need to proliferate the repo checks | |
############################################################################################################ | |
deployment-allowed-mb: | |
name: Running on Material-Blazor/Material.Blazor? | |
runs-on: ubuntu-latest | |
if: github.repository == 'Material-Blazor/Material.Blazor' | |
steps: | |
- name: Nothing to see here | |
run: echo "" | |
############################################################################################################ | |
# Run the test project. Should this fail, we don't perform any deploy action | |
############################################################################################################ | |
test: | |
name: Run .NET tests | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository under $GITHUB_WORKSPACE so the job can access it ποΈ | |
uses: actions/checkout@v4 | |
- name: Use dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: '8.x' | |
- name: Run the acceptance tests as the first build action and cancel out the rest if it fails | |
run: dotnet test ${{env.projectTest}} --configuration ${{env.buildConfiguration}} | |
############################################################################################################ | |
# Build documentation | |
############################################################################################################ | |
build-documentation: | |
name: Build documentation | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository under $GITHUB_WORKSPACE so the job can access it ποΈ | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: '8.x' | |
- name: Setup docfx | |
run: | | |
copy Material.Blazor\docfx.json.MD2 docfx.json | |
copy Material.Blazor\index.md.MD2 index.md | |
copy Material.Blazor\toc.yml.MD2 toc.yml | |
dotnet tool update -g docfx | |
- name: Build Material.Blazor | |
run: dotnet build ${{env.projectMB}} --configuration ${{env.buildConfiguration}} | |
- name: Create documentation π§ | |
run: docfx docfx.json | |
env: | |
DOCFX_SOURCE_BRANCH_NAME: main | |
- name: Upload Documentation Artifacts πΊ # The project is then uploaded as an artifact named 'siteDocFx'. | |
uses: actions/upload-artifact@v4 | |
with: | |
name: siteDocFx | |
path: siteDocFx | |
############################################################################################################ | |
# Build website | |
############################################################################################################ | |
build-website: | |
needs: [test] | |
name: Build website | |
runs-on: windows-latest | |
steps: | |
- name: Get the version | |
run: echo "version=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV | |
shell: bash | |
- name: Checkout repository under $GITHUB_WORKSPACE so the job can access it ποΈ | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: '8.x' | |
- name: Build and Publish Website π§ | |
run: > | |
dotnet publish ${{env.projectWeb}} | |
--configuration ${{env.buildConfiguration}} | |
--output ${{env.outputWeb}} | |
-p:Version=${{env.version}} | |
-p:BlazorEnableCompression=false | |
--framework net8.0 | |
- name: Upload Website Artifacts πΊ # The website is then uploaded as an artifact named 'siteWeb'. | |
uses: actions/upload-artifact@v4 | |
with: | |
name: siteWeb | |
path: siteWeb | |
############################################################################################################ | |
# deployghpages | |
############################################################################################################ | |
deployghpages: | |
name: Deploy to material.blazor | |
needs: [test, build-documentation, build-website, deployment-allowed-mb] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository under $GITHUB_WORKSPACE so the job can access it ποΈ | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: '8.x' | |
- name: Download Artifacts π» # The documentation is downloaded into the 'siteDocFx' folder. | |
uses: actions/download-artifact@v4 | |
with: | |
name: siteDocFx | |
path: siteDocFx | |
- name: Download Artifacts π» # The built project is downloaded into the 'siteWeb' folder. | |
uses: actions/download-artifact@v4 | |
with: | |
name: siteWeb | |
path: siteWeb | |
- name: Configure deployment directory structure κͺ | |
run: | | |
mv siteWeb/wwwroot deployroot | |
mv siteDocFx deployroot/docs | |
- name: Deploy π | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
token: ${{secrets.GH_PAT}} | |
branch: gh-pages | |
folder: 'deployroot' | |
############################################################################################################ | |
# Build package and deploy | |
############################################################################################################ | |
build-and-deploy-package: | |
name: Build nuget package & deploy to nuget | |
needs: [test, deployment-allowed-mb, deployghpages] | |
runs-on: windows-latest | |
steps: | |
- name: Get the version | |
run: echo "version=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV | |
shell: bash | |
- name: Checkout repository under $GITHUB_WORKSPACE so the job can access it ποΈ | |
uses: actions/checkout@v4 | |
- name: Setup dotnet | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: '8.x' | |
- name: Build Material.Blazor & Generate the NuGet package π§ | |
run: > | |
dotnet pack ${{env.projectMB}} | |
--configuration ${{env.buildConfiguration}} | |
--output ${{env.outputMB}} | |
-p:IncludeSymbols=true | |
-p:SymbolPackageFormat=snupkg | |
-p:Version=${{env.version}} | |
- name: Display MaterialBlazor package output κͺ | |
run: dir ${{env.outputMB}} | |
- name: Upload Package π | |
run: > | |
dotnet nuget push ${{env.outputMB}}\*.nupkg | |
-k ${{secrets.NUGET_API_KEY}} | |
-s https://api.nuget.org/v3/index.json | |
############################################################################################################ | |
# Create release | |
############################################################################################################ | |
create-release: | |
name: Create release | |
needs: [build-and-deploy-package] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get the version | |
run: echo "version=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV | |
shell: bash | |
- name: Create Release | |
uses: ncipollo/release-action@v1 | |
with: | |
name: Release ${{ env.version }} | |
tag: ${{ env.version }} |