-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
[ci] speed up the linux builds #1745
Conversation
remaining bottlenecks:
|
9ed06f8
to
7849424
Compare
Impressive speedup! We can overcome bottlenecks by the ordering of builds. If there is a way to control the order of the builds, then we can place Windows builds at first place, and the whole CI time will be |
@StrikerRUS |
@guolinke In my opinion, it doesn't value to complicate CI for the 2-3 min speedup (in case we are able to reorder the builds). |
@StrikerRUS can we merge this first? |
@StrikerRUS , the build time varies from time to time. it depends on whether CI/AppVeyor is busy or not. and the O(Build) was same if there are few PR was build at the same time. I think another opinion is that could the build logic of Push & PR was trigger at different phase? |
I'm not sure whether CI will optimize for the same source code build, considering there will be two times build (appveyor/branch v.s appveyor/pr and travis-ci/pr v.s travis-ci/push) for every code commit. |
@chivee As I know, the only way to optimize this is creating PR at later time, when all code changes have been done 😢 . Also, there will be useful to enable the option on Azure (if exists) similar to Appveyor's Rolling Builds and Travis' Auto-Cancellation. |
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.
@guolinke Please take a look: I left some comments/questions below.
.ci/setup.sh
Outdated
sudo apt-get install --no-install-recommends -y g++-4.8 || exit -1 | ||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100 | ||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100 | ||
# elif [[ $AZURE == "true" ]] && [[ $COMPILER == "gcc" ]] && [[ $TASK != "gpu" ]]; 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.
Do you want to leave this commented?
.travis.yml
Outdated
addons: | ||
apt: | ||
sources: | ||
- sourceline: 'ppa:kzemek/boost' |
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.
Maybe move this to the shell script:
if [[ $TRAVIS == "true" ]]; then
sudo add-apt-repository ppa:kzemek/boost -y
fi
somewhere here
https://github.com/Microsoft/LightGBM/blob/d852716c21e52fda47d7eccee7e6b674c1e9e35d/.ci/setup.sh#L44
for not bothering other tasks, except gpu?
No description provided.