Skip to content

Repair deploy ghpages md3 (#1059) #114

Repair deploy ghpages md3 (#1059)

Repair deploy ghpages md3 (#1059) #114

ο»Ώ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/2021
############################################################################################################
on:
push:
tags:
- 4.** # Push events to matching pattern, i.e. 4.0.0, 4.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'
outputDocFxMD3: ${{github.workspace}}\siteDocFxMD3
outputMBMD3: ${{github.workspace}}\siteMBMD3
outputWebMD3: ${{github.workspace}}\siteWebMD3
projectMBMD3: 'Material.Blazor/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@v3
- name: Use dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
dotnet-quality: 'preview'
- 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@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
dotnet-quality: 'preview'
- name: Get proper toc in place
run: copy tocMD2.yml toc.yml
- name: Create documentation πŸ”§
run: .\docfx\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@v3
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@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
dotnet-quality: 'preview'
- name: Install WASM tools
run: dotnet workload restore
- name: Build and Publish Website πŸ”§
run: dotnet publish ${{env.projectWeb}} --configuration ${{env.buildConfiguration}} --output ${{env.outputWeb}} -p:Version=${{env.version}} -p:BlazorEnableCompression=false
- name: Upload Website Artifacts πŸ”Ί # The website is then uploaded as an artifact named 'siteWeb'.
uses: actions/upload-artifact@v3
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@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
dotnet-quality: 'preview'
- name: Download Artifacts πŸ”» # The documentation is downloaded into the 'siteDocFx' folder.
uses: actions/download-artifact@v3
with:
name: siteDocFx
path: siteDocFx
- name: Download Artifacts πŸ”» # The built project is downloaded into the 'siteWeb' folder.
uses: actions/download-artifact@v3
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@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
dotnet-quality: 'preview'
- 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@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
dotnet-quality: 'preview'
- name: Get proper toc in place
run: copy tocMD3.yml toc.yml
- name: Create documentation πŸ”§
run: .\docfx\docfx docfxMD3.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@v3
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@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
dotnet-quality: 'preview'
- name: Build and Publish Website πŸ”§
run: dotnet publish ${{env.projectWebMD3}} --configuration ${{env.buildConfiguration}} --output ${{env.outputWebMD3}} -p:Version=${{env.version}} -p:BlazorEnableCompression=false
- name: Upload Website Artifacts πŸ”Ί # The website is then uploaded as an artifact named 'siteWeb'.
uses: actions/upload-artifact@v3
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@v3
- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.x'
dotnet-quality: 'preview'
- name: Download Artifacts πŸ”» # The built project is downloaded into the 'siteWeb' folder.
uses: actions/download-artifact@v3
with:
name: siteDocFxMD3
path: siteDocFxMD3
- name: Download Artifacts πŸ”» # The built project is downloaded into the 'siteWeb' folder.
uses: actions/download-artifact@v3
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