Skip to main content

Choosing what your workflow does

Workflows automate tasks in your software development lifecycle. Many tasks that you manually complete can be converted to a GitHub Actions workflow.

Using jobs in a workflow

Use workflows to run multiple jobs.

Using pre-written building blocks in your workflow

Actions are the building blocks that power your workflow. A workflow can contain actions created by the community, or you can create your own actions directly within your application's repository. This guide will show you how to discover, use, and customize actions.

Using GitHub CLI in workflows

You can script with GitHub CLI in GitHub Actions workflows.

Workflow commands for GitHub Actions

You can use workflow commands when running shell commands in a workflow or in an action's code.

Adding scripts to your workflow

You can use GitHub Actions workflows to run scripts.

Controlling permissions for GITHUB_TOKEN

Modify the default permissions granted to GITHUB_TOKEN.

Evaluate expressions in workflows and actions

You can evaluate expressions in workflows and actions.

Store information in variables

GitHub sets default variables for each GitHub Actions workflow run. You can also set custom variables for use in a single workflow or multiple workflows.

Accessing contextual information about workflow runs

You can access context information in workflows and actions.

Passing information between jobs

You can define outputs to pass information from one job to another.

Setting a default shell and working directory

Define the default settings that will apply to all jobs in the workflow, or all steps in a job.

Using environments for deployment

Specify a deployment environment in your workflow.

Running variations of jobs in a workflow

Create a matrix to define variations for each job.

Caching dependencies to speed up workflows

To make your workflows faster and more efficient, you can create and use caches for dependencies and other commonly reused files.

Storing and sharing data from a workflow

Artifacts allow you to share data between jobs in a workflow and store data once that workflow has completed.