name: Deploy to GitHub Pages on: push: branches: [main] workflow_dispatch: permissions: contents: read pages: write id-token: write concurrency: group: 'pages' cancel-in-progress: true jobs: build-and-deploy: runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Prepare deployment run: | mkdir -p ./_site cp -r docs/* ./_site/ mkdir -p ./_site/workshop cp -r workshop/* ./_site/workshop/ for language in dotnet nodejs python go java rust; do mkdir -p "./_site/start-intro/$language" cp "start-intro/$language/LIVE_DEMO.md" "./_site/start-intro/$language/" done for locale in localizations/*/; do locale="${locale%/}" mkdir -p "./_site/$locale/workshop" cp "$locale"/workshop/*.md "./_site/$locale/workshop/" for language in dotnet nodejs python go java rust; do mkdir -p "./_site/$locale/start-intro/$language" cp "$locale/start-intro/$language/LIVE_DEMO.md" "./_site/$locale/start-intro/$language/" done done touch ./_site/.nojekyll - uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 - uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 with: path: _site - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1 - name: Validate deployed pages env: WORKSHOP_SITE_URL: ${{ vars.WORKSHOP_SITE_URL || steps.deployment.outputs.page_url }} run: python3 scripts/validate_deployment.py