Hi,
Text remains white in logs on Travis whereas it still works on local.
It seems broken again since the 16th of December.
Hi,
Text remains white in logs on Travis whereas it still works on local.
It seems broken again since the 16th of December.
You don’t have colors when you use secret variables.
That’s because the output is then fed to a filter program so it’s not to a terminal.
So I removed secret variable a long time ago, and it worked, thanks @native-api .
But now again I don’t see color anymore on Travis since around 3 months ago, though I haven’t changed my code that keeps working in Eclipse:
Maven seems to get in the way, I’ll post update when I find a fix.
Actually it does not, Maven logs are fine colored like the JUnit logs we see on the previous screenshot.
Though Maven version shouldn’t be around 3.1.1
, because color does not appear with lower version.
So I upgraded to latest Maven version 3.6.3
in .travis.yml
, but still no color.
Even the command mvn -v
does not display the white version I see on my monitor:
On Travis it’s just plain grey #f1f1f1
so if there’s a filter it seems applied on top of Maven:
Any clue what’s happening?
With debug logging enabled, Maven reports which kind of logging is being used (corresponding source code). Check what yours produces to get a hint for localizing the issue.
[DEBUG] Message scheme: color
[DEBUG] Message styles: debug info warning error success failure strong mojo project
Also check (in the same log) if org.slf4j.*
and org.fusesource.jansi.*
are being imported which are both prerequisites for coloring.
If you get scheme: color
then Maven’s output is being postprocessed. If you get scheme: plain
or the prerequisites are missing then you are somehow messing with Maven’s installation and/or settings.
Thank you @native-api, I will check and test what you propose.
I did get coloring months ago like on this job, but I don’t remember having changed anything on the logger part since then:
https://travis-ci.org/github/ron190/jsql-injection/jobs/635959361
Also I never used slf4j or jansi, just log4j, so maybe another dependency is breaking down everything.
Let me check on my side, I’ll update the post when the fix is found.
@native-api I tried and run debug command mvn -X dependency:tree
and I still got colorless on Travis:
[DEBUG] Message scheme: color
https://travis-ci.org/github/ron190/jsql-injection/jobs/675523959#L281
I don’t understand how my code or my dependencies can disable colors even before running tests.
It’s weird.
I’ll retry with all dependencies disabled.
I disabled every dependencies possible, nothing strange in dependency tree, but it’s still colorless.
https://travis-ci.org/github/ron190/jsql-injection/jobs/675683845
At first glance it does not seem related directly to configuration, neither to .travis.yml
nor to pom.xml
.
Additionally I reviewed past jobs, the last coloring job was #218, the next that exists is colorless and is the #220, the only configuration change is on .travis.yml. I simply added openjdk14 then removed it.
And strangely enough job #219 is missing on Travis dashboard, and maybe something went wrong there.
I would like to review Requests panel for job #219 but it goes until job #327 only.
https://travis-ci.org/github/ron190/jsql-injection/requests
I’ve cloned your repo and ran a build on master
, and colors are there.
So this must be secret variables – this way or another.
E.g. I see the following in your .travis.yml
:
addons:
sonarcloud:
organization: ron190-github
token:
secure: Fi8pYQTRDsIzBBKPTLHcAxkm0l0JcrZZvADbhwWG95lqKgtEtGI0OzWB5nFUBiOu5N20yrMPz/x4BUTyqr61xZiOocB9SH5ya4jqlraIlQW3WPH0enZ7e/g/JmqiAttuhzic7s12XQR5VwvAbG7ZkHa41liJ0nTd8HiLG7TOPep0hVTX/VZ/+K1B0FMJJVsMNMfhDsrtegxLryoeCSuKpwiAXXN2GkTtV2g1o1fxSmFMb0cepC/03Hskfp4ZxnHaY9yQfJISulTuxv9EUy5ecQZj+btf+QB3iNAwNFIE/xC6VeuCSrTJ01kG9w9DvY3W6z9NywxVHL5fJNDHcWsIz6/FpdNZgwxw6hIBQOimSa2/oXrPNyNR/bUyu6kQMFitDXWNxZj56yicqduNc46ni9NjsavCMlTJrdh/MYKB+C8e2IVa11QT988iTZo5C7MjUqUJU4gKBgdcn0jGZb20pxd7/Gtf4uMz7tp9mQRCTXpV6OSE85phwezledPud1f7/TG/QBrzZCL3YTMLhrDLhiratHweitPpr3da2+HrjSkdmunGdyufB+bseJP68ghjG5QpYBakjkJgkGYXd+S/r1NHmsGhbuk3/S0WtoYRhlAaBl3U8c7z8/lBcPhNbkQmfjIMolTjVdK61rQSads1b3kgVcImsux0IxEhUjowqag=
Thank you for your time on this one @native-api.
Then it’s even weirder because if both secret variable and plain secure token are making logs colorless then it means Maven colors are gone when we put addons: sonarcloud
in .travis.yml (see quote).
Should it be at least colorless only for secret variable, or just as expected: colorful whatever plain or secure token?
I removed secret variable the 19th of december 2019 after viewing your comment about it, so I don’t have any Environment Variables anymore.
And you kept addons: sonarcloud
in your fork and you still have colors…
So I commited Remove everything for coloring without getting colors:
language: java
services: docker
jdk:
- openjdk8
- openjdk9
- openjdk10
- openjdk12
- openjdk13
addons:
sonarcloud:
organization: ron190-github
token:
secure: Fi8...ag=
cache:
directories:
- $HOME/.m2
- $HOME/.sonar/cache
before_install:
- mvn -v
- mvn -X dependency:tree
- which mvn
- find /usr -name '*jansi*' -exec ls -l {} \;
Then I commited Remove universe for coloring and now colors are back:
language: java
jdk:
- openjdk8
before_install:
- mvn -v
- mvn -X dependency:tree
- which mvn
- find /usr -name '*jansi*' -exec ls -l {} \;
I don’t understand, I also deleted cache before.
Why have you colors and I have not? Not the jdks? Not the cache?
Nope, I don’t get it.
Tried without services: docker
and still no color.
So the attribute addons: sonarcloud
erases colors on my account only
Secret variables are only applied to the repo whose encryption key they use. In any other repo, they are ignored. So I forked your repo specifically to remove them from the equation.
I guess non-variable encrypted values also enable output filtering because the presence of any encrypted value technically means that the output has to be watched for its presence.
Not enabling filtering for non-variable encrypted values is going to be problematic because it would remove the safety net: in this case, the stock logic working with the secrets would instead need to watch out to not accidentally expose them – which will complicate development and debugging and error reporting and such.
Ok, I get why something is active on my account only. But I don’t get the purpose of filtering I guess.
In the first place why activate such filtering to process/hide a token from the log tab, whereas the very same token is displayed to everyone in the tab View config
and in the Git repository.
Can we confirm that something has changed on Travis platform since job #218
, where both sonarcloud:token
and coloring were working fine together?
Is there a solution to use sonarcloud and Maven without losing colors?
Oh, that’s it @native-api , I was not aware of this, you are right, the dates are matching.
I’ll stop worrying finally and leave it like this, and hope Travis team will manage to do both coloring and secured token all together.
Many thanks for your help.
Pipeline that runs application inside container using docker run -t
still displays colors with secrets correctly redacted strangely enough: #516.1
Github Actions has exactly the same behaviors:
I guess with -t
, the app inside gets true for isatty()
thus decides to show their (true ) colors.
Travis Windows log has historically not been a real TTY (i.e. isatty()
returns zero), but it does support ANSI/VT escape sequences for color. It can perhaps be enhanced to use the new ConPTY API introduced in Windows 1809 so that isatty()
returns nonzero, although I’m not sure if Windows Server Core has it.
If you can force your program to emit colors using ANSI/VT escape sequences (but not with using the Windows Console API) then it should work. I’ve been using --gtest_color=yes
with Google Test all this time.