mirror of
https://github.com/spice2x/spice2x.github.io.git
synced 2026-08-01 14:20:42 -07:00
60efd643d1
## Description of change Adds `ccache` support for local compiling and Github Actions environments. This significantly speeds up incremental builds, but cold starts will take a little longer to compile. The build script now has an `-i` flag to ignore the build cache if needed. You can also manually delete the `.ccache` folder to force a fresh build too. For the GA workflow, it uses the [`ccache-action`](https://github.com/hendrikmuhs/ccache-action) action to manage and store the cached build objects. This cache should be accessible to all branches. I also removed the `--no-cache` flag when building the `spicetools/spice` image since Docker will automatically invalidate `COPY` layers if it detects the copied files have changed. ### Compile times Compiled with a 7800X3D, 32GB 6000MT/s RAM. | `main` | `ccache` (fresh) | `ccache` (cached) | `ccache` (ignore cache) | |--------|--------|--------|--------| | 2m46.047s | 3m8.886s | 0m32.638s | 2m45.148s | ## Testing Tested incremental builds by using another branch that's rebased on top of this.
5 lines
325 B
Bash
Executable File
5 lines
325 B
Bash
Executable File
#!/bin/bash
|
|
docker build --pull $PWD/external/docker -t spicetools/deps --platform linux/x86_64
|
|
docker build --build-context gitroot=$PWD/../../.git . -t spicetools/spice:latest
|
|
docker run --rm -v $PWD/dist:/src/src/spice2x/dist -v $PWD/bin:/src/src/spice2x/bin -v $PWD/.ccache:/src/src/spice2x/.ccache spicetools/spice "$@"
|