Deploy to GitHub Pages #100
This file contains hidden or 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: Deploy to GitHub Pages | |
| on: | |
| #push: | |
| # branches: [ master ] | |
| workflow_run: | |
| workflows: ["Build BCL Package"] # Name of the workflow to trigger from. | |
| types: | |
| - completed | |
| permissions: | |
| contents: read | |
| actions: write | |
| # repository_dispatch: write | |
| env: | |
| BCL_Source: "https://nuget.pkg.github.com/phil-nhs/index.json" | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| PACKAGES_TOKEN: ${{ secrets.PACKAGES_TOKEN }} | |
| GITHUB_USERNAME: "Phil-NHS" | |
| IS_LOCAL_DEV: false | |
| USE_BCL_PROJECT_REFERENCE: false | |
| jobs: | |
| get-bcl-version: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| bcl-version: ${{ steps.get-bcl-version-from-git-packages.outputs.latest-bcl-version }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Get BCL Version from Git Packages | |
| id: get-bcl-version-from-git-packages | |
| run: | | |
| TOKEN="${{ secrets.GITHUB_TOKEN }}" | |
| OWNER="Phil-NHS" | |
| PACKAGE_NAME="TELBlazorComponentLibrary.GitPageBlazorWasm" | |
| BCL_PACKAGE_PATH="https://api.github.com/users/$OWNER/packages/nuget/$PACKAGE_NAME/versions" | |
| echo "API Path: $BCL_PACKAGE_PATH" | |
| VERSION_JSON=$(curl -s -H "Authorization: Bearer $TOKEN" -H "Accept: application/vnd.github+json" $BCL_PACKAGE_PATH) | |
| echo "$VERSION_JSON" | |
| LATEST_VERSION=$(echo "$VERSION_JSON" | jq -r '.[0].name') | |
| echo "latest-bcl-version=$LATEST_VERSION" >> $GITHUB_OUTPUT | |
| update-gh-page: | |
| needs: get-bcl-version | |
| runs-on: ubuntu-latest | |
| env: | |
| BCL_VERSION: ${{ needs.get-bcl-version.outputs.bcl-version }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v3 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - name: Replace local environment variable in nuget config because cant provide it as a parameter | |
| run: | | |
| sed -i "s|%LocalPackagePath%|$BCL_Source|g" nuget.config | |
| sed -i "s|%GITHUB_USERNAME%|$GITHUB_USERNAME|g" nuget.config | |
| sed -i "s|%GITHUB_PACKAGES_TOKEN%|$PACKAGES_TOKEN |g" nuget.config | |
| - name: debug values | |
| run: | | |
| echo "BCL_VERSION $BCL_VERSION" | |
| - name: Publish client using client release .csproj logic | |
| run: | | |
| dotnet publish ./TestHostPrerenderWASM/TestHostPrerenderWASM.Client/TestHostPrerenderWASM.Client.csproj --configuration Release \ | |
| /p:IsLocalDev=$IS_LOCAL_DEV \ | |
| /p:BCLVersion=$BCL_VERSION \ | |
| /p:UseBCLProjectReference=$USE_BCL_PROJECT_REFERENCE | |
| # qqqq nice to have would be only running if version number increase | |
| - name: Creating artifact of publish folder for test gh page workflow | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: gh-blazor-components-wiki-site-using-package-${{env.BCL_VERSION}} | |
| path: ./docs | |
| retention-days: 90 | |
| - name: Dispatch artifact ready event to test environment gh page | |
| run: | | |
| ARTIFACT_URL=$(gh api "repos/${{ github.repository }}/actions/artifacts?name=gh-blazor-components-wiki-site-using-package-${{ env.BCL_VERSION }}" | jq -r '.artifacts[0].archive_download_url') | |
| gh api "TechnologyEnhancedLearning/GitPageBlazorWASM-TestGHPage/dispatches" \ | |
| -f event_type=artifact_ready \ | |
| -f client_payload='{"artifact_url": "'"$ARTIFACT_URL"'"}' | |
| - name: Deploy to GitHub Pages | |
| uses: JamesIves/github-pages-deploy-action@v4 | |
| with: | |
| folder: docs # The folder the action should deploy | |
| branch: gh-pages # The branch the action should deploy to |