Skip to content

Travis: define matrix builds for mbed 2 jobs #5729

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

Merged
merged 6 commits into from
Dec 20, 2017

Conversation

0xc0170
Copy link
Contributor

@0xc0170 0xc0170 commented Dec 19, 2017

Use matrix for our targets, to get smaller jobs that can run in parallel.

@0xc0170 0xc0170 force-pushed the fix_travis_time branch 5 times, most recently from b56d27c to 4439658 Compare December 19, 2017 11:22
@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 19, 2017

I think I have it now defined as initially intended. We still use matrix, use env to set vendor to run tests for (to avoid duplication, same matrix job just different env, to set up multiple jobs). We were over the limit of 50 minutes. As travis build script runs, its build libs, then links examples.

It is the same, just that one job per targets/TARGET_xxxx folder (named vendor in the travis script). The latest job should pass!

@0xc0170 0xc0170 changed the title Travis: use default -j 0 for make and build Travis: define matrix builds for mbed 2 jobs Dec 19, 2017
@0xc0170 0xc0170 force-pushed the fix_travis_time branch 4 times, most recently from 6bb28ee to 81fe2ed Compare December 19, 2017 12:08
Use vendor matrix, creates a job for each vendor folder (targets/TARGET_XXX).
This fixes the errors we have seen, as a job has a limit 50 minutes.
Do not fall to default Ruby
@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 19, 2017

/morph build

@mbed-ci
Copy link

mbed-ci commented Dec 19, 2017

Build : SUCCESS

Build number : 723
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/5729/

Triggering tests

/morph test
/morph uvisor-test
/morph export-build

@mbed-ci
Copy link

mbed-ci commented Dec 19, 2017

@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 19, 2017

Travis fails for Atmel devices, 10 minutes no log, investigating locally

As we have now matrix for targets, there might be some targets that take longer to compile.
It can timeout, if we produce an output after every target that it was build, it
should extend the timeout per target build.
Copy link
Contributor

@geky geky left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great 👍

.travis.yml Outdated
@@ -34,6 +34,8 @@ after_success:
after_failure:
- bash -c "$STATUS" failure "Local $NAME testing has failed"

language: generic
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, should this be python?

.travis.yml Outdated

- python: '2.7'
env:
- NAME=mbed2-NUVOTON
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I bet there's a way to not have to repeat yourself here... but I tried it on my fork and ran into issues.

Will look into this later...

@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 19, 2017

Still atmel job timeouts. I run it locally takes 460s, run through profiler, multiple times, could not reproduce the timeout (however travis runs multiple jobs (3 at the time)).

@mbed-ci
Copy link

mbed-ci commented Dec 19, 2017

@geky
Copy link
Contributor

geky commented Dec 19, 2017

Looks like it was an issue with gcc-arm-none-eabi version.

gcc version 7.1 added -Wexpansion-to-defined, which warns if a macro expands to contain defined(blablabla):
https://www.gnu.org/software/gcc/gcc-7/changes.html

Macros containing defined were used heavily in the Atmel HAL. Things exploded to the point where build.py died. This is probably the reason we started seeing the mbed 2 timeouts in the first place.

700f06e Removes the warning. There's not a clear workaround for nested macro defineds and they are pretty entrenched in the Atmel HAL.

@0xc0170 0xc0170 force-pushed the fix_travis_time branch 2 times, most recently from 48b8c64 to 253ddfe Compare December 20, 2017 09:27
language -> python
pip --user installs -> virtual env installs
@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 20, 2017

/morph build

@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 20, 2017

I updated the travis file, to specify version (fetch it from official arm website), to stay with GCC ARM 6 as we currently support. For Atmel fix, we will create a new tracking issue wit hthe provided fix here , that needs further investigation. To stay compatible, I reverted that change here (rebased).

thanks @geky for the clean-up, looks good !

@mbed-ci
Copy link

mbed-ci commented Dec 20, 2017

Build : SUCCESS

Build number : 724
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/5729/

Triggering tests

/morph test
/morph uvisor-test
/morph export-build

@mbed-ci
Copy link

mbed-ci commented Dec 20, 2017

Use download from official website, to have
fixed version, rather than latest.

The official support for current mbed OS is
GCC ARM 6.
@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 20, 2017

/morph build

@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 20, 2017

I found one mistype in yaml file that I fixed, restarting CI, once done this should be ready to get in

@mbed-ci
Copy link

mbed-ci commented Dec 20, 2017

@mbed-ci
Copy link

mbed-ci commented Dec 20, 2017

Build : SUCCESS

Build number : 725
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/5729/

Triggering tests

/morph test
/morph uvisor-test
/morph export-build

@mbed-ci
Copy link

mbed-ci commented Dec 20, 2017

@mbed-ci
Copy link

mbed-ci commented Dec 20, 2017

@0xc0170
Copy link
Contributor Author

0xc0170 commented Dec 20, 2017

This is now ready for integration 💯

@0xc0170 0xc0170 merged commit a7aaee3 into ARMmbed:master Dec 20, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants