influxdata / influxdata/influxdb

Move build.py functionality into CircleCI config

Open
#21,130 0 comments 0 reactions 1 assignee Claimed by @codyshepherd View on GitHub
1.x area/build area/packaging area/tests area/tooling cd kind/tech-debt team/edge
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.