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
.travis.yml: make package pulls conditional. #2292
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
once the build passes, approve.
Well, it appears that I've figured it out, i.e. it works as latest red cross from travis is unrelated. But after melt-down and make-over travis removed "profiling" information from [raw] log files. I mean earlier there were 'duration' fields recorded for each step and one could see what are the gains, but not anymore :-( I'd also like to argue in favour of configuring with no-makedepend (makedepend makes lesser sense in build-test-and-throw-away) and omitting test_fuzz in mingw tests (it's grotesquely wasteful). |
723299d
to
b679262
Compare
I agree it's not needed to do 'make depend' on a clean CI build. But maybe doing it once finds bugs in make depend? Also agree on the others. So a preliminary plus-one from me on your PR when you do it :) |
There is "fun" dependency between no-makedepend and --strict-warnings. On related note there was report that it fails to recognize gcc if it's command line doesn't have gcc in name. Anyway, rationale behind no-makedepend is that I/O seems to be expensive (for example in attempts to include Android builds quite a time was spent on just unpacking stuff, more time than just downloading it), and makedepend is a bunch of small files... |
b679262
to
15de793
Compare
|
I'm not sure what that |
Idea is to opt-in commits for full tests, right? For this you need a way to terminate a job and mark it as "success". And you want to terminate it as early as possible. exit 0 in beginning of before script seems to allow that. So now I have to figure out how to identify opt-in tag and not call exit... |
.travis.yml
Outdated
exclude: | ||
- os: linux | ||
compiler: clang | ||
- os: osx | ||
compiler: gcc | ||
|
||
before_script: | ||
- env | ||
- if [ "x$TRAVIS_EVENT_TYPE" == "xpull_request" -a -n "$EXTENDED_TEST" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do people insist on that 'x'? Utterly unnecessary when you have quotes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't answer for people :-) For me I suppose it's kind of better-overdo-than-not... But yes, it can be omitted.
So the suggestion is to mark specific targets with EXTENTED_TEST=yes in .travis.yml and idea is to execute them only if last commit has |
exclude: | ||
- os: linux | ||
compiler: clang | ||
- os: osx | ||
compiler: gcc | ||
|
||
before_script: | ||
- env |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just in case for reference. If we choose to take this path, env can be removed after a repo-commit. As you can see [extended tests]
are evaluated when TRAVIS_EVENT_TYPE is pull_request. This asks for question what is TRAVIS_EVENT_TYPE when repo-commit is performed. Once we know env can be removed...
00f18b5
to
2337a85
Compare
Re-based and squashed. |
I'm not sure I follow... What's the intended practical difference between EXTENDED_TEST and REQUIRED_TEST? Also, the .travis.yml in this PR doesn't show much how you intend this to work, all it does is exit early from before_script, but that doesn't show how you intend tests to be affected by this exercise... Yes, I know, it's still in WIP, but thing is that as long as there's just that early exit, the intention remains unclear (at least in my mind) and it becomes an academic discussion... |
None. It's just a preference question. Do we want to mark "extended" tests or do we want to mark non-extended ones in .travis.yml. I.e. goal is the same, to limit execution of same group of tests. And we can say that definition of the said group by tagging tests with EXTENDED_TEST sucks, and decide to describe the complementary group instead by tagging non-extended tests with REQUIRED_TEST. That's all.
And that is all one can do( ( |
Errrr... I think there's a misunderstanding here, we seem to be talking about very different things. My concern is that if this line does |
|
It doesn't happen because you do a |
Duh... Thanks! |
2337a85
to
5974064
Compare
So I've amended last commit replacing |
Suggestion : |
Cool! Thanks! I'll be having a look at ordering builds on page so that "extended" and "minimal" are not intermixed, and will incorporate the suggestion. But not today. Thanks again. |
I get an idea, while following this PR ; please check #2692... |
After additional consideration I'm leaning toward |
Since CI is engaged on per merge request basis, it can be wasteful to run each request through all the tests, especially those resource consuming. Idea is to mark most of tests as "extended" and provide a way to opt-in by marking last commit with ~extended tests~ tag. It's still not as optimal as one could wish, as decision to skip a test still requires machine time, and is taken in configured environment, i.e. with updates and additional packages installed.
5974064
to
f50bbe4
Compare
[to be squashed]
This is finalized. Besides conditional package install, it limits test coverage unless last commit is tagged with [extended tests]. |
So, uhmmmm, if I understand correctly, the purpose of |
Also, you mentioned somewhere else (email?) that the cross compiled builds could do without test_fuzz. I totally agree with that idea, +1 for adding a |
Yes. Even though you are correct implying that lack of [extended test] tag could translate to build-only thing, it makes lesser sense to compile a number of targets, sanitizers of course, without actually executing the outcome. Second counter-argument is to define bare-minimum amount of tests, as for majority of pull requests just few builds really suffice, and doing more would probably be overkill when it comes to resource consumption, i.e. it's about being cooperative. [I do wish there was a way to cancel part of jobs without them being started, or earlier than it's done now, but in a way that doesn't result in red cross]. Third counter-argument is that since you can "request" extended testing afterwards, by amending last commit and adding the tag, skipping jobs in their entirety would result in lesser waste. [I mean requesting extending testing afterwards would effectively waste resources taken for bare-minimum and skipped jobs in the initial request. If lack of [extended test] tag translated to build-only, the waste would be higher.] |
It's done implicitly in |
Noted, and I don't disagree with that, just wanted to be clear what we mean with "test" in this context.
Ah. Actually, I would prefer a more explicit approach, i.e. requiring it be explicitely declared in the matrix. More explicit == less magic == goodness, in my mind. |
[to be squashed][skip ci]
Pushed. |
.travis.yml
Outdated
@@ -117,7 +174,7 @@ script: | |||
- if [ -z "$BUILDONLY" ]; then | |||
if [ -n "$CROSS_COMPILE" ]; then | |||
sudo apt-get -yq --no-install-suggests --no-install-recommends --force-yes install wine; | |||
export EXE_SHELL="wine" WINEPREFIX=`pwd`; | |||
export EXE_SHELL="wine" WINEPREFIX=`pwd` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Errr, please put the ; back
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
([skip ci]
is inconvenient at times, eh? ;-) )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oops. Fixed. Thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy with this
Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from #2292)
Since CI is engaged on per merge request basis, it can be wasteful to run each request through all the tests, especially those resource consuming. Idea is to mark most of tests as "extended" and provide a way to opt-in by marking last commit with [extended tests] tag. It's still not as optimal as one could wish, as decision to skip a test still requires machine time, and it's taken in configured environment, i.e. with updates and additional packages installed... Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from #2292)
No description provided.