Using GitHub Actions on the Stan Math library

GitHub Actions has been around for a bit and we can use it to automate some tasks. See: https://github.com/features/actions.

Should we brainstorm some ideas for how it can make it easier for us (us = Stan Math devs)?

To start:

  • automatically update release notes when a PR / issue is in the right format
  • add tags to issues based on text
  • assign new issues to the latest milestone
2 Likes

Is there a way to make it easy to make stan/cmdstan/stanc3 issues for things in Math? I know last release there were some math additions that didn’t work their way down the pipeline.

1 Like

Yes! We can do that.

1 Like

One thing we can do with Github Actions is use it for running tests with the Windows RTools 3.5 toolchain, which uses our minimum required compiler. That would enable us to move the Jenkins Windows agents to RTools 4.0 without needing to leave RTools 3.5 users in the dust.

Github Actions is free for public repositories, but the tests are a bit slower than the ones run on Jenkins agent. We can run them on pull request or only on merges to develop. I think the latter would be plenty enough, given that the changes of things working with RTools 4.0 but not with 3.5 are slim.

@syclik would you be ok with that?

Here is a WIP PR for adding those tests for anyone interested in seeing how it would look: https://github.com/stan-dev/math/pull/1898

EDIT: we could also just use this at the model level to make sure Stan models still compile on Win. with Rtools 3.5

Yes, happy with that if we can get it working! Just knowing that something breaks a future requirement is useful to know.

It won’t be considered a true blocker, but we might as well track it down if we know it’s breaking. Over the years, we’ve added and removed tests to check for weird compiler versions.

1 Like

Its working. See https://github.com/stan-dev/math/actions/runs/110718316

At the moment its split in 4 jobs, though we could easily make it two:

  • fwd, mix
  • the rest

If we decide to only run this on merges to develop, we could also only have 1 job that runs for ~4 hours. Since its not a bottleneck there is not really a huge difference how long it takes.

1 Like