arduino / arduino-builder

A command line tool for compiling Arduino sketches
GNU General Public License v2.0
458 stars 114 forks source link

Fix bugs in dry run determination code for "Sync Labels" workflow #371

Closed per1234 closed 3 years ago

per1234 commented 3 years ago

This PR pulls in fixes to the "Sync Labels" workflow from its upstream "template".

Correct context key name in "Sync Labels" workflow

Incorrect context key name resulted in impossible to satisfy conditional, meaning the dry run determination code was solely dependent on the check for whether the workflow was triggered from the default branch name.

Sync labels in write mode on schedule trigger

In order to facilitate the testing and review of proposed changes to the repository label infrastructure, the "Sync Labels" template workflow does a dry run when triggered under conditions that indicate it would not be appropriate to make real changes to the repository's labels. The changes that would have resulted are printed to the log, but not actually made.

One of the criteria used to determine "dry run" mode usage is whether the event occurred on the repository's default branch. A trigger on a development branch or for a pull request should not result in a change to the labels. It turns out that GitHub does not define a github.event.repository.default_branch context item when a workflow is triggered by a schedule event. This resulted in the workflow always running in "dry run" mode on a schedule trigger. Since schedule and repository_dispatch triggers are only permitted for the default branch, there is no need to check whether the event's ref matches the default branch and it is safe to always run in write mode on these events.