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

Don't ignore test.mjs child process exit codes in the Gulpfile #17555

Merged
merged 1 commit into from
Jan 21, 2024

Conversation

timvandermeij
Copy link
Contributor

In the Gulpfile only the exit codes of test.mjs child processes erroneously aren't checked. This causes failures in test.mjs to be logged but not propagated to the master process, which in turn causes test runners such as GitHub Actions to succeed because they only monitor the master process. This is easy to reproduce by throwing an error at the top of test.mjs and running gulp makeref or gulp unittest: the error is logged, but the task that spawned the child process succeeds and the master process exits with exit code 0. This is problematic because it can easily cause errors to go by unnoticed.

This commit fixes the issue by making sure that the test.mjs invocations are handled in the same way as the other child processes in the file, i.e., if the child process exits with a non-zero exit code then the master process also exits with a non-zero exit code. After this patch the error is still logged, but the task now also fails and the master process exits with exit code 1 to properly signal failure.

Fixes #17396.

In the Gulpfile only the exit codes of `test.mjs` child processes
erroneously aren't checked. This causes failures in `test.mjs` to be
logged but not propagated to the master process, which in turn causes
test runners such as GitHub Actions to succeed because they only
monitor the master process. This is easy to reproduce by throwing an
error at the top of `test.mjs` and running `gulp makeref` or `gulp
unittest`: the error is logged, but the task that spawned the child
process succeeds and the master process exits with exit code 0. This is
problematic because it can easily cause errors to go by unnoticed.

This commit fixes the issue by making sure that the `test.mjs`
invocations are handled in the same way as the other child processes
in the file, i.e., if the child process exits with a non-zero exit code
then the master process also exits with a non-zero exit code. After this
patch the error is still logged, but the task now also fails and the
master process exits with exit code 1 to properly signal failure.
@timvandermeij
Copy link
Contributor Author

Coming to think of it, this might also be why the bot scripts check the output string instead of the exit code of the process: the exit code is always 0 before this patch, so it wasn't the reliable indicator of success or failure it should have been. This means it's also relevant for #11851 because the GitHub Actions pipelines rely on the exit code.

/botio unittest

@moz-tools-bot
Copy link
Collaborator

From: Bot.io (Linux m4)


Received

Command cmd_unittest from @timvandermeij received. Current queue size: 0

Live output at: http://54.241.84.105:8877/028bb669e218297/output.txt

@moz-tools-bot
Copy link
Collaborator

From: Bot.io (Windows)


Received

Command cmd_unittest from @timvandermeij received. Current queue size: 1

Live output at: http://54.193.163.58:8877/12ee678ef0d7e3d/output.txt

@moz-tools-bot
Copy link
Collaborator

From: Bot.io (Linux m4)


Success

Full output at http://54.241.84.105:8877/028bb669e218297/output.txt

Total script time: 2.55 mins

  • Unit Tests: Passed

@moz-tools-bot
Copy link
Collaborator

From: Bot.io (Windows)


Success

Full output at http://54.193.163.58:8877/12ee678ef0d7e3d/output.txt

Total script time: 9.24 mins

  • Unit Tests: Passed

Copy link
Collaborator

@Snuffleupagus Snuffleupagus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me, thanks for fixing this!

@timvandermeij timvandermeij merged commit 1ed6893 into mozilla:master Jan 21, 2024
9 checks passed
@timvandermeij timvandermeij deleted the gulpfile-exit-code branch January 21, 2024 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Failing GitHub Actions font-test was marked as successful
3 participants