GitHub Action context and its Capabilities
Contexts basically helps to get the information about workflow runs, runner environments, jobs, and steps. Contexts, objects, and properties will vary importantly under different workflow run conditions. For example, the matrix context is only populated for a matrix job.
Now we will talk about valuable Context
The GitHub context contains information about the workflow run and the event that triggered the run. GitHub context object contains all the properties. Now we'll look at a GitHub Context sample.
When we run this action context, it displays all of the information as shown in the screenshot below.
The runner context contains all the information about the runner that is executing the job. Below is the example.
Here's a screen shot of what the output would look like.
Every detail, such as the runner's name, operating system, and arch, will be displayed. The temporary directory and workspace for runners are also included.
When we Use Context
GitHub Actions contains a collection of variable called contexts and a similar collection of variables called default environment variable.
- Default Environment Variable
Default Environment Variable
You can use environment variables to store information that you want to reference in your workflow. The default environment variable in GitHub is available for every step in a workflow file. GitHub sets environment variable for actions to use in all runner environment. you can set your own custom environment variables or you can use default environment variables that GitHub sets automatically.
RUNNER_OS is a default environmental variable. For example the below workflow could be run successfully if you changed the operating system from macOS-latest to windows-latest .
If conditionals are handled by GitHub Actions, the two if statements in the above example examine the OS attributes of the runner context, and only steps where the check resolves as true are passed to the runner. Only one of these steps is delivered to the runner because one of the checks is always true and the other is always false. The process is completed once the job is sent to the runner.
Contexts can be used at any step in your workflow, even if the default environment variables aren't available. Now we'll look at how two different sorts of environment variables can be combined in a job.
These two jobs are defined in such a way that job 1 will only run if changes come from the Development branch, and job 2 will only run if changes come from the Main branch.