Bug fixes and RTL implementation improvement (#1276) #133
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 | |
############################################################################################################ | |
# NUGET_API_KEY is valid through 9/11/2022 | |
############################################################################################################ | |
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' | |
materialBlazorMD3LibModule: 'Material.Blazor.MD3/wwwroot/Material.Blazor.MD3.lib.module.js' | |
outputDocFxMD3: ${{github.workspace}}\siteDocFxMD3 | |
outputMBMD3: ${{github.workspace}}\siteMBMD3 | |
outputWebMD3: ${{github.workspace}}\siteWebMD3 | |
projectMBMD3: 'Material.Blazor.MD3/Material.Blazor.MD3.csproj' | |
projectWebMD3: 'Material.Blazor.Website.WebAssembly.MD3/Material.Blazor.Website.WebAssembly.MD3.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@v3 | |
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@v3 | |
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@v3 | |
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@v3 | |
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, deployghpages-MD3] | |
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@v3 | |
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 }} | |
############################################################################################################ | |
############################################################################################################ | |
############################################################################################################ | |
# MD3 jobs | |
############################################################################################################ | |
############################################################################################################ | |
############################################################################################################ | |
############################################################################################################ | |
# Build documentation | |
############################################################################################################ | |
build-documentation-MD3: | |
name: Build documentation MD3 | |
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@v3 | |
with: | |
dotnet-version: '8.x' | |
- name: Setup docfx | |
run: | | |
copy Material.Blazor.MD3\docfx.json.MD3 docfx.json | |
copy Material.Blazor.MD3\index.md.MD3 index.md | |
copy Material.Blazor.MD3\toc.yml.MD3 toc.yml | |
dotnet tool update -g docfx | |
- name: Build Material.Blazor | |
run: dotnet build ${{env.projectMBMD3}} --configuration ${{env.buildConfiguration}} | |
- name: Create documentation π§ | |
run: docfx docfx.json | |
env: | |
DOCFX_SOURCE_BRANCH_NAME: main | |
- name: Upload Documentation Artifacts πΊ | |
uses: actions/upload-artifact@v4 | |
with: | |
name: siteDocFxMD3 | |
path: siteDocFxMD3 | |
############################################################################################################ | |
# Build website MD3 | |
############################################################################################################ | |
build-website-MD3: | |
needs: [test] | |
name: Build website MD3 | |
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@v3 | |
with: | |
dotnet-version: '8.x' | |
- name: Build and Publish Website π§ | |
run: > | |
dotnet publish ${{env.projectWebMD3}} | |
--configuration ${{env.buildConfiguration}} | |
--output ${{env.outputWebMD3}} | |
-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: siteWebMD3 | |
path: siteWebMD3 | |
############################################################################################################ | |
# deployghpages MD3 | |
############################################################################################################ | |
deployghpages-MD3: | |
name: Deploy to material.blazor.MD3.com | |
needs: [test, build-documentation, build-website-MD3, 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@v3 | |
with: | |
dotnet-version: '8.x' | |
- name: Download Artifacts π» # The built project is downloaded into the 'siteWeb' folder. | |
uses: actions/download-artifact@v4 | |
with: | |
name: siteDocFxMD3 | |
path: siteDocFxMD3 | |
- name: Download Artifacts π» # The built project is downloaded into the 'siteWeb' folder. | |
uses: actions/download-artifact@v4 | |
with: | |
name: siteWebMD3 | |
path: siteWebMD3 | |
- name: Configure deployment directory structure κͺ | |
run: | | |
mv siteWebMD3/wwwroot deployroot; mv siteDocFxMD3 deployroot/docs | |
# this step rewrites the base href when we are in the main repo and about to deploy to the Material.Blazor.Current repo | |
- name: Base Href Rewrite π | |
uses: SteveSandersonMS/ghaction-rewrite-base-href@v1 | |
with: | |
html_path: 'deployroot/index.html' | |
base_href: '/Material.Blazor.MD3/' | |
- name: Deploy π | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
token: ${{secrets.GH_PAT}} | |
branch: gh-pages | |
folder: 'deployroot' | |
repository-name: Material-Blazor/Material.Blazor.MD3 | |
############################################################################################################ | |
# Build package and deploy MD3 | |
############################################################################################################ | |
build-and-deploy-package-MD3: | |
name: Build nuget package & deploy to nuget | |
needs: [test, deployment-allowed-mb, deployghpages, deployghpages-MD3] | |
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@v3 | |
with: | |
dotnet-version: '8.x' | |
- name: Build Material.Blazor.MD3 & Generate the NuGet package π§ | |
run: > | |
dotnet pack ${{env.projectMBMD3}} | |
--configuration ${{env.buildConfiguration}} | |
--output ${{env.outputMBMD3}} | |
-p:IncludeSymbols=true | |
-p:SymbolPackageFormat=snupkg | |
-p:Version=${{env.version}} | |
- name: Display MaterialBlazor package output κͺ | |
run: dir ${{env.outputMBMD3}} | |
- name: Upload Package π | |
run: > | |
dotnet nuget push ${{env.outputMBMD3}}\*.nupkg | |
-k ${{secrets.NUGET_API_KEY}} | |
-s https://api.nuget.org/v3/index.json | |
- name: Compute the SHA256 hash of material.blazor.md3.lib.module.js | |
shell: pwsh | |
run: | | |
.\computesha.ps1 ${{env.materialBlazorMD3LibModule}} | |