-
Notifications
You must be signed in to change notification settings - Fork 4k
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
fix(cli): standard log messages are sent to stderr when CI=true #20957
Conversation
The CLI currently sends almost all logs to `stderr`, even success messages. Based on the linked issue, this was done to make terminal colors easier to see. While this might make it easier for users that are running the CLI from their local machine, it causes issues on some CI systems that will exit if anything is written to `stderr` (even when the exit code is 0). This PR updates all of the logging mechanisms to recognize the `ci` argument. If `--ci` is passed, or the environment variable `CI=true` then all logs (except for error logs) will be sent to `stdout`. Currently the `ci` argument was only available on the `deploy` command, but this PR moves that to the global arguments list so that it will apply to all commands. I tested this manually on a CDK app by using a script to capture `stderr` and `stdout`. ```bash export CI=true key="$1" cmd="npx cdk deploy" errlog=$(mktemp) stdlog=$(mktemp) $cmd 1>> "$stdlog" 2> "$errlog" echo "-------------------errlog---------------------" cat "$errlog" echo "-------------------stdlog---------------------" cat "$stdlog" rm -f "$errlog" rm -f "$stdlog" ``` I also added new unit and integration tests that validate the change. fixes #7717
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
…20957) The CLI currently sends almost all logs to `stderr`, even success messages. Based on the linked issue, this was done to make terminal colors easier to see. While this might make it easier for users that are running the CLI from their local machine, it causes issues on some CI systems that will exit if anything is written to `stderr` (even when the exit code is 0). This PR updates all of the logging mechanisms to recognize the `ci` argument. If `--ci` is passed, or the environment variable `CI=true` then all logs (except for error logs) will be sent to `stdout`. Currently the `ci` argument was only available on the `deploy` command, but this PR moves that to the global arguments list so that it will apply to all commands. I tested this manually on a CDK app by using a script to capture `stderr` and `stdout`. ```bash export CI=true key="$1" cmd="npx cdk deploy" errlog=$(mktemp) stdlog=$(mktemp) $cmd 1>> "$stdlog" 2> "$errlog" echo "-------------------errlog---------------------" cat "$errlog" echo "-------------------stdlog---------------------" cat "$stdlog" rm -f "$errlog" rm -f "$stdlog" ``` I also added new unit and integration tests that validate the change. fixes aws#7717 ---- ### All Submissions: * [x] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md) ### Adding new Unconventional Dependencies: * [ ] This PR adds new unconventional dependencies following the process described [here](https://github.com/aws/aws-cdk/blob/main/CONTRIBUTING.md/#adding-new-unconventional-dependencies) ### New Features * [x] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/main/INTEGRATION_TESTS.md)? * [x] Did you use `yarn integ` to deploy the infrastructure and generate the snapshot (i.e. `yarn integ` without `--dry-run`)? *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
The CLI currently sends almost all logs to
stderr
, even successmessages. Based on the linked issue, this was done to make terminal
colors easier to see. While this might make it easier for users that are
running the CLI from their local machine, it causes issues on some CI
systems that will exit if anything is written to
stderr
(even when theexit code is 0).
This PR updates all of the logging mechanisms to recognize the
ci
argument. If
--ci
is passed, or the environment variableCI=true
then all logs (except for error logs) will be sent to
stdout
.Currently the
ci
argument was only available on thedeploy
command,but this PR moves that to the global arguments list so that it will
apply to all commands.
I tested this manually on a CDK app by using a script to capture
stderr
andstdout
.I also added new unit and integration tests that validate the change.
fixes #7717
All Submissions:
Adding new Unconventional Dependencies:
New Features
yarn integ
to deploy the infrastructure and generate the snapshot (i.e.yarn integ
without--dry-run
)?By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license