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 nightly/cronjob CI #2718

Closed
Manishearth opened this issue Oct 4, 2022 · 7 comments · Fixed by #2836
Closed

Add nightly/cronjob CI #2718

Manishearth opened this issue Oct 4, 2022 · 7 comments · Fixed by #2836
Assignees
Labels
C-process Component: Team processes C-test-infra Component: Integration test infrastructure T-techdebt Type: ICU4X code health and tech debt

Comments

@Manishearth
Copy link
Member

Manishearth commented Oct 4, 2022

While we shouldn't run every PR on this, we should set up a "nightly" CI that:

  • runs every night
  • runs the normal CI build (but on the latest Rust nightly). Warnings are disabled (i.e. the clippy job is skipped)
  • runs additional jobs like make full-data, or running clippy with the pinned nightly, or whatever.

I think the way to do this would be to:

  • Update all of cargo-make to use cargo-make env vars. Allow it to be overridden with a real world NIGHTLY_RUST_OVERRIDE variable
  • Make all other users of nightly rust in this repo respect this key (it's one gnu makefile and one rust script)
  • Use on.schedule.cron = "/7 * * * * " or whatever in build-test.yml
  • Every step in build-test.yml starts off with a step that:
  • Additionally add a nightly-only.yml that contains full-data (and other stuff?)
    • We could also just include this in build-test.yml and make the specific task conditional on cron.
@sffc
Copy link
Member

sffc commented Oct 4, 2022

Another way to configure it would be a webhook that gets triggered on a periodic basis or whenever there's a new Rust Nightly. There are lots of ways we can set up a webhook.

@Manishearth
Copy link
Member Author

Hitting sagiegurari/cargo-make#722 when I try to do an override situation

@Manishearth Manishearth changed the title Add nightly CI Add nightly/cronjob CI Oct 4, 2022
@sffc sffc added C-test-infra Component: Integration test infrastructure C-process Component: Team processes T-techdebt Type: ICU4X code health and tech debt labels Oct 17, 2022
@sffc sffc added this to the ICU4X 1.x Untriaged milestone Oct 17, 2022
@robertbastian
Copy link
Member

Actually why nightly? Seems like we should be testing on beta, which prepares us for the next stable release, but isn't as unstable as nightly.

@Manishearth
Copy link
Member Author

@robertbastian immediate notification of breakages so we have time to report stuff upstream and get it fixed if we need without asking for uplifts.

@Manishearth
Copy link
Member Author

I want to be using the most unstable thing here.

Also people will use icu4x from nightly and I want it to work as much as possible. It should, nightly is reasonably stable now, but there are still occasional moments especially since we do some weird stuff.

@robertbastian
Copy link
Member

Just as a data point, 39 out of 78 nightly CI runs have failed. Given those numbers the bot might be a bit spammy.

@Manishearth
Copy link
Member Author

@robertbastian well, most of that was before we had the notifier, so we had a breakage stay broken for quite a while. We've only had two total breakages in those 78 runs, just that one was out of our hands to fix and we had to wait a while, and the other went unnoticed for a while. 2 out of 78 isn't bad.

I'm also fine with the bot being that spammy, I want to fix things when they break. The cost is just a message in Slack.

Basically we have two kinds of breakages: ones we can fix and ones we can't. For the ones we can fix hopefully they get fixed before the next time the bot complains (but otherwise they'll be fixed at most a couple complaints later), it's really the other ones that are the problem but rustc tends to take less than a week to fix those and I'm fine with that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-process Component: Team processes C-test-infra Component: Integration test infrastructure T-techdebt Type: ICU4X code health and tech debt
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants