Skip to main content
GitHub Docs
Version:
Free, Pro, & Team
Select language: current language is English
Open Search Bar
Close Search Bar
Open Menu
Open Sidebar
GitHub Actions
/
Use cases and examples
Home
GitHub Actions
About GitHub Actions
Understand GitHub Actions
Continuous integration
Continuous deployment
Write workflows
Quickstart
About workflows
Use workflow templates
Choose when workflows run
Trigger a workflow
Use conditions to control job execution
Events that trigger workflows
Choose where workflows run
Choose the runner for a job
Run jobs in a container
Choose what workflows do
Use jobs in a workflow
Find and customize actions
GitHub CLI in workflows
Workflow commands
Add scripts
Permissions for `GITHUB_TOKEN`
Expressions
Variables
Contexts
Pass information
Set default values for jobs
Environments
Concurrency
Run job variations
Cache dependencies
Store artifacts
Workflow syntax
Manage workflows and deployments
Manage workflow runs
Manually run a workflow
Re-run workflows and jobs
Cancel a workflow
Disable & enable a workflow
Skip workflow runs
Delete a workflow run
Download workflow artifacts
Remove workflow artifacts
Approve public fork runs
Approve private fork runs
Manage deployments
Deployment history
Manage environments
Review deployments
Create custom protection rules
Configure custom protection rules
Share automations
Avoid duplication
Create actions
About custom actions
Create a Docker container action
Create a JavaScript action
Create a composite action
Metadata syntax
Dockerfile support
Set exit codes
Release and maintain actions
Publish in GitHub Marketplace
CLI setup action
Reuse workflows
Create workflow templates
Share from your private repository
Share with your organization
Monitor & troubleshoot
Monitor
About monitoring
Notifications for workflow runs
Visualization graph
Workflow run history
View job execution time
Add a status badge
Workflow run logs
Troubleshoot
About troubleshooting
Enable debug logging
Working with GitHub Support
GitHub-hosted runners
About GitHub-hosted runners
About GitHub-hosted runners
Monitor current jobs
Customize runners
Using larger runners
About larger runners
Manage larger runners
Control access to larger runners
Run jobs on larger runners
Private networking
About private networking
Using OIDC
Using WireGuard
Self-hosted runners
Manage self-hosted runners
About self-hosted runners
Add self-hosted runners
Autoscale self-hosted runners
Run a script before or after a job
Customize containers used by jobs
Run the runner app as a service
Proxy servers
Label runners
Use runners in a workflow
Manage access with runner groups
Monitor & troubleshoot
Remove self-hosted runners
Actions Runner Controller
About ARC
Quickstart
Authenticating
Deploying runner scale sets
Using ARC in a workflow
Troubleshoot
About Support for ARC
Security
Security guides
Security hardening
Using secrets
Automatic token authentication
GitHub security features
Artifact attestations
Artifact attestations
Attest with reusable workflows
Artifact attestations Kubernetes admission controller
Verifying attestations offline
Security harden deployments
Security hardening with OpenID Connect
OpenID Connect in AWS
OpenID Connect in Azure
OpenID Connect in Google Cloud Platform
OpenID Connect in HashiCorp Vault
OpenID Connect in JFrog
OpenID Connect in PyPI
OpenID Connect in cloud providers
OpenID Connect with reusable workflows
Use cases and examples
Create an example workflow
Build and test
Build & test Go
Build & test Java & Ant
Build & test Java & Gradle
Build & test Java with Maven
Build & test .NET
Build & test Node.js
Build & test PowerShell
Build & test Python
Build & test Ruby
Build & test Swift
Build & test Xamarin apps
Deployment
Deploy with GitHub Actions
Deploying Node.js to Azure App Service
Deploying Python to Azure App Service
Deploying Java to Azure App Service
Deploying .NET to Azure App Service
Deploying PHP to Azure App Service
Deploying Docker to Azure App Service
Deploying to Azure Static Web App
Deploying to Azure Kubernetes Service
Deploy to Amazon ECS
Deploy to Google Kubernetes Engine
Sign Xcode applications
Publish packages
Packaging with GitHub Actions
Publish Docker images
Publish Java packages with Gradle
Publish Java packages with Maven
Publish Node.js packages
Project management
Actions for project management
Add labels to issues
Close inactive issues
Add label to comment on issue
Schedule issue creation
Containerized services
About service containers
Create PostgreSQL service containers
Create Redis service containers
Migrate to GitHub Actions
Automated migrations
Automate migration with GitHub Actions Importer
Extending GitHub Actions Importer
Supplemental arguments and settings
Azure DevOps migration
Bamboo migration
Bitbucket Pipelines migration
CircleCI migration
GitLab migration
Jenkins migration
Travis CI migration
Manual migrations
Migrate from Azure Pipelines
Migrate from CircleCI
Migrate from GitLab CI/CD
Migrate from Jenkins
Migrate from Travis CI
Administer GitHub Actions
Workflow billing & limits
GitHub Actions metrics
Share workflows with your organization
Guides for GitHub Actions
GitHub Actions
/
Use cases and examples
Use cases and examples
Example workflows that demonstrate the features of GitHub Actions.
Creating an example workflow
Building and testing
Building and testing Go
Building and testing Java with Ant
Building and testing Java with Gradle
Building and testing Java with Maven
Building and testing .NET
Building and testing Node.js
Building and testing PowerShell
Building and testing Python
Building and testing Ruby
Building and testing Swift
Building and testing Xamarin applications
Deploying
Deploying with GitHub Actions
Deploying Node.js to Azure App Service
Deploying Python to Azure App Service
Deploying Java to Azure App Service
Deploying .NET to Azure App Service
Deploying PHP to Azure App Service
Deploying Docker to Azure App Service
Deploying to Azure Static Web App
Deploying to Azure Kubernetes Service
Deploying to Amazon Elastic Container Service
Deploying to Google Kubernetes Engine
Installing an Apple certificate on macOS runners for Xcode development
Publishing packages
About packaging with GitHub Actions
Publishing Docker images
Publishing Java packages with Gradle
Publishing Java packages with Maven
Publishing Node.js packages
Managing projects
Using GitHub Actions for project management
Adding labels to issues
Closing inactive issues
Commenting on an issue when a label is added
Scheduling issue creation
Using containerized services
About service containers
Creating PostgreSQL service containers
Creating Redis service containers