mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 18:00:18 +01:00
36b1991b44
The CI job `prep-deps` was broken in #20096 for forks and non-PR builds (e.g. the `develop` branch builds). Non-PR builds were broken because of the `set -u` flag, which complained about a PR-specific environment variable being unset. Fork builds were broken because the draft check relied upon secrets (which aren't included in CI runs on forks). The script is now tolerant of missing environment variables, and skips the draft check for forks.
43 lines
1.4 KiB
Bash
Executable File
43 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
set -o pipefail
|
|
|
|
IS_NON_FORK_DRAFT='false'
|
|
|
|
if [[ -n $CIRCLE_PULL_REQUEST ]] && gh auth status
|
|
then
|
|
PR_NUMBER="${CIRCLE_PULL_REQUEST##*/}"
|
|
if [ -n "$PR_NUMBER" ]
|
|
then
|
|
IS_NON_FORK_DRAFT="$(gh pr view --json isDraft --jq '.isDraft' "$PR_NUMBER")"
|
|
fi
|
|
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_NON_FORK_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
|