{"meta":{"title":"Deployment environments","intro":"You can create and deploy to different environments.","product":"GitHub Actions","breadcrumbs":[{"href":"/en/actions","title":"GitHub Actions"},{"href":"/en/actions/concepts","title":"Concepts"},{"href":"/en/actions/concepts/workflows-and-actions","title":"Workflows and actions"},{"href":"/en/actions/concepts/workflows-and-actions/deployment-environments","title":"Deployment environments"}],"documentType":"article"},"body":"# Deployment environments\n\nYou can create and deploy to different environments.\n\nEnvironments are used to describe a general deployment target like `production`, `staging`, or `development`. When a GitHub Actions workflow deploys to an environment, the environment is displayed on the main page of the repository. You can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, gate deployments with custom deployment protection rules, or limit access to secrets. For more information about creating environments, see [Managing environments for deployment](/en/actions/how-tos/deploy/configure-and-manage-deployments/manage-environments).\n\nEach job in a workflow can reference a single environment. Any protection rules configured for the environment must pass before a job referencing the environment is sent to a runner. The job can access the environment's secrets only after the job is sent to a runner.\n\nWhen a workflow references an environment, the environment will appear in the repository's deployments. For more information about viewing current and previous deployments, see [Viewing deployment history](/en/actions/how-tos/deploy/configure-and-manage-deployments/view-deployment-history)."}