nx-aws is a set of plugins for NRWL NX (a set of Extensible Dev Tools for Monorepos).
A tool for using AWS S3 as a distributed computational cache for Nx.
Install the package by running:
yarn add @nx-aws-plugin/nx-aws-cache
npm i @nx-aws-plugin/nx-aws-cache
Then run the init schematic by running:
yarn nx generate @nx-aws-plugin/nx-aws-cache:init
npm run nx generate @nx-aws-plugin/nx-aws-cache:init
This will make the necessary changes to nx.json in your workspace to use nx-aws-cache runner.
There are two ways to set-up AWS options:
{
"tasksRunnerOptions": {
"default": {
"runner": "@nx-aws-plugin/nx-aws-cache",
"options": {
...
"awsAccessKeyId": "[secret]",
"awsSecretAccessKey": "[secret]",
"awsRegion": "eu-central-1",
"awsBucket": "bucket-name/cache-folder"
}
}
}
NX_AWS_ACCESS_KEY_ID=[secret]
NX_AWS_SECRET_ACCESS_KEY=[secret]
NX_AWS_REGION=eu-central-1
NX_AWS_BUCKET=bucket-name/cache-folder
Additionally, AWS authentication can be set-up using default environment variables or using shared credentials, based on AWS documentation
AWS_ACCESS_KEY_ID=[secret]
AWS_SECRET_ACCESS_KEY=[secret]
[default]
aws_access_key_id = [secret]
aws_secret_access_key = [secret]
Environment variables can be set using
.env
file - check dotenv documentation.
Run yarn nx build nx-aws-cache
to build the plugin. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run yarn nx test nx-aws-cache
to execute the unit tests via Jest.
Run yarn nx affected:test
to execute the unit tests affected by a change.
Run yarn nx e2e nx-aws-cache
to execute the end-to-end tests via Cypress.
Run yarn nx affected:e2e
to execute the end-to-end tests affected by a change.
This repository is based on a similar NX plugin using Azure Storage @nx-azure/storage-cache which was inspired by Nx Cloud Plugin by Nrwl.