Speed up tests to ~3 minutes. (#316)
* Speed up tests to ~3 minutes. * Allow for the possibility that we might not have a test plugin in all envs. * Make SuffixTrie implementation Python 3.7-compatible. * More Python 3.7 compatibility fixes. * Windows compatibility. * More Windows compatibility * More * Make test output less verbose. * Only kill process if necessary. * Can we fix Windows? * Increase window launch timeout for CI. * Just skip that test on Windows. * Disable verbose test logs to speed things up even more. * Add ccache and object caching per-build. * Fix yml. * Install ccache. * Install ccache over here, too. * Can we use the default compiler? * Guess I have to explicitly specify gcc and g++. * Properly set up dependencies between build and cache. * D'oh. * Install ccache on mac runners. * Debug ccache. * Re-enable build logging. * Avoid cache-busting across different Python versions. * Missing ccache again. * Make ccache less picky. * Getting closer and closer to 'too many hacks' territory now... * Upload ccache debug info. * ccache debug debugging. ccache. * Use newer ccache. * 'Linux' * Different flags for GNU tar... * chmod +x * D'oh. * Also use ccache for Asan builds. * Re-enable more builds. * Remove unnecessary Windows steps. * One more Windows fix... * Add more ccache_ignoreoptions to get a better test cache hit ratio. * Whoops. * Run initial tests on 8 parallel machines to get faster feedback. * Lint. * Why is macOS still not caching? * Faster still, with more debug info... * Cache final library .so files to avoid unnecessary linking. * Attempt to fix macOS build caching by allowing preprocessor to run. * Output cache directory. Why is the built object not being found? * Search the right variable for -arch arm64. * More debug info. I wonder if anybody is reading these messages. * Let this run over lunch. Let's see what happens. * Try to avoid breaking the build cache in separate jobs. * Use find -exec touch instead of touch itself. * Use ARCHFLAGS. Come on. Not documented anywhere. * Speed up Asan builds too. * Get windows build working. * This one too. * Print out more ccache debug info. * Zero ccache stats once shown. * Switch to Ruff. * More log output. * Disable ccache inode caching. * Include JUCE objects in cache directly, as ccache isn't cooperating. * Reduce test requirements by moving doc requirements to the appropriate file. * Disable LTO for tests. * I guess we do need MyPy in test, right. * Closer... * Stay on x86-64 for now. * List all objects before creating the cache. * Explicitly cache temp object files that are compatible across Python versions. * Close, but not touching * Update action versions. * Disable the ccache compiler check. * Remove the inode cache again * Maybe this will turn into a great blog post one day. * Whoops. * MACOSX_DEPLOYMENT_TARGET. That was it, maybe? * Higher deployment target.
P
Peter Sobot committed
08bbe8ba28ea043041bee8cc42ab3d99e8b0021d
Parent: 98efdb9
Committed by GitHub <noreply@github.com>
on 4/26/2024, 6:37:44 PM