diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..531980d --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,54 @@ +# 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:18.06 + steps: + - setup_remote_docker + - checkout + - run: + name: Install pip + command: | + apk add --no-cache bash python3 && \ + python3 -m ensurepip && \ + rm -r /usr/lib/python*/ensurepip && \ + 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 && pip install docker-compose + - run: + 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: Deploy to docker hub + command: | + [[ -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 + - store_artifacts: + path: /artifacts diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 91ee3ec..0000000 --- a/circle.yml +++ /dev/null @@ -1,57 +0,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 -machine: - pre: - - curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0 - - curl -L https://github.com/docker/compose/releases/download/1.10.0/docker-compose-`uname -s`-`uname -m` > /home/ubuntu/bin/docker-compose - - chmod +x /home/ubuntu/bin/docker-compose - - docker-compose version - services: - - docker - python: - version: 3.5.2 - -dependencies: - override: - - pip install -r requirements.txt - - docker info - -compile: - override: - - invoke version >> phabext.json - - cp phabext.json $CIRCLE_ARTIFACTS - - # build the image - - invoke build - - invoke build_test - - invoke imageid | tee $CIRCLE_ARTIFACTS/docker-image-shasum256.txt - -test: - override: - - invoke test - - docker inspect $(invoke imageid) - -deployment: - dockerhub_latest: - branch: "master" - commands: - - "[ ! -z $DOCKERHUB_REPO ]" - - "docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS" - - "docker tag $DOCKERHUB_REPO $DOCKERHUB_REPO:$CIRCLE_SHA1" - - "docker push $DOCKERHUB_REPO:$CIRCLE_SHA1" - - "docker push $DOCKERHUB_REPO:latest" - - dockerhub_tags: - # push all tags - tag: /.*/ - commands: - - "[ ! -z $DOCKERHUB_REPO ]" - - "docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS" - - "docker tag $DOCKERHUB_REPO $DOCKERHUB_REPO:$CIRCLE_TAG" - - "docker push $DOCKERHUB_REPO:$CIRCLE_TAG" diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 3039065..26ac071 100755 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -1,27 +1,25 @@ # 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/. version: '2' services: phabricator: build: context: . dockerfile: ./Dockerfile-test entrypoint: - /app/entrypoint.sh environment: - MYSQL_HOST=phabdb - MYSQL_PORT=3306 - MYSQL_USER=root - MYSQL_PASS=password restart: on-failure depends_on: - phabdb - volumes: - - ./extensions:/app/moz-extensions phabdb: image: mysql:5.5 environment: - MYSQL_ROOT_PASSWORD=password