diff --git a/.circleci/config.yml b/.circleci/config.yml index 70ffcdf..14946e7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,66 +1,53 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # These environment variables must be set in CircleCI UI # # DOCKERHUB_REPO - docker hub repo, format: / # DOCKER_EMAIL - login info for docker hub # DOCKER_USER # DOCKER_PASS version: 2 jobs: build: docker: - - image: docker:17.06.1-ce + - image: docker:18.06 steps: - setup_remote_docker - checkout - run: name: Install pip command: | - echo "http://dl-cdn.alpinelinux.org/alpine/v3.8/community" >> /etc/apk/repositories && \ - echo "http://dl-cdn.alpinelinux.org/alpine/v3.8/main" >> /etc/apk/repositories && \ - apk add --no-cache bash curl python3 sudo && \ + apk add --no-cache bash python3 && \ python3 -m ensurepip && \ rm -r /usr/lib/python*/ensurepip && \ - pip3 install --upgrade pip setuptools && \ - if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \ - if [ ! -e /usr/bin/python ]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \ + pip3 install --upgrade pip && \ + if [[ ! -e /usr/bin/pip ]]; then ln -s pip3 /usr/bin/pip; fi && \ + if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \ rm -r /root/.cache - run: name: Install Dependencies - command: pip install -r requirements.txt + command: pip install -r requirements.txt && pip install docker-compose - run: - name: Install Docker Compose - command: pip install docker-compose - - run: - name: create phabext.json - command: invoke version > phabext.json - - run: 'mkdir /artifacts && cp phabext.json /artifacts/phabext.json' + name: Create phabext.json + command: | + invoke version > phabext.json && \ + mkdir /artifacts && \ + cp phabext.json /artifacts/phabext.json - run: invoke build - run: invoke build_test - run: invoke test - run: docker inspect $(invoke imageid) - run: invoke imageid | tee /artifacts/docker-image-shasum256.txt - deploy: - name: dockerhub latest - branch: master command: | - if [ ! -z "$DOCKERHUB_REPO" ]; then - docker login "$DOCKER_EMAIL" -u "$DOCKER_USER" -p "$DOCKER_PASS" - docker tag "${DOCKERHUB_REPO}" "${DOCKERHUB_REPO}:${CIRCLE_SHA1}" - docker push "${DOCKERHUB_REPO}:${CIRCLE_SHA1}" + [[ -n "$DOCKERHUB_REPO" && -n "$DOCKER_USER" && -n "$DOCKER_PASS" ]] || exit 0 + docker login -u "$DOCKER_USER" -p "$DOCKER_PASS" + docker tag "${DOCKERHUB_REPO}" "${DOCKERHUB_REPO}:${CIRCLE_SHA1}" + docker push "${DOCKERHUB_REPO}:${CIRCLE_SHA1}" + if [[ "$CIRCLE_BRANCH" == "master" ]]; then docker push "${DOCKERHUB_REPO}:latest" fi - - deploy: - name: dockerhub tags - tags: /.*/ - command: | - if [ ! -z "$DOCKERHUB_REPO" ]; then - docker login "$DOCKER_EMAIL" -u "$DOCKER_USER" -p "$DOCKER_PASS" - docker tag "${DOCKERHUB_REPO}" "${DOCKERHUB_REPO}:${CIRCLE_SHA1}" - docker push "${DOCKERHUB_REPO}:${CIRCLE_SHA1}" - fi - store_artifacts: - path: /artifacts \ No newline at end of file + path: /artifacts