Yield generated for 2ddbcbc8-9517-4b1a-a43b-fcfba5770254
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

162 lines
3.9 KiB

version: 2.1
orbs:
node: circleci/node@3.0.0
workflows:
tests:
jobs:
- helloworld
- install_yarn
- lint:
requires:
- install_yarn
- test:
requires:
- install_yarn
- endtoend:
requires:
- install_yarn
- build_docker:
requires:
- lint
- test
- endtoend
filters:
branches:
only:
- main
- publish_image:
context:
- DOCKERPASSWORD
requires:
- build_docker
jobs:
helloworld:
docker:
- image: circleci/node:12
steps:
- checkout
- run: echo "hello world"
install_yarn:
docker:
- image: circleci/node:12
steps:
- checkout
- restore_cache:
key: yarn-packages-{{ checksum "yarn.lock" }}
- run: yarn global add node-gyp
- run: yarn install
- save_cache:
key: yarn-packages-{{ checksum "yarn.lock" }}
paths:
- ./node_modules
lint:
docker:
- image: circleci/node:12
steps:
- checkout
- restore_cache:
key: yarn-packages-{{ checksum "yarn.lock" }}
- run: yarn lint
- run: yarn format:check
test:
docker:
- image: circleci/node:12
steps:
- checkout
- restore_cache:
key: yarn-packages-{{ checksum "yarn.lock" }}
- run: yarn test:ci
endtoend:
docker:
- image: circleci/node:12
environment:
DATABASE_URL: postgres://psqluser:psqlpassword@localhost:5432/psdb
JWT_SECRET: hi
API_PORT: 3000
API_HOST: localhost
API_PROTOCOL: http
- image: circleci/postgres:9.6.2-alpine
environment:
POSTGRES_USER: psqluser
POSTGRES_PASSWORD: psqlpassword
POSTGRES_DB: psdb
steps:
- checkout
- restore_cache:
key: yarn-packages-{{ checksum "yarn.lock" }}
- run: yarn test:e2e
build_docker:
environment:
IMAGE_NAME: etiamayedze/docker-tp-ci
docker:
- image: circleci/buildpack-deps:stretch
steps:
- checkout
- setup_remote_docker
- run: docker image build --tag $IMAGE_NAME:app .
- run: docker save -o image.tar $IMAGE_NAME
- persist_to_workspace:
root: .
paths:
- ./image.tar
publish_image:
docker:
- image: circleci/buildpack-deps:stretch
steps:
- checkout
- attach_workspace:
at: /tmp/workspace
- setup_remote_docker
- run: docker load -i /tmp/workspace/image.tar
- run:
command:
echo "$DOCKERPASSWORD" | docker login --username etiamayedze --password-stdin
docker tag etiamayedze/docker-tp-ci:app etiamayedze/docker-tp-ci:$CIRCLE_BUILD_NUM
docker tag etiamayedze/docker-tp-ci:app etiamayedze/docker-tp-ci:latest
docker push etiamayedze/docker-tp-ci:latest
docker push etiamayedze/docker-tp-ci:$CIRCLE_BUILD_NUM