exercism / exercism/arm64-assembly-test-runner
Reduce image size
- Dominant language
- Shell
- Stars
- 0
- Forks
- 4
- Avg merge
- 7h 15m
- Merged PRs (30d)
- 1
Description
The current runner image was the best compromise of reasonable size and low effort for setting it up. However, it is still ~350 MB, which is a lot for what it does. It should be possible to bring it down to under 100 MB by using something like alpine as a base and building a custom GCC. Maybe we could even use something like [tcc](https://bellard.org/tcc/) to get it even smaller. After all, we only need C for the tests, so tcc would most probably suffice.
Also, we add > 40 MB for Python which we only use to read the test output and turn it into the expected JSON format. Using some compiled language to produce a binary we should get away with much less. C++ would be quite easy for this, we could even keep the regular expressions we currently have in Python. This could happen in a two-stage image build, so only the final executable would end up in runner image.
@keiravillekode What do you think?
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue does not name files or tests. Start by locating the runner image definition and the Python step that reads test output and produces expected JSON; compare the current image contents with the proposed compiler and conversion approaches. Done means reducing the runner image below 100 MB while preserving the existing test behavior and JSON output.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, docker, python
- Domain
- build-system, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100