Custom scripts
Serverless Framework runs three primary operations on your repository when you have CI/CD configured: (1) install NPM packages via npm install
, (2) run tests, if present, with npm test
, and (3) deploy your service using sls deploy
. You can run custom scripts before or after each of these steps if you need to customize the pipeline further.
To run custom scripts before & after NPM install and running tests, use the lifecycle hooks built into scripts
of your package.json
file. The preinstall
, postinstall
, pretest
, and posttest
, scripts are run automatically at each of these steps.
To run custom scripts before or after deployment, you can use the serverless-plugin-scripts plugin to run the scripts at various points of the serverless deploy
lifecycle, including before deployment and on finalize.
Before npm install
To run a script before npm install
, set the script in preinstall
in your package.json
.
{ "name": "demo-serverless", "version": "1.0.0", "scripts": { "preinstall": "<your script>" }}
After npm install
To run a script after npm install
, set the script in postinstall
in your package.json
.
{ "name": "demo-serverless", "version": "1.0.0", "scripts": { "postinstall": "<your script>" }}
Before npm test
To run a script before npm test
, set the script in pretest
in your package.json
.
{ "name": "demo-serverless", "version": "1.0.0", "scripts": { "pretest": "<your script>" }}
After npm test
To run a script after npm test
, set the script in posttest
in your package.json
.
{ "name": "demo-serverless", "version": "1.0.0", "scripts": { "posttest": "<your script>" }}
Before serverless deploy
To run a script before serverless deploy
starts the deployment add this to your serverless.yml
.
plugins: - serverless-plugin-scriptscustom: scripts: hooks: 'before:deploy:deploy': <your script>
After serverless deploy
To run a script after serverless deploy
completes a deployment add this to your serverless.yml
.
plugins: - serverless-plugin-scriptscustom: scripts: hooks: 'deploy:finalize': <your script>
Additional lifecycle hooks
NPM provide additional lifecycle hooks you can run as well, additional documentation can be found here, https://docs.npmjs.com/misc/scripts.
Serverless Framework provides additional lifecycle hooks as “serverless deploy” is running, you can find more information about additional hooks in the serverless-plugin-scripts docs.