use exec to run tailwind binary, so return codes pass through #181
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We are encountering issues where our CI pipeline can succeed without successfully building Tailwind. It appears this is possible because the
TAILWIND_COMPILE_COMMAND
is run withsystem
and the return code is never checked. When problems occur, an error is printed to the console but the return code from runningrails tailwindcss:build
is still0
.Build errors, such as those caused by a version mismatch between the
tailwindcss-rails
and the corresponding binary gem, could cause a CI build to fail silently and lead to an unstyled site in production. Therefore I believe it is essential that these rake tasks pass through the return code.Using
Kernel#exec
replaces the current process by running the given external command, thereby passing through any return codes. If this is unacceptable, another solution would be to add theexception: true
flag to thesystem
call.