Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

ethomson
Copy link
Member

I've refactored the build and test scripts quite a bit in order to simplify and reduce complexity. Now all builds are three simple steps:

  1. Install prerequisites
    For example: using Homebrew to install libraries, or downloading and installing mingw. This step will only be run on hosted build agents. Docker images and private build agents (that we provision and provide ourselves) should simply have the dependencies installed correctly.
  2. Build
  3. Run tests

I've also refactored the build and tests steps so that they can run isolated, without affecting other parts of the system. For example: the ssh server is now started and configured in a way that doesn't touch $HOME/.ssh. This allows developers to run these scripts without it removing or updating their actual ssh settings. 😁

Finally, I've introduced CI builds with Visual Studio Team Services. Immediately, this includes seven build targets:

  1. Linux (Ubuntu Trusty, with OpenSSL), provided as a Docker image
  2. Linux (Ubuntu Trusty, with mbedTLS), provided as a Docker image
  3. macOS
  4. Windows (MSVC, x86_64)
  5. Windows (MSVC, x86)
  6. Windows (mingw, x86_64)
  7. Windows (mingw, x86)

Per https://github.com/libgit2/discussions/issues/5, I think that we might want to have a separate set of additional builds that run as nightly builds. For example, Linux ARM (Raspberry Pi).

I think that this is worth merging now so that we can evaluate our PRs with it and get a feel for it to ensure that it's faster than our existing CI systems. However it's not ready to completely replace Travis CI or AppVeyor, as we're not doing leak detection here yet.

@ethomson ethomson force-pushed the ethomson/ci branch 26 times, most recently from 64a94fb to 3dcdaa6 Compare July 21, 2018 03:04
@ethomson ethomson force-pushed the ethomson/ci branch 4 times, most recently from c99244e to 4d27196 Compare July 24, 2018 23:52
@ethomson ethomson force-pushed the ethomson/ci branch 8 times, most recently from 4146ecb to dcc551c Compare July 27, 2018 15:43
@ethomson
Copy link
Member Author

OK. I think that I've addressed your comments, @pks-t.

  1. I've migrated Travis and AppVeyor both over to the new scripts and removed the old ones. I think that they're an improvement over what was there, but I still think reducing the number of CI systems we have should be our goal. I did a very literal translation, we're doing all the same builds on each of those systems as what we did before.

  2. I added clang to the platform matrix on VSTS, which gives us:

    Linux (Trusty; GCC; OpenSSL)
    Linux (Trusty; GCC; mbedTLS)
    Linux (Trusty; Clang; OpenSSL)
    Linux (Trusty; Clang; mbedTLS)
    macOS
    Windows (Visual Studio; amd64)
    Windows (Visual Studio; x86)
    Windows (MinGW; amd64)
    Windows (MinGW; x86)

ethomson added 2 commits July 29, 2018 17:26
Instead of trying to run coverity builds during the regular PR process,
run them during a regularly scheduled cron process.  These only need to
run nightly, so it makes sense to bring them out of the PR process.
@ethomson
Copy link
Member Author

ethomson commented Aug 2, 2018

OK, seeing as there's no other feedback, I'm going to merge this later today to start getting some idea of how it's performing against PRs.

@pks-t
Copy link
Member

pks-t commented Aug 2, 2018 via email

@pks-t
Copy link
Member

pks-t commented Aug 2, 2018

I ran out of time today, so I only had a cursory read. From what I saw it looked good to me. I'll have more time to review tomorrow, but feel free to go ahead and merge it. We can still improve things after that.

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

Successfully merging this pull request may close these issues.

3 participants