Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh: Allow manual running of the full test suite and erlfuzz #7

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

TD5
Copy link

@TD5 TD5 commented May 25, 2023

This change introduces two new features:

  • Comment "/run-fuzzer" on a pull request to trigger a bot which will run erlfuzz and report the results by replying on the comment thread
  • Add the "full-build-and-check" tag to a pull request to force-override CI to always run tests for all applications

The two differ in how they are expressed because I have worked on the basis that:

  • Running the fuzzer is expensive, so we probably want to try to limit that to when we know we really need it and explicitly invoke it.
  • Running tests for all apps is sometimes needed because the existing mechanism for selecting apps to test is unsound: If you modify stdlib, apps that depend on it won't be analysed, but stdlib itself will. As such, using a tag means that all subsequent test runs for that pull request will return the full signal.

This change also factors out the initial build of OTP in CI into base-build.yaml so that it can be reused elsewhere, for example, when running erlfuzz.

The mechanism of using comments to execute manual CI jobs could later be extended to add other optional or expensive jobs (e.g. eqWAlizer) so that there is an official means of running them, without requiring that they be part of the usual, automatic CI suite.

This change introduces two new features:
 - Comment "/run-fuzzer" on a pull request to trigger a bot which will
     run erlfuzz and report the results by replying on the comment
     thread
 - Add the "full-build-and-check" tag to a pull request to
   force-override CI to always run tests for all applications

The two differ in how they are expressed because I have worked on the
basis that:
 - Running the fuzzer is expensive, so we probably want to try to limit
   that to when we know we really need it and explicitly invoke it.
 - Running tests for all apps is sometimes needed because the existing
   mechanism for selecting apps to test is unsound: If you modify
   stdlib, apps that depend on it won't be analysed, but stdlib itself
   will. As such, using a tag means that all subsequent test runs for
   that pull request will return the full signal.

This change also factors out the initial build of OTP in CI into
`base-build.yaml` so that it can be reused elsewhere, for example,
when running erlfuzz.

The mechanism of using comments to execute manual CI jobs could
later be extended to add other optional or expensive jobs (e.g.
eqWAlizer) so that there is an official means of running them, without
requiring that they be part of the usual, automatic CI suite.
@TD5 TD5 force-pushed the manual-fuzzing-and-full-testing branch from ad87d5b to 602d9f8 Compare June 5, 2023 14:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants