@zeeko/nx-remotecache-minio
Version:
Remote caching for @nrwl/nx using Minio Storage
89 lines (73 loc) • 4.81 kB
Markdown
[](https://www.npmjs.com/package/nx-remotecache-minio)
# nx-remotecache-minio
A task runner for [/nx](https://nx.dev/react) that uses an Minio Storage as a remote cache. This enables all team members and CI servers to share a single cache. The concept and benefits of [computation caching](https://nx.dev/angular/guides/computation-caching) are explained in the NX documentation.
This package was built with [nx-remotecache-custom](https://www.npmjs.com/package/nx-remotecache-custom) 🙌
## Setup
```
npm install --save-dev nx-remotecache-minio
```
| Parameter | Description | Environment Variable / .env | `nx.json` |
| ---------- |-------------------------------------------------------------------------| ---------------------------- | ----------- |
| Access Key | Connect to an MinIO Storage blob via a single URL. | `NXCACHE_MINIO_ACCESS_KEY` | `accessKey` |
| Secret Key | Use together with Account Key for MinIO Credentials Authentication | `NXCACHE_MINIO_SECRET_KEY` | `secretKey` |
| URL | Use together with Account Name for MinIO Credentials Authentication | `NXCACHE_MINIO_URL` | `url` |
| Bucket | Required. Specify which container should be used for storing the cache. | `NXCACHE_MINIO_BUCKET` | `bucket` |
| Region | Optional. Specify the location of the storage e.g. "us-west-1". | `NXCACHE_MINIO_REGION` | `region` |
| PathStyle | Optional. Set to `false` to use virtual host style. | `NXCACHE_MINIO_PATH_STYLE` | `pathStyle` |
```json
{
"tasksRunnerOptions": {
"default": {
"runner": "nx-remotecache-minio",
"options": {
// All of the minio specific options can also be inserted via environment variables! ⬆️
"accessKey": "minioadmin",
"secretKey": "minioadmin",
"url": "http://192.168.0.221:9000",
"bucket": "nx-cache",
"region": "us-west-1", // optional
"cacheableOperations": ["build", "test", "lint", "e2e"]
}
}
}
}
```
## Run it 🚀
Running tasks should now show the storage or retrieval from the remote cache:
```
------------------------------------------------------------------------
Built Angular Package
- from: /Users/name/example-workspace/libs/example-lib
- to: /Users/name/example-workspace/dist/libs/example-lib
------------------------------------------------------------------------
------------------------------------------------------------------------
Stored output to remote cache: Minio Storage
Hash: d3d2bea71ea0f3004304c5cc88cf91be50b02bb636ebbdfcc927626fd8edf1ae
------------------------------------------------------------------------
```
## Advanced Configuration
| Option | Environment Variable / .env | Description |
| ------------ | --------------------------- | ----------------------------------------------------------------------------------------------------- |
| `name` | `NXCACHE_NAME` | Set to provide task runner name for logging. Overrides name provided in implementation. |
| `verbose` | | Set to receive full stack traces whenever errors occur. Best used for debugging. **Default:** `false` |
| `silent` | | Set to mute success and info logs. **Default:** `false` |
| `read` | `NXCACHE_READ` | Set to enable / disable reading from the remote cache. **Default:** `true` |
| `write` | `NXCACHE_WRITE` | Set to enable / disable writing to the remote cache. **Default:** `true` |
| `dotenv` | | Set to `false` to disable reading `.env` into `process.env`. **Default:** `true` |
| `dotenvPath` | | Set to read `.env` files from a different folder. |
```json
"tasksRunnerOptions": {
"default": {
"options": {
"name": "My Storage",
"verbose": true,
"silent": true
}
}
}
```
## All Custom Runners
| Runner | Storage |
| -------------------------------------------------------------------------- | ------------------- |
| [nx-remotecache-azure](https://www.npmjs.com/package/nx-remotecache-azure) | Azure Blob Storage |
| [nx-remotecache-minio](https://www.npmjs.com/package/nx-remotecache-minio) | MinIO Storage |