Skip to content
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: use the same image as Murdock. #10251

Merged
merged 1 commit into from
Nov 22, 2018

Conversation

jcarrano
Copy link
Contributor

@jcarrano jcarrano commented Oct 25, 2018

Contribution description

It does not make sense to do the static tests in a diferent image than the compilation tests.

This commit updates the travis config to use the riotbuild image (the same as murdock). This should fix the issues with old doxygen versions reporting issues that are not, and also simplifies the CI maintenance.

Testing procedure

The only way to test it is to trigger Travis . Use #9819 (it is rebased on top of this).

Issues/PRs references

After #9819 everything will start failing the tests because the version of Doxygen in Trusty is from the stone age.

This PR would make #10237 no longer applicable.

@miri64
Copy link
Member

miri64 commented Oct 25, 2018

This PR would replace #10237.

You sure? That PR introduces lesscpy to travis, this PR switches Travis over to docker. The connection is not really clear to me.

@miri64 miri64 requested a review from aabadie October 25, 2018 11:01
@miri64 miri64 added Area: CI Area: Continuous Integration of RIOT components Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation labels Oct 25, 2018
@jcarrano
Copy link
Contributor Author

That PR updates the version of lesscpy, this one switches to an image without lesscpy.

Anyways, the problems of the current Travis config go beyond lesscpy.

@miri64
Copy link
Member

miri64 commented Oct 25, 2018

Anyways, the problems of the current Travis config go beyond lesscpy.

Sure, I just wasn't sure if you accidentally referenced that PR because as I said: I don't see any connection to #10237.

@jcarrano
Copy link
Contributor Author

jcarrano commented Oct 25, 2018

Why have checks disappeared? I'm only seeing Murdock. Edit: I should have validated the travis file before commiting (d'oh!).

I don't see any connection to #10237.

I'll update the text to make it clearer.

@jcarrano jcarrano requested a review from cladmi October 25, 2018 11:56
Copy link
Contributor

@cladmi cladmi left a comment

Choose a reason for hiding this comment

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

I agree with going this direction but was also helping writing the PR so not sure I should being the one approving.
I did some inline remarks for the file.

So I let more others approve or decline this first.

.travis.yml Outdated Show resolved Hide resolved
.travis.yml Outdated Show resolved Hide resolved
@jcarrano
Copy link
Contributor Author

jcarrano commented Oct 25, 2018

According to the Travis docs, build-essential is installed in all images, so I changed it to "c" since that should have the least amount of extra stuff. Now the Travis log has a lot of unnecessary data and the image doesn't seem very lightweight anyways.
Edit: forget about that, now it's using the minimal image.

@miri64
Copy link
Member

miri64 commented Oct 25, 2018

According to the Travis docs, build-essential is installed in all images, so I changed it to "c" since that should have the least amount of extra stuff. Now the Travis log has a lot of unnecessary data and the image doesn't seem very lightweight anyways.

See my remark in #10251 (comment)

@jcarrano jcarrano added the CI: needs squashing Commits in this PR need to be squashed; If set, CI systems will mark this PR as unmergable label Oct 25, 2018
@cladmi
Copy link
Contributor

cladmi commented Oct 29, 2018

Is it now ok to review or do you still want to change things ?

@cladmi
Copy link
Contributor

cladmi commented Nov 13, 2018

@aabadie can you have a look at this as you are maintaining the travis build ?

@aabadie
Copy link
Contributor

aabadie commented Nov 13, 2018

In case of failure in Travis, the command would become "The command "docker run -a STDIN -a STDOUT -a STDERR --rm -u "$(id -u)" -v "${PWD}:/data/riotbuild" -v /etc/localtime:/etc/localtime:ro riot/riotbuild make static-test" exited with 2." which is not super nice.

But this is minor I think and I'm ok with the changes.

I still think switching to CircleCI (with #8729) would make things simpler, with, as a bonus, the possibility to access build artefacts (the generated documentation) from the build job webpage.

@cladmi
Copy link
Contributor

cladmi commented Nov 13, 2018

We still get the real error message before, it is always the first error that should be looked:

makefiles/tests.inc.mk:3: recipe for target 'static-test' failed
make: *** [static-test] Error 1

The command "docker run -a STDIN -a STDOUT -a STDERR --rm -u "$(id -u)" -v "${PWD}:/data/riotbuild" -v /etc/localtime:/etc/localtime:ro riot/riotbuild make static-test" exited with 2.

It however shows that having a BUILD_IN_DOCKER=1 make static-test shortcut could make sense.

I still think switching to CircleCI (with #8729) would make things simpler, with, as a bonus, the possibility to access build artefacts (the generated documentation) from the build job webpage.

It is still a different change, where only the second proposed argument is still valid, and even for the second argument saving output could also be done by murdock, something I plan to actively push after #10038
Also here the build took 3:30 minutes compared to your announced 7 minutes in CircleCI.

@aabadie
Copy link
Contributor

aabadie commented Nov 13, 2018

Also here the build took 3:30 minutes compared to your announced 7 minutes in CircleCI.

If you want to go this way, most of the time is spent by circleci by copying the generate documentation to the storage location. Otherwise, the build in itself is only 1m30s. Copying the artifacts takes time because of all the small files the doxygen documentation contains.

Having the documentation generated by Murdock will require extra disk space for storing the generated documentation on a per PR basis with the related infrastructure maintenance. Something not required with CircleCI.

@kaspar030
Copy link
Contributor

Having the documentation generated by Murdock will require extra disk space for storing the generated documentation on a per PR basis with the related infrastructure maintenance. Something not required with CircleCI.

Why not? Because we'd use public CircleCI servers?

@aabadie
Copy link
Contributor

aabadie commented Nov 13, 2018

Why not? Because we'd use public CircleCI servers?

because RIOT is an open-source project. You have to be logged in CircleCI to access the project artifacts (I use my GitHub account there). From their documentation, it's rather unclear what is the limitation is size or time.
I know a couple of other OSS project using this feature without any trouble. It's pretty useful in fact and very low in terms of maintenance.

Copy link
Contributor

@aabadie aabadie left a comment

Choose a reason for hiding this comment

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

Nothing special that needs to be changed in this PR. The static tests are passing, except the pr_check, because the git history needs squashing.

ACK, please squash @jcarrano !

@jcarrano jcarrano force-pushed the travis-use-riotdocker branch from c0cbaa0 to 8808096 Compare November 22, 2018 12:36
It does not make sense to do the static tests in a diferent image than
the compilation tests.

This commit updates the travis config to use the riotbuild image (the same
as murdock). This should fix the issues with old doxygen versions reporting
issues that are not, and also simplify the CI maintainance.
@jcarrano jcarrano added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: needs squashing Commits in this PR need to be squashed; If set, CI systems will mark this PR as unmergable labels Nov 22, 2018
@miri64 miri64 added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Nov 22, 2018
@miri64
Copy link
Member

miri64 commented Nov 22, 2018

And go. I don't expect Codacy to report anything of interest for this PR.

@miri64 miri64 merged commit 6627e40 into RIOT-OS:master Nov 22, 2018
@aabadie aabadie added this to the Release 2019.01 milestone Dec 2, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: CI Area: Continuous Integration of RIOT components CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: enhancement The issue suggests enhanceable parts / The PR enhances parts of the codebase / documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants