-
Notifications
You must be signed in to change notification settings - Fork 78
Switch CI to use Github Actions, run tests in parallel and fast fail when possible #1234
Conversation
Looks awesome. We still need to configure bors dependence, right? |
Do we need each github action job to have it's own name to work with bors? See this discussion Alternatively we can rename the jobs this way |
I haven't configured bors yet as I didn't know how it worked with the status indicator. It seem like you can reference the job name so we'll just have to make those two unique instead of both being named |
The other behavior would be to decide if we only want to run the tests for PR's and not for every push. I think this might be better default, if you need to test some behavior out you can create a draft / WIP PR. |
From what I tested here, the syntax of the status name depends on whether we're using a matrix job or not.
IMO, every push seems unnecessary. Often I find myself doing what @kpamnany does (canceling docs/azure after pushing to not waste resources). It'd be really nice to have a way to trigger incremental tests. Could mergify somehow help? |
if you push now, then its configured to cancel any previous jobs on that branch. |
I'm guessing that is the desired behavior, automatically kill stale jobs only build the latest commit on every branch. I guess my question is if these jobs should only be triggered for PR's and not every branch that get's pushed. |
bors try |
tryBuild failed: |
bors try |
bors try- |
Currently, CI is not triggered for branch pushes and only runs when you open a PR for that branch. I think this behavior is fine. |
I think what Charlie was getting at was if pushes to PRs should always trigger full CI. If we can just do a Linux CI build for pushes to a PR branch and do the full CI on |
bors try |
tryBuild failed: |
bors try |
b5686a8
to
06a54f9
Compare
I think this is ready to go, it has / had the behavior that @kpamnany that you were describing :). I put a reasonable time limit on the jobs as well. |
@charleskawczynski I can add some documentation, where would be the best place to do so? (wiki, docs, etc.?) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So excited for this!
Good question. The badge you can add to the README, this is what I've done in the past for a GHA badge. We could also add a blurb of how this works to the continuous integration section of the contributing docs. But wiki sounds good too. But I don't have strong feelings as to where it belongs (I do like the idea of the badges on the front page though!). |
5e34baf
to
b979b49
Compare
Ok I added some docs describing the current CI checks to |
bors r+ |
lets see how this goes, I'm sure with some experience we'll need to make some tweaks to the config so don't hesitate to raise issues |
1234: Switch CI to use Github Actions, run tests in parallel and fast fail when possible r=jakebolewski a=jakebolewski * Run subset on every push in parallel * Kill jobs that fail quickly * Kill stale jobs quickly upon new commits to a branch * Run all OS unit tests only on bors try / bors merge * Remove Azure Devops Pipelines # Description A clear and concise description of the code with usage. Co-authored-by: jakebolewski <[email protected]>
test-modules: ["Arrays,Atmos,Common,Diagnostics,Driver,InputOutput,Utilities", | ||
"Numerics/DGMethods", | ||
"Numerics/Mesh", | ||
"Numerics/ODESolvers", | ||
"Numerics/SystemSolvers", | ||
"Ocean"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is super neat!
tryTimed out. |
hmm all checks passed but ittlooks like bors was misconfigured to check the status of the github action matrix? It seems stuck in a running state. @simonbyrne / @charleskawczynski any ideas? |
bors.toml
Outdated
@@ -1,5 +1,5 @@ | |||
status = [ | |||
"azure-ci", | |||
"test-os", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"test-os", | |
"test-os (ubuntu-latest)", | |
"test-os (windows-latest)", | |
"test-os (macos-latest)", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it reads the names list on the left side of https://github.com/CliMA/ClimateMachine.jl/runs/766357298
b979b49
to
d3cb2da
Compare
Canceled. |
bors r+ |
1199: Added single stack horizontal statistics and test r=charleskawczynski a=ilopezgp Added horizontal statistics diagnostics for single stack driver and a single stack tutorial of the 3D Burgers equation. Modified plothelpers.jl to admit the xlabel as a keyword argument. # Description A clear and concise description of the code with usage. 1232: Add simple hydrostatic spin-down test for Ocean Model r=blallen a=blallen # Description This PR adds a simple test of the hydrostatic dynamics of the Ocean model. It is intended to be used as the basic test case when implementing the split-explicit time stepper. The analytic solution (and more) can be found in this overleaf: https://www.overleaf.com/project/5e9dfd2716ba2600018de266 Currently, I'm just testing that the solution is within 0.5% of the analytic solution after a day. If anyone has better ideas please suggest them. I'd also like to turn this into a Literature tutorial, so I don't think I want to go the full convergence testing route with this, altho it is possible. 1234: Switch CI to use Github Actions, run tests in parallel and fast fail when possible r=jakebolewski a=jakebolewski * Run subset on every push in parallel * Kill jobs that fail quickly * Kill stale jobs quickly upon new commits to a branch * Run all OS unit tests only on bors try / bors merge * Remove Azure Devops Pipelines # Description A clear and concise description of the code with usage. Co-authored-by: Ignacio <[email protected]> Co-authored-by: Brandon Allen <[email protected]> Co-authored-by: jakebolewski <[email protected]>
Build failed (retrying...):
|
1232: Add simple hydrostatic spin-down test for Ocean Model r=blallen a=blallen # Description This PR adds a simple test of the hydrostatic dynamics of the Ocean model. It is intended to be used as the basic test case when implementing the split-explicit time stepper. The analytic solution (and more) can be found in this overleaf: https://www.overleaf.com/project/5e9dfd2716ba2600018de266 Currently, I'm just testing that the solution is within 0.5% of the analytic solution after a day. If anyone has better ideas please suggest them. I'd also like to turn this into a Literature tutorial, so I don't think I want to go the full convergence testing route with this, altho it is possible. 1234: Switch CI to use Github Actions, run tests in parallel and fast fail when possible r=jakebolewski a=jakebolewski * Run subset on every push in parallel * Kill jobs that fail quickly * Kill stale jobs quickly upon new commits to a branch * Run all OS unit tests only on bors try / bors merge * Remove Azure Devops Pipelines # Description A clear and concise description of the code with usage. Co-authored-by: Brandon Allen <[email protected]> Co-authored-by: jakebolewski <[email protected]>
Build failed (retrying...): |
* Run subset on every push in parallel * Kill jobs that fail quickly * Kill stale jobs quickly upon new commits to a branch * Run all OS unit tests only on bors try / bors merge * Remove Azure Devops Pipelines
d3cb2da
to
c69ff9f
Compare
Canceled. |
bors r+ |
Description
A clear and concise description of the code with usage.
I have
tests/runtests.jl
julia .dev/climaformat.jl .
For review by CLIMA developers
julia .dev/format.jl
has been run in a separate commit.