You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/actions/reference/environments.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,6 +71,9 @@ For more information on syntax to reference environments in workflows, see "[Wor
71
71
72
72
When 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](/developers/overview/viewing-deployment-history)."
73
73
74
+
### Using concurrency to serialize deployments in an environment
75
+
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, see "[Workflow syntax for GitHub Actions](/actions/reference/workflow-syntax-for-github-actions#concurrency)."
76
+
74
77
### Deleting an environment
75
78
76
79
{% data reusables.github-actions.permissions-statement-environment %}
Copy file name to clipboardExpand all lines: content/actions/reference/workflow-syntax-for-github-actions.md
+33-1Lines changed: 33 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -221,6 +221,18 @@ defaults:
221
221
working-directory: scripts
222
222
```
223
223
224
+
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@next" %}
225
+
### `concurrency`
226
+
227
+
{% data reusables.actions.concurrency-beta %}
228
+
229
+
Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. A concurrency group can be any string or expression. The expression can only use the `github` context. For more information about expressions, see "[Context and expression syntax for {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions)."
230
+
231
+
You can also specify `concurrency` at the job level. For more information, see [`jobs.<job_id>.concurrency`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idconcurrency).
232
+
233
+
{% data reusables.actions.actions-group-concurrency %}
234
+
235
+
{% endif %}
224
236
### `jobs`
225
237
226
238
A workflow run is made up of one or more jobs. Jobs run in parallel by default. To run jobs sequentially, you can define dependencies on other jobs using the `jobs.<job_id>.needs` keyword.
@@ -347,10 +359,11 @@ The environment that the job references. All environment protection rules must p
347
359
You can provide the environment as only the environment `name`, or as an environment object with the `name` and `url`. The URL maps to `environment_url` in the deployments API. For more information about the deployments API, see "[Deployments](/rest/reference/repos#deployments)."
348
360
349
361
##### Example using a single environment name
350
-
362
+
{% raw %}
351
363
```yaml
352
364
environment: staging_environment
353
365
```
366
+
{% endraw %}
354
367
355
368
##### Example using environment name and URL
356
369
@@ -372,6 +385,25 @@ environment:
372
385
{% endraw %}
373
386
{% endif %}
374
387
388
+
389
+
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@next" %}
390
+
### `jobs.<job_id>.concurrency`
391
+
392
+
{% data reusables.actions.concurrency-beta %}
393
+
394
+
{% note %}
395
+
396
+
**Note:** When concurrency is specified at the job level, order is not guaranteed for jobs or runs that queue within 5 minutes of each other.
397
+
398
+
{% endnote %}
399
+
400
+
Concurrency ensures that only a single job or workflow using the same concurrency group will run at a time. A concurrency group can be any string or expression. The expression can use any context except for the `secrets` context. For more information about expressions, see "[Context and expression syntax for {% data variables.product.prodname_actions %}](/actions/reference/context-and-expression-syntax-for-github-actions)."
401
+
402
+
You can also specify `concurrency` at the workflow level. For more information, see [`concurrency`](/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#concurrency).
403
+
404
+
{% data reusables.actions.actions-group-concurrency %}
405
+
406
+
{% endif %}
375
407
### `jobs.<job_id>.outputs`
376
408
377
409
A `map` of outputs for a job. Job outputs are available to all downstream jobs that depend on this job. For more information on defining job dependencies, see [`jobs.<job_id>.needs`](#jobsjob_idneeds).
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 previously pending job or workflow in the concurrency group will be canceled. To also cancel any currently running job or workflow in the same concurrency group, specify `cancel-in-progress: true`.
2
+
3
+
##### Examples using concurrency and the default behavior
4
+
5
+
{% raw %}
6
+
```yaml
7
+
concurrency: staging_environment
8
+
```
9
+
{% endraw %}
10
+
11
+
{% raw %}
12
+
```yaml
13
+
concurrency: ci-${{ github.ref }}
14
+
```
15
+
{% endraw %}
16
+
17
+
##### Example using concurrency to cancel any in-progress job or run
0 commit comments