1
0
mirror of synced 2025-12-31 06:02:42 -05:00
Files
docs/data/reusables/github-actions/using-context-or-environment-variables.md
Martin Lopes b1a2184fb1 Explain when to use default variables in a context and an environment (#16650)
* Added "Determining which type of environment variables to use"

* Moved into reusable, added to various locations

* Added some small edits

* Some rewording

* Revised example

* Removed reusable reference from one location

* Update context-and-expression-syntax-for-github-actions.md

* Fixed merge conflict

* Update environment-variables.md

* Apply suggestions from code review

Co-authored-by: Sarah Edwards <skedwards88@github.com>

* Update using-context-or-environment-variables.md

* Clarified locations of context variables

* Clarified the distinction between contexts and default environment variables

* Moved section up

* Clarified that _most_ contexts can be used anywhere

Co-authored-by: Sarah Edwards <skedwards88@github.com>
2021-01-14 14:58:31 +10:00

22 lines
2.0 KiB
Markdown

{% data variables.product.prodname_actions %} includes a collection of variables called _contexts_ and a similar collection of variables called _default environment variables_. These variables are intended for use at different points in the workflow:
- **Default environment variables:** These variables exist only on the runner that is executing your job. For more information, see "[Default environment variables](/actions/reference/environment-variables#default-environment-variables)."
- **Contexts:** You can use most contexts at any point in your workflow, including when _default environment variables_ would be unavailable. For example, you can use contexts with expressions to perform initial processing before the job is routed to a runner for execution; this allows you to use a context with the conditional `if` keyword to determine whether a step should run. Once the job is running, you can also retrieve context variables from the runner that is executing the job, such as `runner.os`. For more information, see "[Contexts](/actions/reference/context-and-expression-syntax-for-github-actions#contexts)."
The following example demonstrates how these different types of environment variables can be used together in a job:
{% raw %}
```yaml
name: CI
on: push
jobs:
prod-check:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- run: echo "Deploying to production server on branch $GITHUB_REF"
```
{% endraw %}
In this example, the `if` statement checks the [`github.ref`](/actions/reference/context-and-expression-syntax-for-github-actions#github-context) context to determine the current branch name; if the name is `refs/heads/main`, then the subsequent steps are executed. The `if` check is processed by {% data variables.product.prodname_actions %}, and the job is only sent to the runner if the result is `true`. Once the job is sent to the runner, the step is executed and refers to the [`$GITHUB_REF`](/actions/reference/environment-variables#default-environment-variables) environment variable from the runner.