diff --git a/.github/actions/cache-bootstrap/action.yml b/.github/actions/cache-bootstrap/action.yml index 72c03ba8f2..d1e7cc7d6b 100644 --- a/.github/actions/cache-bootstrap/action.yml +++ b/.github/actions/cache-bootstrap/action.yml @@ -9,27 +9,25 @@ inputs: runs: using: composite steps: - # for always overriding cache, use: pat-s/always-upload-cache@v2.1.5 + # for always overriding cache, use: pat-s/always-upload-cache@v2.1.5 - uses: actions/cache@v2 id: cache with: path: | node_modules */*/node_modules - key: ${{ runner.os }}-yarn-${{inputs.extension}}-v6-${{ hashFiles('**/yarn.lock') }} - # We want to only bootstrap and install if no cache is found. + key: ${{ runner.os }}-yarn-${{inputs.extension}}-v6-${{ hashFiles('**/yarn.lock') }} + # We want to only bootstrap and install if no cache is found. # Futhermore, we might want to do a partial, hoisted, bootstrap towards # the base branch if it exists, otherwise we choose develop for this. - + # yarn install --frozen-lockfile - run: | - yarn install --frozen-lockfile if [[ "${{steps.cache.outputs.cache-hit}}" != "true" || "${{inputs.partial}}" != "true" ]]; then + yarn install --frozen-lockfile yarn bootstrap --concurrency=2 elif [[ "${{inputs.partial}}" = "true" ]]; then [[ ! -z "${GITHUB_BASE_REF}" ]] && ref="${GITHUB_BASE_REF#refs/heads/}" || ref="develop" - yarn bootstrap --npm-client=npm --hoist --since "origin/${ref}" --concurrency=2 + yarn bootstrap --npm-client=npm --hoist --since "origin/${ref}...HEAD" --concurrency=2 fi shell: bash - - diff --git a/scripts/assert-changed-files.sh b/scripts/assert-changed-files.sh index 4f5833cc14..2a45a8f650 100755 --- a/scripts/assert-changed-files.sh +++ b/scripts/assert-changed-files.sh @@ -21,16 +21,20 @@ if [ "$IS_CI" = true ]; then git config --local --unset url."https://github.com/".insteadOf fi -FILES_COUNT="$(git diff-tree --no-commit-id --name-only -r "$CIRCLE_BRANCH" origin/master | grep -E "$GREP_PATTERN" -c)" +# Make sure that we are diffing towards the right branch, in github actions this is different +# depending on whether or not we are creating a pull request or not. +[ ! -z ${GITHUB_BASE_REF} ] && HAS_BASE=true || HAS_BASE=false +[ HAS_BASE = true ] && COMPARE="${GITHUB_BASE_REF#refs/heads/}" || COMPARE="develop" +FILES_COUNT="$(git diff-tree --no-commit-id --name-only -r origin/"$COMPARE" | grep -E "$GREP_PATTERN" -c)" if [ "$IS_CI" = true ]; then # reset to previous state - git reset --hard $CIRCLE_SHA1 + git reset --hard $GITHUB_SHA fi if [ "$FILES_COUNT" -eq 0 ]; then echo "0 files matching '$GREP_PATTERN'; exiting and marking successful." - circleci step halt || exit 1 + exit 1 else echo "$FILES_COUNT file(s) matching '$GREP_PATTERN'; continuing." fi