version: 2.1 jobs: canary: machine: image: ubuntu-2004:202201-02 working_directory: ~/docker-volume-backup steps: - checkout - run: name: Build command: | docker build . -t offen/docker-volume-backup:canary - run: name: Install gnupg command: | sudo apt-get install -y gnupg - run: name: Run tests working_directory: ~/docker-volume-backup/test command: | export GPG_TTY=$(tty) ./test.sh canary build: docker: - image: cimg/base:2020.06 environment: DOCKER_BUILDKIT: '1' DOCKER_CLI_EXPERIMENTAL: enabled working_directory: ~/docker-volume-backup steps: - checkout - setup_remote_docker: version: 20.10.6 - docker/install-docker-credential-helper - docker/configure-docker-credentials-store - run: name: Push to Docker Hub command: | echo "$DOCKER_ACCESSTOKEN" | docker login --username offen --password-stdin # This is required for building ARM: https://gitlab.alpinelinux.org/alpine/aports/-/issues/12406 docker run --rm --privileged linuxkit/binfmt:v0.8 docker context create docker-volume-backup docker buildx create docker-volume-backup --name docker-volume-backup --use docker buildx inspect --bootstrap tag_args="-t offen/docker-volume-backup:$CIRCLE_TAG" if [[ "$CIRCLE_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then # prerelease tags like `v2.0.0-alpha.1` should not be released as `latest` tag_args="$tag_args -t offen/docker-volume-backup:latest" fi docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 \ $tag_args . --push workflows: version: 2 docker_image: jobs: - canary: filters: tags: ignore: /^v.*/ - build: filters: branches: ignore: /.*/ tags: only: /^v.*/ orbs: docker: circleci/docker@1.0.1