Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions content/actions/concepts/workflows-and-actions/concurrency.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,4 @@ By default, {% data variables.product.prodname_actions %} allows multiple jobs w

{% data variables.product.prodname_actions %} also allows you to disable concurrent execution. This can be useful for controlling your account’s or organization’s resources in situations where running multiple workflows or jobs at the same time could cause conflicts or consume more Actions minutes and storage than expected. For example, you might want to prevent multiple deployments from running at the same time, or cancel linters checking outdated commits.

{% ifversion actions-nga %}

When you limit concurrency, by default only one run can be pending in a concurrency group—any additional pending runs cancel the previous one. If you need runs to execute sequentially without being canceled, you can opt in to queuing, which allows multiple runs to wait in line and execute in order.

{% endif %}

To start controlling concurrency in your own workflows with the `concurrency` keyword, see [AUTOTITLE](/actions/how-tos/writing-workflows/choosing-when-your-workflow-runs/control-the-concurrency-of-workflows-and-jobs).
2 changes: 1 addition & 1 deletion content/actions/get-started/continuous-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ You can set up a {% data variables.product.prodname_actions %} workflow to deplo

You can configure your CD workflow to run when an event occurs (for example, when new code is pushed to the default branch of your repository), on a set schedule, manually, or when an external event occurs using the repository dispatch webhook. For more information about when your workflow can run, see [AUTOTITLE](/actions/using-workflows/events-that-trigger-workflows).

{% data variables.product.prodname_actions %} provides features that give you more control over deployments. For example, you can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, or limit access to secrets. You can use concurrency to limit your CD pipeline to a maximum of one in-progress deployment{% ifversion actions-nga %}{% else %} and one pending deployment{% endif %}. For more information about these features, see [AUTOTITLE](/actions/deployment/about-deployments/deploying-with-github-actions) and [AUTOTITLE](/actions/deployment/targeting-different-environments/managing-environments-for-deployment).
{% data variables.product.prodname_actions %} provides features that give you more control over deployments. For example, you can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, or limit access to secrets. You can use concurrency to limit your CD pipeline to a maximum of one in-progress deployment and one pending deployment. For more information about these features, see [AUTOTITLE](/actions/deployment/about-deployments/deploying-with-github-actions) and [AUTOTITLE](/actions/deployment/targeting-different-environments/managing-environments-for-deployment).

## Workflow templates and third-party actions

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ You can configure environments with protection rules and secrets. When a workflo

## Using concurrency

Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. You can use concurrency so that an environment has a maximum of one deployment in progress{% ifversion actions-nga %}{% else %} and one deployment pending{% endif %} at a time. For more information about concurrency, see [AUTOTITLE](/actions/using-jobs/using-concurrency).
Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. You can use concurrency so that an environment has a maximum of one deployment in progress and one deployment pending at a time. For more information about concurrency, see [AUTOTITLE](/actions/using-jobs/using-concurrency).

{% ifversion actions-environments-without-deployments %}

Expand Down
4 changes: 0 additions & 4 deletions content/actions/reference/limits.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,8 @@ These limits are subject to change.
| Workflow execution limit | Gate approval time | 30 days | A workflow may wait for up to [30 days on environment approvals](/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment#wait-timer). | {% octicon "x" aria-label="No" %} |
| Workflow execution limit | Job Matrix | 256 jobs / workflow run | A job matrix can generate a maximum of 256 jobs per workflow run. This limit applies to both {% data variables.product.github %}-hosted and self-hosted runners. | {% octicon "x" aria-label="No" %} |
| Workflow execution limit | Re-run | 50 re-runs | A workflow run can be re-run a maximum of 50 times. This limit includes both full re-runs and re-runs of a subset of jobs. | {% octicon "check" aria-label="Yes" %} Support ticket |
| Checks | Check runs per check suite | 50,000 check runs / check suite | A check suite can have a maximum of 50,000 check runs. This limit applies to check runs created through the Checks API and by {% data variables.product.prodname_actions %} workflow runs. When a check suite reaches this limit, additional check runs cannot be created for that check suite. | {% octicon "check" aria-label="Yes" %} Support ticket |
| Workflows queuing | Workflow trigger event rate limit | 1500 events / 10 seconds / repository | Each repository is limited to events triggering a workflow run. | {% octicon "check" aria-label="Yes" %} Support ticket |
| Workflows queuing | Workflow run queued | 500 workflow runs / 10 seconds | When the limit is reached, the workflow runs that were supposed to be triggered by the webhook events will be blocked and will not be queued. Reusable workflows are viewed as a single entity. For example, a run with 30 reusable workflows counts as 1 in this instance. | {% octicon "x" aria-label="No" %} |
| {% ifversion actions-nga %} |
| Workflows queuing | Concurrency group queue | 100 workflow runs / concurrency group | When using `queue: max` in the `concurrency` section, up to 100 jobs or workflow runs can be queued per concurrency group. Runs beyond this limit will be rejected. | {% octicon "x" aria-label="No" %} |
| {% endif %} |
| Self-hosted | Runner registrations | 1500 runners / 5 minutes / repository/org/enterprise | Runners can be registered per repository/organization/enterprise. | {% octicon "check" aria-label="Yes" %} Support ticket |
| Self-hosted | Runners per runner group | 10,000 runners | Runners registered at the same time per runner group. | {% octicon "x" aria-label="No" %} |
| Self-hosted | Job execution time | 5 days | Each job in a workflow can run for up to 5 days of execution time. If a job reaches this limit, the job is terminated and fails. | {% octicon "x" aria-label="No" %} |
Expand Down
11 changes: 1 addition & 10 deletions content/copilot/concepts/agents/about-third-party-agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,7 @@ Within your monthly usage allowance for {% data variables.product.prodname_actio

For more information, see [AUTOTITLE](/billing/managing-billing-for-your-products/managing-billing-for-github-copilot/about-billing-for-github-copilot).

## Partner agents

When enabling partner agents in your user or organization {% data variables.copilot.copilot_cloud_agent %} settings, a {% data variables.product.prodname_github_app %} will be installed for the corresponding agent.

* **Allow Claude coding agent** will install `anthropic code agent`
* **Allow Codex coding agent** will install `openai code agent`

Actions taken by these {% data variables.product.prodname_github_apps %} will be visible in your audit log, but the {% data variables.product.prodname_github_apps %} themselves will not be visible in your account's list of {% data variables.product.prodname_github_app %} installations.

## Next steps

* To start managing agents, see [AUTOTITLE](/copilot/how-tos/use-copilot-agents/manage-agents).
* To learn how AI models are hosted and served, see [AUTOTITLE](/copilot/reference/ai-models/model-hosting).
* To learn how AI models are hosted and served, see [AUTOTITLE](/copilot/reference/ai-models/model-hosting).
8 changes: 4 additions & 4 deletions content/copilot/concepts/auto-model-selection.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,6 @@ Experience less rate limiting and reduce the mental load of choosing a model by

> [!NOTE] Soon {% data variables.copilot.copilot_auto_model_selection %} will choose the best model for you based on your task.

### Multiplier discounts

{% data reusables.copilot.auto-model-multiplier-discount %} See [AUTOTITLE](/copilot/concepts/billing/copilot-requests#model-multipliers).

## {% data variables.copilot.copilot_auto_model_selection_short_cap_a %} in {% data variables.copilot.copilot_chat_short %}

{% data variables.copilot.copilot_auto_model_selection_short_cap_a %} is generally available in the following IDEs:
Expand All @@ -48,6 +44,10 @@ When you select **Auto** in {% data variables.copilot.copilot_chat_short %} in I

{% data reusables.copilot.change-the-ai-model %}

### Multiplier discounts

{% data reusables.copilot.auto-model-multiplier-discount %} See [AUTOTITLE](/copilot/concepts/billing/copilot-requests#model-multipliers).

### Enabling access during {% data variables.release-phases.public_preview %}

During the {% data variables.release-phases.public_preview %}, if you're using a {% data variables.copilot.copilot_business_short %} or {% data variables.copilot.copilot_enterprise_short %} plan, the organization or enterprise that provides your plan must have the **Editor preview features** policy enabled. See [AUTOTITLE](/enterprise-cloud@latest/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization#enabling-copilot-features-in-your-organization) or [AUTOTITLE](/enterprise-cloud@latest/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-policies-and-features-for-copilot-in-your-enterprise#copilot-in-githubcom).
Expand Down
2 changes: 1 addition & 1 deletion content/copilot/concepts/billing/copilot-requests.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ The available models vary depending on your {% data variables.product.prodname_c
> [!NOTE]
> * The models included with {% data variables.product.prodname_copilot_short %} plans are subject to change.
> * Model multipliers and costs are subject to change.
> * Discounted multipliers are available for using {% data variables.copilot.copilot_auto_model_selection %}. See [AUTOTITLE](/copilot/concepts/auto-model-selection).
> * Discounted multipliers are available for using {% data variables.copilot.copilot_auto_model_selection %} in {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}. See [AUTOTITLE](/copilot/concepts/auto-model-selection).
> * {% data reusables.copilot.auto-model-multiplier-discount %} For example, Sonnet 4 would be billed at .9x rather than 1x when using {% data variables.copilot.copilot_auto_model_selection_short %}.
> * Discounted multipliers are not available for {% data variables.copilot.copilot_free_short %}.

Expand Down
6 changes: 1 addition & 5 deletions content/rest/actions/concurrency-groups.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,4 @@ category:
- Automate CI/CD workflows
---

## About concurrency groups in {% data variables.product.prodname_actions %}

You can use the REST API to read the state of {% data variables.product.prodname_actions %} concurrency groups, which ensure that only a single job or workflow using the same group will run at a time while additional runs are pending or canceled depending on configuration. For more information, see [AUTOTITLE](/actions/using-jobs/using-concurrency).

<!-- Content after this section is automatically generated -->
<!-- Content after this section is automatically generated -->
48 changes: 1 addition & 47 deletions data/reusables/actions/actions-group-concurrency.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,10 @@
{% ifversion actions-nga %}

This means that there can be at most one running job or workflow in a concurrency group at any time. When a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be `pending`. By default, any existing `pending` job or workflow in the same concurrency group will be canceled and the new queued job or workflow will take its place.

{% else %}

This means that there can be at most one running and one pending job in a concurrency group at any time. When a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be `pending`. Any existing `pending` job or workflow in the same concurrency group, if it exists, will be canceled and the new queued job or workflow will take its place.

{% endif %}

To also cancel any currently running job or workflow in the same concurrency group, specify `cancel-in-progress: true`. To conditionally cancel currently running jobs or workflows in the same concurrency group, you can specify `cancel-in-progress` as an expression with any of the allowed expression contexts.

{% ifversion actions-nga %}

To allow more than one `pending` job or workflow run to wait in the same concurrency group, use the optional `queue` property. The `queue` property accepts the following values:

* `single` (default): At most one job or workflow run can be `pending` in the concurrency group. When a new job or workflow run is queued, any existing `pending` job or workflow run in the same group is canceled and replaced.
* `max`: Up to 100 jobs or workflow runs can be `pending` in the concurrency group. When the queue is full, any additional jobs or workflow runs are canceled.

The combination of `queue: max` and `cancel-in-progress: true` is not allowed and will result in a workflow validation error.

{% endif %}

> [!NOTE]
> * The concurrency group name is case insensitive. For example, `prod` and `Prod` will be treated as the same concurrency group.
> * Jobs or workflow runs in the same concurrency group are processed in first-in-first-out (FIFO) order according to the time each one started waiting on the concurrency group, not the time each workflow was dispatched. Since the actual start time of a job or run may vary, ordering is not guaranteed.
> * Ordering is not guaranteed for jobs or workflow runs using concurrency groups. Jobs or workflow runs in the same concurrency group are handled in an arbitrary order.

### Example: Using concurrency and the default behavior

Expand Down Expand Up @@ -100,33 +81,6 @@ concurrency:

{% endraw %}

{% ifversion actions-nga %}

### Example: Queueing multiple pending runs

By default, only one job or workflow run can be `pending` in a concurrency group at a time. To allow multiple runs to queue instead of being canceled, set `queue: max`. With `queue: max`, up to 100 jobs or workflow runs can wait in the concurrency group; once the queue is full, any additional runs are canceled.

For example, the following workflow queues deployments to the `production` environment, processing them one at a time in order based on when each run started waiting on the concurrency group:

{% raw %}

```yaml
on:
push:
branches:
- main

concurrency:
group: production-deploy
queue: max
```

{% endraw %}

Note that `queue: max` cannot be combined with `cancel-in-progress: true`, because the two options describe conflicting behaviors for handling in-progress runs.

{% endif %}

### Example: Using concurrency to cancel any in-progress job or run

To use concurrency to cancel any in-progress job or run in {% data variables.product.prodname_actions %}, you can use the `concurrency` key with the `cancel-in-progress` option set to `true`:
Expand Down
2 changes: 1 addition & 1 deletion data/reusables/copilot/auto-model-multiplier-discount.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
If you are on a paid {% data variables.product.prodname_copilot_short %} plan and use {% data variables.copilot.copilot_auto_model_selection_short %} in {% data variables.copilot.copilot_chat_short %}, {% data variables.copilot.copilot_cli_short %}, or {% data variables.copilot.copilot_cloud_agent %}, models qualify for a 10% multiplier discount.
If you are on a paid {% data variables.product.prodname_copilot_short %} plan and use {% data variables.copilot.copilot_auto_model_selection_short %}, models qualify for a 10% multiplier discount.
13 changes: 9 additions & 4 deletions data/tables/copilot/auto-model-selection.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@

- name: GPT-5 mini
cloud_agent: false
chat: true
chat: false
cli: true

- name: GPT-5.3-Codex
cloud_agent: true
cloud_agent: false
chat: true
cli: true

- name: GPT-5.4
cloud_agent: true
cloud_agent: false
chat: true
cli: true

Expand All @@ -49,8 +49,13 @@
chat: true
cli: true

- name: Claude Sonnet 4.6
- name: Claude Sonnet 4.5
cloud_agent: true
chat: false
cli: false

- name: Claude Sonnet 4.6
cloud_agent: false
chat: true
cli: true

Expand Down
Loading