CIs are assumed to do a git fetch and git merge before running tests.
Therefore, no need for a git fetch inside our validate scripts in CI.
If VALIDATE_ORIGIN_BRANCH is set, then git fetch is skipped and
VALIDATE_ORIGIN_BRANCH is used in validate scripts.
Otherwise, behavior is unchanged.
Signed-off-by: Tibor Vass <tibor@docker.com>
| ... | ... |
@@ -15,6 +15,7 @@ export DOCKER_GITCOMMIT |
| 15 | 15 |
# against these are used in hack/validate/.validate to check what changed in the PR. |
| 16 | 16 |
export VALIDATE_REPO |
| 17 | 17 |
export VALIDATE_BRANCH |
| 18 |
+export VALIDATE_ORIGIN_BRANCH |
|
| 18 | 19 |
|
| 19 | 20 |
# env vars passed through directly to Docker's build scripts |
| 20 | 21 |
# to allow things like `make KEEPBUNDLE=1 binary` easily |
| ... | ... |
@@ -54,6 +55,7 @@ DOCKER_ENVS := \ |
| 54 | 54 |
-e TIMEOUT \ |
| 55 | 55 |
-e VALIDATE_REPO \ |
| 56 | 56 |
-e VALIDATE_BRANCH \ |
| 57 |
+ -e VALIDATE_ORIGIN_BRANCH \ |
|
| 57 | 58 |
-e HTTP_PROXY \ |
| 58 | 59 |
-e HTTPS_PROXY \ |
| 59 | 60 |
-e NO_PROXY \ |
| ... | ... |
@@ -11,8 +11,11 @@ if [ -z "$VALIDATE_UPSTREAM" ]; then |
| 11 | 11 |
|
| 12 | 12 |
VALIDATE_HEAD="$(git rev-parse --verify HEAD)" |
| 13 | 13 |
|
| 14 |
- git fetch -q "$VALIDATE_REPO" "refs/heads/$VALIDATE_BRANCH" |
|
| 15 |
- VALIDATE_UPSTREAM="$(git rev-parse --verify FETCH_HEAD)" |
|
| 14 |
+ if [ -z "$VALIDATE_ORIGIN_BRANCH" ]; then |
|
| 15 |
+ git fetch -q "$VALIDATE_REPO" "refs/heads/$VALIDATE_BRANCH" |
|
| 16 |
+ VALIDATE_ORIGIN_BRANCH=FETCH_HEAD |
|
| 17 |
+ fi |
|
| 18 |
+ VALIDATE_UPSTREAM="$(git rev-parse --verify $VALIDATE_ORIGIN_BRANCH)" |
|
| 16 | 19 |
|
| 17 | 20 |
VALIDATE_COMMIT_LOG="$VALIDATE_UPSTREAM..$VALIDATE_HEAD" |
| 18 | 21 |
VALIDATE_COMMIT_DIFF="$VALIDATE_UPSTREAM...$VALIDATE_HEAD" |