Skip to content

Commit

Permalink
Enforce lockfile is kept up to date (#21739)
Browse files Browse the repository at this point in the history
  • Loading branch information
hramos authored and kelset committed Nov 9, 2018
1 parent 44a3e2f commit 53672ef
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions scripts/circleci/validate_yarn_lockfile.sh
@@ -0,0 +1,39 @@
#!/bin/bash

# Abort the mission if any command fails
set -e

# Allow the script to be invoked from various environments
if [[ -z "${OVERRIDE_YARN_BINARY}" ]]; then
YARN_BINARY=$(command -v yarn)
else
YARN_BINARY="${OVERRIDE_YARN_BINARY}"
fi

REACT_NATIVE_TEMP_DIR=$(mktemp -d /tmp/react-native-XXXXXXXX)

function cleanup {
set +e
rm -rf "$REACT_NATIVE_TEMP_DIR"
set -e
}

function msg {
echo -e " "
echo -e "\\x1B[36m${1}\\x1B[0m";
echo -e "\\x1B[36m${1//?/=}\\x1B[0m"
}

trap cleanup EXIT

cp -R ./package.json "$REACT_NATIVE_TEMP_DIR"
cp -R ./yarn.lock "$REACT_NATIVE_TEMP_DIR"
pushd "$REACT_NATIVE_TEMP_DIR" >/dev/null

if ! $YARN_BINARY --ignore-scripts --silent --non-interactive --mutex network --frozen-lockfile; then
msg "Yarn validation failed."
echo "This means the package.json and yarn.lock disagree in some way."
echo "Try fixing it by running \`yarn\` and committing the changes."
fi

popd >/dev/null

0 comments on commit 53672ef

Please sign in to comment.