Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Deployment patterns for .NET applications in GitHub Actions: GitHub Pages deployment for documentation sites
(Starlight/Docusaurus), container registry push patterns for GHCR and ACR, Azure Web Apps deployment via
azure/webapps-deploy, GitHub Environments with protection rules for staged rollouts, and rollback strategies for
failed deployments.
Version assumptions: GitHub Actions workflow syntax v2. azure/webapps-deploy@v3 for Azure App Service.
azure/login@v2 for Azure credential management. GitHub Environments for deployment gates.
Scope
Azure Web Apps deployment via azure/webapps-deploy
GitHub Pages deployment for documentation sites
Container registry push patterns for GHCR and ACR
GitHub Environments with protection rules
Rollback strategies for failed deployments
Out of scope
Container orchestration (Kubernetes, Docker Compose) -- see [skill:dotnet-container-deployment]
Container image authoring -- see [skill:dotnet-containers]
NuGet publishing and container builds -- see [skill:dotnet-gha-publish]
Starter CI templates -- see [skill:dotnet-add-ci]
Azure DevOps deployment -- see [skill:dotnet-ado-unique] and [skill:dotnet-ado-publish]
CLI release pipelines -- see [skill:dotnet-cli-release-pipeline]
Cross-references: [skill:dotnet-container-deployment] for container orchestration patterns, [skill:dotnet-containers]
for container image authoring, [skill:dotnet-add-ci] for starter CI templates, [skill:dotnet-cli-release-pipeline] for
CLI-specific release automation.
GitHub Pages Deployment for Documentation
Static Site Deployment (Starlight/Docusaurus)
Deploy a .NET project's documentation site to GitHub Pages:
Use deployment slots for zero-downtime deployments with pre-swap validation:
```yaml
-
name:
Deploy
to
staging
slot
uses:
azure/webapps-deploy@v3
with:
app-name:
myapp-production
slot-name:
staging
package:
./publish
-
name:
Validate
staging
slot
shell:
bash
run:
|
set -euo pipefail
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
https://myapp-production-staging.azurewebsites.net/healthz)
if [ "$HTTP_STATUS" != "200" ]; then
echo "Health check failed with status $HTTP_STATUS"
exit 1
fi
-
name:
Swap
slots
uses:
azure/cli@v2
with:
inlineScript:
|
az webapp deployment slot swap \
--resource-group myapp-rg \
--name myapp-production \
--slot staging \
--target-slot production
```text
### OIDC Authentication (Federated Credentials)
Use OIDC for passwordless Azure authentication instead of service principal secrets: