Guides for GitHub Actions
These guides for GitHub Actions include specific use cases and examples to help you configure workflows.
GitHub Actions learning paths
Get started with GitHub Actions
Discover the possibilities of GitHub Actions by creating your first workflow.
Start learning path- OverviewUnderstanding GitHub Actions
- How-to guideUsing pre-written building blocks in your workflow
- OverviewAbout workflows
- How-to guideReusing workflows
- OverviewSecurity hardening for GitHub Actions
Host your own runners
You can create self-hosted runners to run workflows in a highly customizable environment.
Start learning path- OverviewAbout self-hosted runners
- TutorialAdding self-hosted runners
- TutorialConfiguring the self-hosted runner application as a service
- TutorialUsing a proxy server with self-hosted runners
- TutorialUsing labels with self-hosted runners
- TutorialUsing self-hosted runners in a workflow
- TutorialManaging access to self-hosted runners using groups
- TutorialMonitoring and troubleshooting self-hosted runners
Create an action
Do you have an idea for a new action? Have you built something custom for your project? Learn how to build shareable actions and publish them to GitHub Marketplace.
Start learning path- OverviewAbout custom actions
- TutorialCreating a Docker container action
- TutorialCreating a JavaScript action
- TutorialCreating a composite action
- ReferenceMetadata syntax for GitHub Actions
- ReferenceDockerfile support for GitHub Actions
- How-to guideSetting exit codes for actions
- How-to guidePublishing actions in GitHub Marketplace
Quickstart for GitHub Actions
QuickstartTry out the features of GitHub Actions in 5 minutes or less.
- Fundamentals
Understanding GitHub Actions
OverviewLearn the basics of GitHub Actions, including core concepts and essential terminology.
- Fundamentals
Creating a Docker container action
TutorialThis guide shows you the minimal steps required to build a Docker container action.
- Action development
- Docker
Using workflow templates
TutorialGitHub provides workflow templates for a variety of languages and tooling.
- Workflows
- CI
- CD
Building and testing Python
TutorialYou can create a continuous integration (CI) workflow to build and test your Python project.
- CI
- Python
Building and testing Node.js
TutorialYou can create a continuous integration (CI) workflow to build and test your Node.js project.
- CI
- Node
- JavaScript
About packaging with GitHub Actions
OverviewYou can set up workflows in GitHub Actions to produce packages and upload them to GitHub Packages or another package hosting provider.
- Packaging
Publishing Docker images
TutorialYou can publish Docker images to a registry, such as Docker Hub or GitHub Packages, as part of your continuous integration (CI) workflow.
- Packaging
- Publishing
- Docker
Caching dependencies to speed up workflows
TutorialTo make your workflows faster and more efficient, you can create and use caches for dependencies and other commonly reused files.
- Workflows
About continuous integration with GitHub Actions
OverviewYou can create custom continuous integration (CI) workflows directly in your GitHub repository with GitHub Actions.
- CI
Building and testing PowerShell
TutorialYou can create a continuous integration (CI) workflow to build and test your PowerShell project.
- CI
- PowerShell
Building and testing Ruby
TutorialYou can create a continuous integration (CI) workflow to build and test your Ruby project.
- CI
- Ruby
Building and testing Java with Maven
TutorialYou can create a continuous integration (CI) workflow in GitHub Actions to build and test your Java project with Maven.
- CI
- Java
- Maven
Building and testing Java with Gradle
TutorialYou can create a continuous integration (CI) workflow in GitHub Actions to build and test your Java project with Gradle.
- CI
- Java
- Gradle
Building and testing Java with Ant
TutorialYou can create a continuous integration (CI) workflow in GitHub Actions to build and test your Java project with Ant.
- CI
- Java
- Ant
Building and testing Swift
TutorialYou can create a continuous integration (CI) workflow to build and test your Swift project.
- CI
- Swift
Installing an Apple certificate on macOS runners for Xcode development
TutorialYou can sign Xcode apps within your continuous integration (CI) workflow by installing an Apple code signing certificate on GitHub Actions runners.
- CI
- Xcode
Building and testing Xamarin applications
TutorialYou can create a continuous integration (CI) workflow in GitHub Actions to build and test your Xamarin application.
- CI
- Xamarin
- Xamarin.iOS
- Xamarin.Android
- Android
- iOS
Publishing Node.js packages
TutorialYou can publish Node.js packages to a registry as part of your continuous integration (CI) workflow.
- Packaging
- Publishing
- Node
- JavaScript
Publishing Java packages with Maven
TutorialYou can use Maven to publish Java packages to a registry as part of your continuous integration (CI) workflow.
- Packaging
- Publishing
- Java
- Maven
Publishing Java packages with Gradle
TutorialYou can use Gradle to publish Java packages to a registry as part of your continuous integration (CI) workflow.
- Packaging
- Publishing
- Java
- Gradle
Storing and sharing data from a workflow
TutorialArtifacts allow you to share data between jobs in a workflow and store data once that workflow has completed.
- Workflows
About service containers
OverviewYou can use service containers to connect databases, web services, memory caches, and other tools to your workflow.
- Containers
- Docker
Creating Redis service containers
TutorialYou can use service containers to create a Redis client in your workflow. This guide shows examples of creating a Redis service for jobs that run in containers or directly on the runner machine.
- Containers
- Docker
Creating PostgreSQL service containers
TutorialYou can create a PostgreSQL service container to use in your workflow. This guide shows examples of creating a PostgreSQL service for jobs that run in containers or directly on the runner machine.
- Containers
- Docker
Deploying to Amazon Elastic Container Service
TutorialYou can deploy to Amazon Elastic Container Service (ECS) as part of your continuous deployment (CD) workflows.
- CD
- Containers
- Amazon ECS
Deploying to Google Kubernetes Engine
TutorialYou can deploy to Google Kubernetes Engine as part of your continuous deployment (CD) workflows.
- CD
- Containers
- Google Kubernetes Engine
About custom actions
OverviewActions are individual tasks that you can combine to create jobs and customize your workflow. You can create your own actions, or use and customize actions shared by the GitHub community.
- Action development
- Fundamentals
Creating a JavaScript action
TutorialIn this guide, you'll learn how to build a JavaScript action using the actions toolkit.
- Action development
- JavaScript
Creating a composite action
TutorialIn this guide, you'll learn how to build a composite action.
- Action development
Migrating from Azure Pipelines to GitHub Actions
TutorialGitHub Actions and Azure Pipelines share several configuration similarities, which makes migrating to GitHub Actions relatively straightforward.
- Azure Pipelines
- Migration
- CI
- CD
Migrating from CircleCI to GitHub Actions
TutorialGitHub Actions and CircleCI share several similarities in configuration, which makes migration to GitHub Actions relatively straightforward.
- CircleCI
- Migration
- CI
- CD
Migrating from GitLab CI/CD to GitHub Actions
TutorialGitHub Actions and GitLab CI/CD share several configuration similarities, which makes migrating to GitHub Actions relatively straightforward.
- GitLab
- Migration
- CI
- CD
Migrating from Jenkins to GitHub Actions
TutorialGitHub Actions and Jenkins share multiple similarities, which makes migration to GitHub Actions relatively straightforward.
- Jenkins
- Migration
- CI
- CD
Migrating from Travis CI to GitHub Actions
TutorialGitHub Actions and Travis CI share multiple similarities, which helps make it relatively straightforward to migrate to GitHub Actions.
- Travis CI
- Migration
- CI
- CD
Using GitHub Actions for project management
OverviewYou can use GitHub Actions to automate many of your project management tasks.
- Project management
Closing inactive issues
TutorialYou can use GitHub Actions to comment on or close issues that have been inactive for a certain period of time.
- Workflows
- Project management
Scheduling issue creation
TutorialYou can use GitHub Actions to create an issue on a regular basis for things like daily meetings or quarterly reviews.
- Workflows
- Project management
Adding labels to issues
TutorialYou can use GitHub Actions to automatically label issues.
- Workflows
- Project management
Commenting on an issue when a label is added
TutorialYou can use GitHub Actions to automatically comment on issues when a specific label is applied.
- Workflows
- Project management
Moving assigned issues on projects (classic)
TutorialYou can use GitHub Actions to automatically move an issue to a specific column on a project (classic) when the issue is assigned.
- Workflows
- Project management
Removing a label when a card is added to a project (classic) column
TutorialYou can use GitHub Actions to automatically remove a label when an issue or pull request is added to a specific column on a project (classic).
- Workflows
- Project management
Automating Dependabot with GitHub Actions
How-to guideExamples of how you can use GitHub Actions to automate common Dependabot related tasks.
- Actions
- Dependabot
- Version updates
- Security updates
- Repositories
- Dependencies
- Pull requests
Keeping your actions up to date with Dependabot
How-to guideYou can use Dependabot to keep the actions you use updated to the latest versions.
- Repositories
- Dependabot
- Version updates
- Actions
Deploying Docker to Azure App Service
TutorialYou can deploy a Docker container to Azure App Service as part of your continuous deployment (CD) workflows.
- CD
- Containers
- Docker
- Azure App Service
Deploying Java to Azure App Service
TutorialYou can deploy your Java project to Azure App Service as part of your continuous deployment (CD) workflows.
- CD
- Java
- Azure App Service
Deploying .NET to Azure App Service
TutorialYou can deploy your .NET project to Azure App Service as part of your continuous deployment (CD) workflows.
- CD
- Azure App Service
Deploying Node.js to Azure App Service
TutorialYou can deploy your Node.js project to Azure App Service as part of your continuous deployment (CD) workflows.
- CD
- Node
- JavaScript
- Azure App Service
Deploying PHP to Azure App Service
TutorialYou can deploy your PHP project to Azure App Service as part of your continuous deployment (CD) workflows.
- CD
- Azure App Service
Deploying Python to Azure App Service
TutorialYou can deploy your Python project to Azure App Service as part of your continuous deployment (CD) workflows.
- CD
- Python
- Azure App Service
Deploying to Azure Static Web App
TutorialYou can deploy your web app to Azure Static Web App as part of your continuous deployment (CD) workflows.
- CD
- Azure Static Web Apps
Deploying to Azure Kubernetes Service
TutorialYou can deploy your project to Azure Kubernetes Service (AKS) as part of your continuous deployment (CD) workflows.
- CD
- Azure Kubernetes Service