Migrate CI workflow from CircleCI
This PR uses a modified output from the GitHub Actions Importer to migrate all workflows from CircleCI to GitHub Actions itself.
By using GitHub Actions, we can ensure that CI can be managed adjacent to code without needing to depend on a third party service (CircleCI), and integrates it natively into GitHub (on PRs etc).
You'll need to create 3 actions secrets to make this config work. These secrets are stored as MASTER_KEY, COVERALLS_REPO_TOKEN and DEV_SSH_KEY in CircleCI env vars. Add the actions secrets with same name and value as the CircleCI env vars.
As this is a test of the migration tool, the migrated workflow will still be using CircleCI docker images, at least for now. We can migrate to alternatives once we feel comfortable with having integrated actions in GitHub.
Info: is there a particular reason we should move out of Circle?
Info: is there a particular reason we should move out of Circle?
There's been a general trend to simplify Codidact's operations and reduce dependencies on external services/credentials, which add additional complexity and are used for only a limited purpose.
In early Jan, CircleCI had a security incident impacting GitHub tokens: https://circleci.com/blog/jan-4-2023-incident-report/
In light of the above information, I think it may be prudent to either move out of CircleCI or at least give sufficient consideration to that course of action.
This has diverged from the Circle workflow now - we also have system tests, and both tests and system tests are run against ruby 2.7 and 3.1.
@ArtOfCode- I think it may still be valuable to switch over to GitHub actions. Updating this PR to match should not be too difficult as it contains sort of the same information (and still uses CircleCI's docker images).