influxdata / influxdata/influxdb
Move build.py functionality into CircleCI config
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
__Proposal:__
The setup, build, test, and s3-push functionality that's wrapped up in the single script `build.py` should be broken out into jobs in CircleCI config.
__Current behavior:__
Currently, the `build` job in circle config runs `test.sh`, which builds a docker container, and then uses that container to run `build.py`, which goes on to perform all CI duties in one fell swoop.
Downsides to this approach
* nested containerization is unnecessary
* rebuilding the docker container inside circle wastes cycles and money
* multiple steps being encapsulated in the python script means that the CI pipeline it represents is not re-entrant
* using a procedural script to do CI is counterproductive to having configuration as code, and defeats the purpose of using Circle
* the python script is based on deprecated python 2
__Desired behavior:__
The various setup, build, test, and deliver functionality defined in the test and build scripts should be broken out into circleCI config.
__Alternatives considered:__
The other alternative would be sticking with the status quo.
__Use case:__
The use case is optimizing the maintainability of the CI process for this repo. See the downsides I've listed above for reasons in support of moving away from the way things are currently done.
Contributor guide
Assessment
This issue has not been assessed yet.