version: 2.1 workflows: tp: jobs: - hello - yarninstall - lint: requires: - yarninstall - unittest: requires: - yarninstall - e2e - dockerpush: requires: - lint - unittest - e2e filters: branches: only: main - docbuild: requires: - lint - unittest - e2e jobs: hello: docker: - image: circleci/node:12 steps: - checkout - run: echo "hello world" yarninstall: docker: - image: circleci/node:12 steps: - checkout - restore_cache: key: yarn-packages-{{ checksum "yarn.lock" }} - run: yarn global add node-gyp && 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 && yarn format:check unittest: docker: - image: circleci/node:12 steps: - checkout - restore_cache: key: yarn-packages-{{ checksum "yarn.lock" }} - run: yarn test:ci e2e: docker: - image: circleci/node:12 environment: DATABASE_URL: postgres://psqluser:psqlpassword@localhost:5432/psdb JWT_SECRET: hello 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 dockerpush: docker: - image: circleci/buildpack-deps:stretch environment: IMAGE_NAME: giannigiux/my-awesome-ci-expr steps: - checkout - setup_remote_docker - run: docker build --tag app:latest . - run: docker save -o image.tar app - run: docker login -u "giannigiux" -p "testtpdocker" - run: docker tag app:latest $IMAGE_NAME:$CIRCLE_BUILD_NUM - run: docker push $IMAGE_NAME:$CIRCLE_BUILD_NUM docbuild: docker: - image: circleci/node:12 steps: - checkout - restore_cache: key: yarn-packages-{{ checksum "yarn.lock" }} - run: yarn doc:build - store_artifacts: path: ./doc-server/