-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Update our CI infrastructure? #387
Comments
I have a feeling it's way more complicated than it has to be; I've looked at it before and then been like "This is too complicated, I'll work on something else." Maybe @azerupi for this thread we can enumerate what we want in our CI infra? That way we actually know what we're trying to evaluate. |
I would suggest at least:
I'm not sure if we need to keep al these variants in Travis and Appveyor. I guess 9 could be enough (Linux+MacOS+Win) x (Stable, Beta, Nightly) |
Our infra or trust? Do you have any specifics about what you find too complicated and would remove? To be honest, I have never been really comfortable with all the CI scripts and configurations. They were contributed by other people (mostly Japaric) and I never bothered to change them because they were working great. 😄 If you are talking about the build matrix, I agree. I don't think we need to run tests on so many platform-channel combinations. We could probably leave out the beta channel altogether. From my point of view, here are the requirements:
|
Our infra. trust is generally pretty good 😄
Yeah, the build matrix was part of it. It's mostly just that there is a lot there, including three whole shell scripts, which includes stuff like https://github.com/azerupi/mdBook/blob/master/ci/install.sh which shouldn't be needed anymore at all? These requirements look 👍 to me. |
Indeed, that is very probable. It was added a year ago when rustup was just emerging. There are probably better ways to do it now, that is why I linked to trust as a source of inspiration. |
I pushed some changes to a new branch ci-infra where I started reworking the Travis config. We might want to merge this quickly because Travis is currently unusable. But I had an idea for improvement: It should be possible, but I am not sure how to implement this with Travis. If any Travis wizard knows how to do this, please leave a comment or PR 😉 |
I think this line needs a
https://docs.travis-ci.com/user/cron-jobs/ is the general docs; I'm not 100% sure how to build it though.... |
Looks like this may not be possible today travis-ci/travis-ci#7181 |
Ahn too bad 😢
Indeed, good catch :) |
It might not be possible to express it in the yml file alone but it would be perfectly possible with shellscript and env vars exported in matrix (also travis exports "${TRAVIS_EVENT_TYPE:-}" == "cron" ) We have done something along these lines in rust-cookbook |
You can do that, but I was talking about the build matrix. You can't spawn more or less builds (for different rust versions) depending on if it is a regular PR / commit or cron job. At least that is how I understand it. |
Right, but we can always spawn maximal number of builds and return early from the inconsequential ones. Or we can manually test few build variants in one session using rustup |
Ok Travis has been revamped. It is very simple and doc / artefact deployment still has to be tested. |
I believe #516 fixes the last of this. Travis now tests all commits and PRs, plus it uploads the rendered user guide to github pages whenever a commit is made to Appveyor is still a problem though... The best long-term solution would be to give me access to the |
A long time ago, Japaric contributed most of the Travis and AppVeyor configuration files to setup automatic deployments of release artefacts etc.
I think we should check if everything is still working fine and up to date. We can use his trust repository for this. It is a template for a fully configured CI using Travis and AppVeyor.
The text was updated successfully, but these errors were encountered: