CI Refactor
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
Here's my tentative plan; feedback welcome of course.
- [x] gh action: check and build docs when a PR or push changes a file in docs/
- [x] b_docs
- [x] chk_pylint
- [x] chk_docs_pragma_min_version
- [x] circleci: remove chk_docs_pragma_min_version from workflow
- [x] gh action: run test_antlr_grammar.sh when a file changes in docs/grammar/
- [x] circleci: remove chk_antlr_grammar from workflow (10m small)
- [x] gh action: scripts/run_proofs.sh when a file in test/formal/ changes
(these are in #16135)
- [ ] circleci: trigger workflow on `run-ci` gh label
- [ ] gh action: apply `run-ci` label automatically for org members
- [ ] gh action: build and test on ubuntu if any files other than { docs/*, *.md, *.txt } changes (this is the simple workflow that will run by default for non-docs external PRs)
- [x] enable ccache/sccache on solc builds https://github.com/argotorg/solidity/pull/16385
We should also consider a less-than-full default workflow for internal PRs. In addition to using fewer circle credits, this will also speed up CI feedback for PRs. I could use some help defining what this should be (if something like this is desirable at all).
Here are the highest-credit jobs in the main workflow, with credit count and cost per job over the past 30 days. Note that the highest monthly usage in the past year was ~5x the past 30 days. Each run of the main workflow costs about $10.30 as it is today, fwiw.
Contributor guide
Research direction
Start by reviewing the existing GitHub Actions and CircleCI workflow definitions, then inspect docs/, docs/grammar/, test/formal/, and scripts/run_proofs.sh to understand the current job boundaries. Compare the unchecked run-ci label and changed-file conditions with the completed migration items; done means the intended workflows trigger correctly, non-docs changes receive the default Ubuntu build and test path, and redundant CircleCI jobs are removed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, shell
- Domain
- build-system, ci-cd, devops
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100