|
2 | 2 | set -o errexit |
3 | 3 | set -o pipefail |
4 | 4 |
|
| 5 | +GOARCHES=(amd64 arm64 arm s390x ppc64le) |
| 6 | + |
5 | 7 | # Pull Request image tag format: PR00 |
6 | 8 | if [ "${TRAVIS_EVENT_TYPE}" = "pull_request" ]; then |
7 | | - PR_USER=$(echo "$TRAVIS_PULL_REQUEST_SLUG" | sed -e 's/\/.*//') |
8 | | - if [ "$PR_USER" != "cloudnativelabs" ]; then |
9 | | - echo "Not building/pushing PR $TRAVIS_PULL_REQUEST since only the cloudnativelabs user can access docker hub credentials" |
| 9 | + PR_USER=$(echo "${TRAVIS_PULL_REQUEST_SLUG}" | sed -e 's/\/.*//') |
| 10 | + if [ "${PR_USER}" != "cloudnativelabs" ]; then |
| 11 | + echo "Not building/pushing PR ${TRAVIS_PULL_REQUEST} since only the cloudnativelabs user can access docker hub credentials" |
10 | 12 | exit 0 |
11 | 13 | fi |
12 | | - echo "Building/pushing PR$TRAVIS_PULL_REQUEST from $PR_USER" |
13 | | - make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=amd64 |
14 | | - make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=amd64 |
15 | | - make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=arm64 |
16 | | - make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=arm64 |
17 | | - make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=arm |
18 | | - make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=arm |
19 | | - make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=s390x |
20 | | - make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=s390x |
21 | | - make push IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=ppc64le |
22 | | - make clean IMG_TAG="PR$TRAVIS_PULL_REQUEST" GOARCH=ppc64le |
| 14 | + echo "Building/pushing PR${TRAVIS_PULL_REQUEST} from ${PR_USER}" |
| 15 | + for GOARCH in "${GOARCHES[@]}"; do |
| 16 | + make push IMG_TAG="${GOARCH}-PR${TRAVIS_PULL_REQUEST}" GOARCH="${GOARCH}" |
| 17 | + make clean IMG_TAG="${GOARCH}-PR${TRAVIS_PULL_REQUEST}" GOARCH="${GOARCH}" |
| 18 | + done |
| 19 | + echo "Pushing PR manifest on Travis" |
| 20 | + make push-manifest MANIFEST_TAG="PR${TRAVIS_PULL_REQUEST}" |
23 | 21 | exit 0 |
24 | 22 | fi |
25 | 23 |
|
26 | 24 | # Release image tag format: v0.0.0 and latest |
27 | | -if [ -n "$TRAVIS_TAG" ]; then |
| 25 | +if [ -n "${TRAVIS_TAG}" ]; then |
28 | 26 | echo "Running Release build on Travis" |
29 | | - make push-release RELEASE_TAG="amd64-$TRAVIS_TAG" GOARCH=amd64 |
30 | | - make clean RELEASE_TAG="amd64-$TRAVIS_TAG" GOARCH=amd64 |
31 | | - make push-release RELEASE_TAG="arm64-$TRAVIS_TAG" GOARCH=arm64 |
32 | | - make clean RELEASE_TAG="arm64-$TRAVIS_TAG" GOARCH=arm64 |
33 | | - make push-release RELEASE_TAG="arm-$TRAVIS_TAG" GOARCH=arm |
34 | | - make clean RELEASE_TAG="arm-$TRAVIS_TAG" GOARCH=arm |
35 | | - make push-release RELEASE_TAG="s390x-$TRAVIS_TAG" GOARCH=s390x |
36 | | - make clean RELEASE_TAG="s390x-$TRAVIS_TAG" GOARCH=s390x |
37 | | - make push-release RELEASE_TAG="ppc64le-$TRAVIS_TAG" GOARCH=ppc64le |
38 | | - make clean RELEASE_TAG="ppc64le-$TRAVIS_TAG" GOARCH=ppc64le |
39 | | - echo "Pushing manifest on Travis" |
40 | | - make push-manifest RELEASE_TAG="$TRAVIS_TAG" |
| 27 | + for GOARCH in "${GOARCHES[@]}"; do |
| 28 | + make push-release RELEASE_TAG="${GOARCH}-${TRAVIS_TAG}" GOARCH="${GOARCH}" |
| 29 | + make clean RELEASE_TAG="${GOARCH}-${TRAVIS_TAG}" GOARCH="${GOARCH}" |
| 30 | + done |
| 31 | + echo "Pushing release manifest on Travis" |
| 32 | + make push-manifest-release RELEASE_TAG="${TRAVIS_TAG}" |
41 | 33 | exit 0 |
42 | 34 | fi |
43 | 35 |
|
44 | 36 | # Push image tag format: COMMIT |
45 | 37 | echo "Running push build on Travis" |
46 | | -make push |
| 38 | +for GOARCH in "${GOARCHES[@]}"; do |
| 39 | + make push GOARCH="${GOARCH}" |
| 40 | + make clean GOARCH="${GOARCH}" |
| 41 | +done |
| 42 | +echo "Pushing manifest on Travis" |
| 43 | +make push-manifest |
| 44 | + |
0 commit comments