Open feisuzhu opened 2 years ago
Dapper now provides Go SDK, dev may use Go to describe its CICD
According to the document, containerization w/ GPU on Windows is non-feasible now(requires CUDA & OpenGL). Moving all workloads to bare metal on Windows.
This is an on-going work primarily to reduce CI/CD build time and improve maintainability. Discussions and feature requests are welcome.
The status quo
Buildbots
Pipeline
release.yml
: Build nightly wheels, run complete tests, upload to pypi. GA releases also goes here.testing.yml
: Build PR and master, run partial or complete tests.perf.yml
: Performance monitoring, only run on master.Problems
Code & logic duplication
release.yml
is largely the same withtesting.yml
except publishing and different build matrix.Slow build
Latency !
Wasted cycles & bandwidth on same things
Perf Monitoring
andAndroid Demo
needs to compile taichi binary separately.ti.init()
dominates test case time consumptionBuildbot cluster of a low capacity
Under-utilized buildbot cluster
Strong coupling with GitHub Actions
Non-reproducible building environment (partially addressed)
Minor mess
Proposed changes
[ ] Cluster shared caching mechanism
sccache
running at cluster scaleccache
becausesccache
can't recognize a particular compiler option.[x] apt & pip caching proxy
[x] Home grown git clone caching proxy
soft2d
as well.[x] Adding new buildbots
Go distributed
[ ] Distributed compiling
sccache
running at cluster scale (sccache
can do both caching and distributed compiling)[ ] Distributed testing
[x] Runner roles
[ ] Migrate to dagger (or other similar solutions)
[x] Drop github hosted runners
[x] Infrastructure states condense into ansible code
sccache
andredis
infrastructures[ ] Containerize all the things !
sickcodes/Docker-OSX
Miscellaneous
Non-goals
Virtualization &&/|| Kubernetes integration