Skip to content

Task runner for @nrwl/nx with remote caching using AWS S3

Notifications You must be signed in to change notification settings

manfredsteyer/nx-remotecache-s3

 
 

Repository files navigation

nx-remotecache-s3

A task runner for @nrwl/nx that uses an Amazon S3 bucket as a remote cache, so all team members and CI servers can share a single cache. The concept and benefits of computation caching are explained in the NX documentation. This is a fork of nx-remotecache-gcs.

Setup

npm install --save-dev nx-remotecache-s3

Create a S3 bucket. Since this is only a cache, there is no need for a dual- or multi-region bucket, so choose a single location near you.

aws s3 mb s3://[BUCKET_NAME] --region [BUCKET_LOCATION]

setup a lifecycle rule for your storage bucket to automatically delete old files. If you want to use our suggested auto-delete-after-30-days rule, you can simply use the json that is included:

aws s3api put-bucket-lifecycle-configuration --bucket [BUCKET_NAME] --lifecycle-configuration file://node_modules/nx-remotecache-gcs/lifecycle.json

You can also restrict who can read and write to the bucket to only allow certain users or (build server) service accounts.

finally, add tasksRunnerOptions in your nx.json file

{
    "projects": {
        ...
    },
    "tasksRunnerOptions": {
        "default": {
            "runner": "nx-remotecache-s3",
            "options": {
                "bucket": "NAME-OF-YOUR-STORAGE-BUCKET",
                "region": "BUCKET-REGION",
                "profile": "AWS-CLI-PROFILE-NAME",
                "cacheableOperations": [
                    "build",
                    "test",
                    "lint",
                    "e2e"
                ]
            }
        }
    }
}

run a build and see if files end up in your cache storage bucket:

nx run-many --target=build --all

About

Task runner for @nrwl/nx with remote caching using AWS S3

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 100.0%