version: 2.1 commands: calculate-tag-name: description: "Calculates the target tag name for Docker image" parameters: distro: type: string steps: - run: name: Calculate tag to set for the built Docker image command: | if [ "$CIRCLE_BRANCH" = "master" ]; then TAG_VERSION=latest; else TAG_VERSION=$CIRCLE_BRANCH; fi if [ "<< parameters.distro >>" = "ubuntu" ]; then TAG_DISTRO=""; else TAG_DISTRO=-<< parameters.distro >>; fi echo "export IMAGE_TAG=$TAG_VERSION$TAG_DISTRO" >> $BASH_ENV jobs: build-ubuntu-image: environment: IMAGE_NAME: haugene/transmission-openvpn docker: - image: circleci/buildpack-deps:stretch steps: - checkout - setup_remote_docker - calculate-tag-name: distro: ubuntu - run: name: Build Docker image command: docker build -t $IMAGE_NAME:$IMAGE_TAG . - run: name: Login to Docker Hub command: echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin - run: name: Push image command: docker push $IMAGE_NAME:$IMAGE_TAG build-armhf-image: environment: IMAGE_NAME: haugene/transmission-openvpn docker: - image: circleci/buildpack-deps:stretch steps: - checkout - setup_remote_docker - calculate-tag-name: distro: armhf - run: name: Build Docker image command: | echo "Un-commenting cross-build instructions in Dockerfile.armhf" sed -i 's/^#\(.*cross-build.*\)/\1/' Dockerfile.armhf docker build -t $IMAGE_NAME:$IMAGE_TAG -f Dockerfile.armhf . - run: name: Login to Docker Hub command: echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin - run: name: Push image command: docker push $IMAGE_NAME:$IMAGE_TAG build-arm64-image: environment: IMAGE_NAME: haugene/transmission-openvpn docker: - image: circleci/buildpack-deps:stretch steps: - checkout - setup_remote_docker - calculate-tag-name: distro: arm64 - run: name: Build Docker image command: | echo "Un-commenting cross-build instructions in Dockerfile.armhf" sed -i 's/^#\(.*cross-build.*\)/\1/' Dockerfile.armhf docker build \ -t $IMAGE_NAME:$IMAGE_TAG \ -f Dockerfile.armhf \ --build-arg base_image=balenalib/raspberrypi3-64:stretch . - run: name: Login to Docker Hub command: echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin - run: name: Push image command: docker push $IMAGE_NAME:$IMAGE_TAG workflows: version: 2 build-images: jobs: - build-ubuntu-image: context: dockerhub filters: branches: only: - beta - build-armhf-image: context: dockerhub filters: branches: only: - master - dev - build-arm64-image: context: dockerhub filters: branches: only: - master - dev