Mint CLI v1.0.0
We've just released Mint 1.0 which represents a major milestone for Mint. Mint is now considered stable and featureful enough for all production use cases. We've released an immense number of improvements since our generally available release two months ago, and we'll take a look at some of what's new below.
Improved support for Docker
We've added new controls to manage how Docker works inside of your tasks. You can now control whether Mint will persist and cache your Docker data, which enables volume caching and incremental Docker builds inside Mint.
Docker can produce non-deterministic data, which can be problematic in Mint since it results in cache misses for cases in which you'd otherwise have a cache hit. We therefore used to always delete any data produced by Docker at the end of each task. Now, with the new docker: preserve-data
setting, you can opt into keeping Docker's data for use in subsequent tasks. Keeping Docker's data unlocks powerful new features inside Mint while keeping Mint fast and predictable in all cases where you don't need to preserve the data.
Cached Docker images
You can pull Docker images in one task and then use those images in a subsequent task. This allows you to take advantage of Mint's caching with the Docker images you use, which is much faster than pulling the images from Dockerhub!
Cached Docker volumes
If you have expensive database setup that you need to perform before running your test suite, you can now perform that setup in one task and then use the same Docker volume in a subsequent task. With Mint's caching, you'll only perform the database setup when something changes that could affect the database setup, leading to a substantial performance improvement when setting up tasks to run your test suite.
Incremental Docker builds
Combining preserved Docker data with a tool cache allows you to get cache hits within your Docker builds by preserving the Docker build cache across builds.
You can read more about using Docker with Mint in the documentation.
Custom GitHub Apps
We now support supplying your own GitHub app for your Mint runs and dynamically generating access tokens for your self-managed GitHub apps. Combined with vault controls, you can now fine-tune exactly which runs can perform which actions on GitHub, and you can now enable actions on GitHub that were previously impossible, such as managing deployment environments or opening PRs.
You can read more about custom GitHub apps in the documentation.
Improved YAML parser
We rewrote our YAML parser from the ground up to dramatically improve our ability to return actionable error messages when something is configured wrong with your YAML definition. YAML error messages now include the exact file, line, and column number of the error, in addition to being more friendly to read.
Improved log performance
We rewrote our log-handling server and dramatically simplified its infrastructure from one that used a NoSQL database to one that just uses files. As a result, logs now load much faster in the Cloud UI.
Improved Secrets Handling
We replaced our previous secrets handling store with a new store. The new store improves security by encrypting your secrets with an encryption key specific to your organization, and it also provides better tracking around when each secret was last used and who set each secret and when.
New environment variables
Mint now sets several environment variables that help third party tools understand the context in which they are running, including MINT
, MINT_RUN_ID
, and MINT_TASK_ID
. Additionally, we've created new capabilities for tasks to set their own environment variables without affecting the task cache. For example, the mint/git-clone
leaf now sets variables like MINT_GIT_COMMIT_SHA
and MINT_GIT_REF_NAME
.
Improved Agent startup times
We implemented a slate of strategies for pooling agents ahead of time. We now keep both a "hot" pool of already started agents and a "warm" pool of agents that can be started quickly to ensure that no task waits too long before being assigned an agent.
Improved UI performance
We reworked a large portion of the Cloud UI to make it more intelligently load only the data you need. We decreased page load times by 90% in several common cases, including viewing the Run overview page.
Looking forward
We're incredibly excited about what Mint 1.0 represents for us and for the future of Mint. Mint is the fastest CI platform with the best developer experience, and we've still got a lot more on our plate for making it even better, including:
- Improved test result management for parallel tasks
- Easier ways to debug tasks that have already completed
- Additional integrations with services like Slack to make it easy to manage your own notifications
- Support for running tasks with different infrastructure and agent types