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

Add an Appveyor and Travis.CI builds #2

Closed
Maijin opened this issue Dec 12, 2017 · 8 comments
Closed

Add an Appveyor and Travis.CI builds #2

Maijin opened this issue Dec 12, 2017 · 8 comments

Comments

@Maijin
Copy link

Maijin commented Dec 12, 2017

To automatically test every commit and pull-request and also create ready-to-use release

@Manouchehri
Copy link
Contributor

For ready-to-use Linux builds, I already have a Dockerfile written. Just waiting for it to finish rebuilding so I can test it properly.

image

@Manouchehri
Copy link
Contributor

@Maijin Hmm, the build times out on Docker Hub. Guessing we're going to have the same problem on AppVeyor and Travis CI?

https://hub.docker.com/r/thawsystems/retdec/builds/b9tti2q2xascemdzhqcasfh/

@Maijin
Copy link
Author

Maijin commented Dec 13, 2017

What about make -jXX ?

@ghost
Copy link

ghost commented Dec 15, 2017

Setup Travis-CI for producing AppImage package!

@PeterMatula
Copy link
Collaborator

Travis: https://travis-ci.org/avast-tl/retdec
Appveyor: https://ci.appveyor.com/project/avast-tl/retdec

Notes:

  • We had to significantly reduce LLVM that we use in order to pass CI time limits. Only modules that we actually need are built. This speeds up all the builds, but may be a problem in the future - migrating to new LLVM versions, using RetDec and LLVM in other ways, etc. We will see and solve the problems if/when they occur.
  • Because of time limits, we use Release configuration with disabled optimizations - fastest combination. This is not ideal, since it is not the configuration that is used during the development nor in releases, but since we are out of the ideas to speed up the build, it has to be this way.
  • Clean, full builds (without caching, see below) should regularly be in time limits on all 3 systems - Linux, MacOS, Windows.
  • We do not use any kind of caching on Windows. Build takes around 40 to 50 min. Because of this, we test only one configuration at the moment.
  • We use ccache on Linux and MacOS. ccache slows down the build. MacOS should still be fine, but clean, full build on Linux with ccache enabled does not end in time limit. Subsequent builds should. We decided to use ccache for now, and if some build fails because of the time limit, to manually restart it. We hope it will not happen often. If it will, we may disable caching altogether.
  • MacOS builds in Travis start really slow - huge job backlog.
  • There might be more enhancements in the future - more build configurations, better caching(mtime_cache?), different/faster CI for MacOS, etc. But for now, we consider this solved. We will use it for some time and see how well it works and what improvements are needed.
  • Any developer needs to run his/her own regression tests. We will not accept any pull request that breaks any regression test on any system. It would be the best, if this was automated as well, but there is no way that this could run on public/free infrastructure. It is simply to resource-consuming.

@silverbacknet
Copy link

If they were public, they'd show up as artifacts, but they don't seem to be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants
@Maijin @silverbacknet @s3rvac @Manouchehri @PeterMatula and others