GitHub Actions is built on top of webhooks and checks and uses the CheckSuiteEvent for re-running workflows. Using the CheckSuiteEvent for re-run can lead to non-deterministic results due to the difference in event payload. In order to make re-runs deterministic we now persist the original event payload and use it when re-running workflows.
The GitHub Actions workflow syntax has new features based on feedback from our community.
Env at the workflow and job level
It is common to need define a set of environment variables that are used in multiple steps in a job and even multiple jobs in a workflow. Now you can add an `env` map at both the workflow and job level. Those environment variables will be merged with the `env` defined at any step lower in the hierarchy.
If at the job level
Many of you have commented that you would like to have jobs that run only under certain conditions just like you can with steps. Now you can define an if as part of a job using the same expressions you can with a step.
jobs:
job1:
if: github.event_name == 'pull_request'
steps:
- run: echo "Hello in a PR"