Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@holidayextras/deployment-helpers

Package Overview
Dependencies
Maintainers
2
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@holidayextras/deployment-helpers - npm Package Compare versions

Comparing version
1.4.1
to
1.4.2
+75
nodeApps/cachedInstallModules.sh
#!/bin/bash
set -e
# Configure this script with options under a `nodeModuleCaching`
# config key in package.json:
# config: {
# nodeModuleCaching: {
# ...options
# }
# }
# You can provide a `strategy` to store a hash of the package.json
# in with the node_modules directory. If, on a repeat build, the CI
# service's cached node_modules directory contains a file matching
# the current hash, the `npm install` step can be skipped. If it
# differs we can take one of two options:
# "clear" will completely delete the node_modules directory and install
# a fresh one if the package.json changes. This is slower, but more
# predictable than the "prune" strategy, and will pick up updates
# to modules that still satisfy the specified version ranges.
# "prune" will install into the cached directory then run `npm prune` to
# remove unused modules. It is faster, but generates a less predictable
# tree (over time) than the "clear" strategy, and will not pick up
# updates to modules if the installed version satisfies the specified
# version ranges.
# Empty or unknown values will simply run npm install on every build.
STRATEGY=$npm_package_config_nodeModuleCaching_strategy
# Set an `npmVersion` to install a newer npm version, like (at time of writing) npm 3.
NPM_VERSION=$npm_package_config_nodeModuleCaching_npmVersion
if [ -n "$NPM_VERSION" ]; then
echo "npm caching: installing npm@$NPM_VERSION"
npm install -g npm@$NPM_VERSION
fi
if [[ "$STRATEGY" == "prune" || "$STRATEGY" == "clear" ]]; then
MODULE_HASH_FILE="./node_modules/modules.sha"
CURRENT_SHA=`cat package.json | openssl dgst -sha256`
if [ -f $MODULE_HASH_FILE ]; then
CACHE_SHA=`cat $MODULE_HASH_FILE`
fi
echo "npm caching: comparing current package.json sha to cached sha"
echo "cached: $CACHE_SHA, current: $CURRENT_SHA"
if [ "$CACHE_SHA" == "$CURRENT_SHA" ]; then
echo "npm caching: skipping install step"
else
if [ "$STRATEGY" == "clear" ]; then
echo "npm caching: installing modules into empty directory"
rm -rf node_modules
npm install
fi
if [ "$STRATEGY" == "prune" ]; then
echo "npm caching: installing modules into cached directory"
npm install
npm prune
fi
echo "npm caching: updating cache sha"
echo $CURRENT_SHA > $MODULE_HASH_FILE
fi
else
echo "npm caching: defaulting to `npm install`"
npm install
fi
+9
-6

@@ -42,8 +42,11 @@ #!/bin/bash

npm run build
git add dist
git status
if [[ -n $(git status -s) ]] ; then
echo "Updated dist needs committing"
git commit -m "Added new dist for version ${THIS_VERSION}"
git push origin ${RELEASE_BRANCH}
# If a new dist dir has been built we may need to commit it
if [ -d dist ]; then
git add dist
git status
if [[ -n $(git status -s) ]] ; then
echo "Updated dist needs committing"
git commit -m "Added new dist for version ${THIS_VERSION}"
git push origin ${RELEASE_BRANCH}
fi
fi

@@ -50,0 +53,0 @@

+1
-1
{
"name": "@holidayextras/deployment-helpers",
"version": "1.4.1",
"version": "1.4.2",
"description": "A collection of scripts that can be used as part of a deployment process.",

@@ -5,0 +5,0 @@ "main": "",

# Deployment Helpers
This project holds various deployment scripts that are used with AWS CodeDeploy and releasing our private NPM modules.
## Node Apps

@@ -8,1 +10,35 @@

This will check if the `package.json` version has been updated for a project and then create a new release on github after running `npm build` and commiting any changed release assets in the `dist` directory.
### `cachedInstallModules.sh`
This can speed up installation of node modules on hosted CI. It stores a hash of the `package.json` into the node_modules directory and uses it to determine if we may need to reinstall. Alongside this, it can automatically upgrade `npm`, and wipe out the cached node_modules directory if `package.json` has changed (to ensure unused modules are removed, and that new releases satisfying the current version range are updated to).
Use and configure with package.json:
```
"scripts": {
"install:cached": "rm -rf ./deployment-helpers && git clone https://github.com/holidayextras/deployment-helpers.git && ./deployment-helpers/nodeApps/cachedInstallModules.sh"
},
"config": {
"nodeModuleCaching": {
// "clear", "prune" or omit.
// "clear" is slower, but will pick up all available updates to modules
// "prune" is faster, but will continue using already-cached modules if
// they still satisfy the range. Extraneous modules are removed.
// If omitted, the usual approach of simply running `npm install` is used,
// which will not install available updates or remove extraneous modules.
"strategy": "clear",
// Which npm version to install. Omit to use the existing default.
"npmVersion": 3,
// Increment this optional key to invalidate the current module cache, without
// resorting to hacks like adding whitespace to the end of package.json
"incrementToForceUpdate": 1
}
},
```
## Releasing to NPM
We currently use a combination of npm version 1 and above, because of this we can not scope the package name in the `package.json`, when a new NPM release is required please add the scope to the package name (`@holidayextras/deployment-helpers`) manually before running `npm publish`.