-
Notifications
You must be signed in to change notification settings - Fork 13
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
Automatically build and test RDASPP (Hera: using role.rrfs-fv3-cam, Jet: using role.wrfruc) #177
Comments
@guoqing-noaa I remember that inherited CI function from GDASApp. @TingLei-daprediction, @CoryMartin-NOAA and @delippi used to work on this. We need to add this function to role account. Let's discuss this later. |
@ShunLiu-NOAA Thanks for the information! It looks like we do have some scripts there under the @CoryMartin-NOAA Could you help us understand how GDASApp launches CI tests on RDHPCS? Through a cron job or through other mechanism like Jenkins? Thanks! |
@guoqing-noaa I'm open to helping with this but I will wait for others to chime in with thoughts. |
Update on this: The RDHPCS admin confirmed that we don't have Jenkins server on any RDHPCS and no CI/CD through github allowed on on-prem systems (although RDHPCS cloud is allowed)
Although we may use https://github.com/jenkinsci/jenkinsfile-runner but that loses the benefits of a Jenkins server which can trigger CI/CD automatically. So, @SamuelDegelia-NOAA let's go ahead to implement the cron-job based CI/CD. |
I can understand that we do ctests inside the RDASApp. But why we want to put the |
@guoqing-noaa Let's discuss this after I collect more information from EMC collogues. |
I've set up cron jobs (every 5 minutes) on the following platforms using the corresponding role accounts:
Once a PR gets two approvals and is ready for a potential merge, the repo maintainers manually add 'test_hera', I tried this automatic build_and_test on a fork: NOTE: there are NO changes to the RDASApp repo itself. |
To clarify, this is NOT the normal CI/CD we would usually expect (i.e. no Jenkins step at the moment). But we will use this to automatically build and test every PR until a streamlined CI/CD is in place. |
@guoqing-noaa great progress. |
update on this: @ShunLiu-NOAA @SamuelDegelia-NOAA and I had a tag up today and we decided to test drive the CI tests on RDASApp. The first try was on PR #175 and it worked well. Also, as Sam suggested, the cron job at different HPCs will automatically remove the corresponding testing directory once a PR is merged. The code management policy was updated accordingly. |
Just to chime in here, but I think you all figured most of it out. The capability is using a cron job with GitHub CLI that checks for labels attached to open pull requests, and if the labels match, run tests, if the tests pass or fail, a new label is applied. I'm happy to discuss details on how it works for the global. |
@CoryMartin-NOAA Thanks for the information. |
I would expect it will take at least 6 months (or even longer) to establish CI tests for RDASApp (through Jenkins, I think).
Before that, we still need some kind of automatic build and test of RDASApp to eliminate mergers' manual testing before a PR merge. (if a PR does NOT change the build behavior nor change the codes, we can skip this build_and_test process).
And we can establish this functionality right now.
The general idea is to set a crontab job on Hera/Jet/Hercules. It runs every 5 minutes, use the Github command line tool to check current available PRs which has already been marked with a label "read_to_build_test" and then clone that PR, build, run rrfs tests, post the test results to the PR webpage. If succeeded, add a label "hera_passed"; if failed, add a label "hera_failed" (similar things for jet, hercules).
@SamuelDegelia-NOAA Are you interested in working on this together?
The text was updated successfully, but these errors were encountered: