Hi all, Since I have toyed with GitHub actions a bit, here are my notes and thoughts on that topic:
* So far, I've managed to get all our tests working with GitHub Actions. You can find the configuration at: https://github.com/cs-shadow/buildstream/blob/master/.github/workflows/ci.yml. Everything that I haven't ported is mostly because I haven't had time to do that yet. I don't see any big missing features that'd prevent us from adopting Actions. They do support persisting artifacts, scheduled jobs etc so I think we are covered. You will also find more of my notes and rants in the above mentioned ci.yml file. * This is still early days for GitHub Actions, and that shows mostly in the UX area. I've seen their live logs start and stop at random places. Sometimes errors are only visible in the "raw logs" and not the pretty logs. I expect this to get better with time. However, the worst issue I noticed was that sometimes test jobs can stop halfway through without any warnings or errors. And the job is marked with the success status. It's on my to-do list to report this issue through proper channels (once I find out what those are). * Since we will have a public repository, we qualify for "free" and "unlimited" actions. I am sure both those terms come with associated fineprint. So far, it seems like Actions could cope up with ~4-5 pipelines in parallel (each with 7-8 jobs). I am not sure whether the free tier will be able to keep up with our load once we start getting real patches on GitHub. If not, we may need to add some custom runners (similar to what we have on GitLab). * In terms of performance, I noticed that even these free runners do better than our GitLab runners. When things are going well, running the full testsuite takes ~15 mins on GitHub vs ~25 mins on GitLab. > Besides code and CI, we will also need to migrate issues and > documentation. I think it's important to migrate issues at the same > time as code/PRs to properly handle issue references/links. There is a > `node-gitlab-2-github` project [1], which may be helpful, however, I'm > not familiar with it myself. Jürg, I definitely agree. I just tried on node-gitlab-2-github my test BuildStream repo and it seems to work for the most part. It is still chugging along on my machine, and hasn't finished a full run yet. But, you can still see the results at: https://github.com/cs-shadow/buildstream/issues. There's an obvious catch here - all issues seem to have been created by my user. This is expected because it only has my access token so it can only do operations as my user. It hasn't got to merge requests yet, but I expect they'd also be created as my user. Having said that, it does add one line at the top of each comment, with details about the original author and time. For example, "In GitLab by @tristanvb on Apr 28, 2017, 08:54". Unfortunately this tool doesn't remap issue/merge request references (as mentioned in their README). So, references to issues (like #42) and merge requests (like !42) are not remapped to their new numbers. This is something that _could_ be automated if we want to spend some time writing a patch for node-gitlab-2-github. Cheers, Chandan
