mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
41 lines
1.4 KiB
Bash
41 lines
1.4 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -e
|
||
|
set -u
|
||
|
set -o pipefail
|
||
|
|
||
|
PR_NUMBER="${CIRCLE_PULL_REQUEST##*/}"
|
||
|
if [ -n "$PR_NUMBER" ]
|
||
|
then
|
||
|
IS_DRAFT="$(gh pr view --json isDraft --jq '.isDraft' "$PR_NUMBER")"
|
||
|
else
|
||
|
IS_DRAFT='false'
|
||
|
fi
|
||
|
|
||
|
# Build query to see whether there are any "preview-like" packages in the manifest
|
||
|
# A "preview-like" package is a `@metamask`-scoped package with a prerelease version that has no period.
|
||
|
QUERY='.dependencies + .devDependencies' # Get list of all dependencies
|
||
|
QUERY+=' | with_entries( select(.key | startswith("@metamask") ) )' # filter to @metamask-scoped packages
|
||
|
QUERY+=' | to_entries[].value' # Get version ranges
|
||
|
QUERY+=' | select(test("^\\d+\\.\\d+\\.\\d+-[^.]+$"))' # Get pinned versions where the prerelease part has no "."
|
||
|
|
||
|
# Use `-e` flag so that exit code indicates whether any matches were found
|
||
|
if jq -e "${QUERY}" < ./package.json
|
||
|
then
|
||
|
echo "Preview builds detected"
|
||
|
HAS_PREVIEW_BUILDS='true'
|
||
|
else
|
||
|
echo "No preview builds detected"
|
||
|
HAS_PREVIEW_BUILDS='false'
|
||
|
fi
|
||
|
|
||
|
if [[ $IS_DRAFT == 'true' && $HAS_PREVIEW_BUILDS == 'true' ]]
|
||
|
then
|
||
|
# Use GitHub registry on draft PRs, allowing the use of preview builds
|
||
|
echo "Installing with preview builds"
|
||
|
METAMASK_NPM_REGISTRY=https://npm.pkg.github.com yarn --immutable
|
||
|
else
|
||
|
echo "Installing without preview builds"
|
||
|
yarn --immutable
|
||
|
fi
|