-
Notifications
You must be signed in to change notification settings - Fork 3k
Travis CI: Stages, OS update, apt-get relief! #9844
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
Conversation
@AnotherButler Feel free to take a look at the docs jobs and lmk what you think. A PR to https://github.com/ARMmbed/mbed-os-5-docs will come tomorrow as well. |
A note: My local fork didn't like running 'coveralls' with Py37. Time debugging that failure was next to nothing. Can take another look at it tomorrow. |
9e1fdeb
to
175827e
Compare
@cmonr I am moving this to 5.12.1 - this is test config that could land later than 5.12.0 ? As we have high number of PR for 5.12 and t his is not even reviewed. Or at least landing on master, and each patch release will use old travis config - not ideal. |
It can, but was hoping to have it in sooner, since this fixes a fair amount of headaches with apt-get, and better supports testing multiple PRs at once. |
@0xc0170 I just remembered that a large reason I was trying to get this in for 5.12 was that it was possible that the test names were going to be updated. |
What is the lifetime? Previously we had some issue with limited lifetime, solved now? |
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.
LGTM otherwise
@@ -0,0 +1,139 @@ | |||
#!/bin/bash -euf |
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.
license header file here
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.
Added
@0xc0170 What do you mean by |
We had previously a problem aws stored only for 3 months or so. if this is not a problem anymore |
Added external bash file to source functions from
Primary cause of false Travis CI failures was running 'apt-get update'. Refactored all instances where this was needed with manually fetching and installing dependencies in S3 instace. This also includes GCC installation.
Added {} around each variable. Ported python invocations for simple math opts to coreutil commands
Added comments to functions
CI started |
Test run: FAILEDSummary: 1 of 11 test jobs failed Failed test jobs:
|
Exporters failed with some symlink errors, will restart once travis is fixed |
symlink error comes from untar. Sounds like corrupted package. Probably need to run whole pipeline again |
f987632
to
c79bb7e
Compare
'tr' command wasn't doing any replacement
c79bb7e
to
2a2ec16
Compare
CI started |
Test run: FAILEDSummary: 1 of 11 test jobs failed Failed test jobs:
|
Exporters restarted |
Internal CI symlink error again, aborting the current one and should be fixed in the next one |
Green 🎉 @cmonr in? |
Description
A rather large refactor of Travis CI.
Changes:
tools/test/travis-ci/functions.sh
PR will be squashed and cleaned up tomorrow, along with the addition of Release Notes.
Pull request type
Reviewers
Release Notes
Travis CI's testing config has been updated with some readability and performance improvements in mind.
Build Stages
Build stages have been added, which helps group similar jobs according to function.
Build stages also enocourage greater build parallelism by limiting the number of concurrent build jobs that a single PR can have, allowing multiple PRs to be tested in parallel instead of wauting in a build queue.
Finally, batching jobs into build stages allows for better job configuration. Some jobs that shouldn't have taken long were doing unneccesary actions such as downloading packages or installing python modules, which has now been corrected.
Python 3.7 by default
Jobs that require Python to run now use Py37 by default.
Ubutnu Xenial
The Linux VM that runs tests has been updated to use Xenail, Travis CI's latest supported Linux OS.
Minimal apt-get usage
Usage of
apt-get
has been greatly minimized by moving packages over to S3 and usingdpkg
to install cached packages when needed.A major pain point would occur when a job would fail because the VM failed to run
apt-get update
successfully.Bash functions
Common functions such as downloading packages or updating a job's status have now been collected into a single bash function. No strage shell invocations need to be done in order to use them which was not the case before.