language: bash os: linux services: - docker matrix: include: # amd64 - os: linux arch: amd64 env: - DOCKERFILE="Dockerfile" - TAG_SUFFIX="latest" - ALT_SUFFIX="amd64" # arm32v5 - os: linux arch: arm64 env: - DOCKERFILE="Dockerfile.raspberry-pi" - TAG_SUFFIX="arm32v5" - ALT_SUFFIX="armhf" script: - export TARGET_IMAGE_TAG=$(if [ "$TRAVIS_BRANCH" = "master" ]; then if [ "$TAG_SUFFIX" = "" ]; then echo "latest"; else echo "$TAG_SUFFIX"; fi; else if [ "$TAG_SUFFIX" = "" ]; then echo "$TRAVIS_BRANCH"; else echo "$TRAVIS_BRANCH-$TAG_SUFFIX"; fi; fi) - docker pull $TARGET_IMAGE:$TARGET_IMAGE_TAG && export IMAGE_CACHE="--cache-from $TARGET_IMAGE:$TARGET_IMAGE_TAG" || export IMAGE_CACHE="" - docker build -f $DOCKERFILE $IMAGE_CACHE -t $TARGET_IMAGE:$TARGET_IMAGE_TAG . - docker login --username $DOCKER_USERNAME --password $DOCKER_PASSWORD - docker push $TARGET_IMAGE:$TARGET_IMAGE_TAG # push alternate tags - if [ -z "$ALT_SUFFIX" ]; then echo "No alternate tags set for this build."; else echo "Tagging with alternate tag '$ALT_SUFFIX'"; export ALT_IMAGE_TAG=$(if [ "$TRAVIS_BRANCH" = "master" ]; then if [ "$ALT_SUFFIX" = "" ]; then echo "error"; else echo "$ALT_SUFFIX"; fi; else if [ "$ALT_SUFFIX" = "" ]; then echo "$TRAVIS_BRANCH"; else echo "$TRAVIS_BRANCH-$ALT_SUFFIX"; fi; fi); docker tag $TARGET_IMAGE:$TARGET_IMAGE_TAG $TARGET_IMAGE:$ALT_IMAGE_TAG; docker push $TARGET_IMAGE:$ALT_IMAGE_TAG; fi