Browse Source

Explication

main
Francois Lannoy 6 years ago
parent
commit
6dcb84e3af
  1. 100
      .circleci/config.yml

100
.circleci/config.yml

@ -1,35 +1,15 @@
version: 2.1 version: 2.1
workflows: workflows:
build_and_test:
jobs:
- build
- lint:
requires:
build:
jobs:
- build - build
- test:
requires:
lint:
requires:
- build - build
- e2e:
requires:
test:
requires:
- build - build
- build_docker:
requires:
- e2e
- lint
- test
filters:
branches:
only:
- main
- publish_image:
context:
- DOCKER
requires:
- build_docker
filters:
branches:
only:
- main
jobs: jobs:
build: build:
docker: docker:
@ -37,7 +17,7 @@ jobs:
steps: steps:
- checkout - checkout
- restore_cache: - restore_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }}
key: yarn-packages-v1{{ checksum "yarn.lock" }}
- run: yarn global add node-gyp && yarn install - run: yarn global add node-gyp && yarn install
- save_cache: - save_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }} key: yarn-packages-v2{{ checksum "yarn.lock" }}
@ -50,7 +30,8 @@ jobs:
- checkout - checkout
- restore_cache: - restore_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }} key: yarn-packages-v2{{ checksum "yarn.lock" }}
- run : yarn lint && yarn format:check
- run: yarn lint && yarn format:check
test: test:
docker: docker:
- image: cimg/node:12.18 - image: cimg/node:12.18
@ -58,62 +39,5 @@ jobs:
- checkout - checkout
- restore_cache: - restore_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }} key: yarn-packages-v2{{ checksum "yarn.lock" }}
- run : yarn test:ci
e2e:
docker:
- image: cimg/node:12.18
environment:
DATABASE_URL: "postgres://e2e:test@localhost:5432/psdb"
API_PORT: 3000
API_HOST: localhost
API_PROTOCOL: http
JWT_SECRET: yeet
- image: circleci/postgres:9.6.2-alpine
environment:
POSTGRES_USER: e2e
POSTGRES_DB: psdb
POSTGRES_PASSWORD: test
steps:
- checkout
- restore_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }}
- run:
name: Waiting for POSTGRES
command: dockerize -wait tcp://localhost:5432 -timeout 1m
- run:
name: Launching e2e test
command: yarn test:e2e
build_docker:
environment:
IMAGE_NAME: sgttabouret/my-awesome-ci-expr
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:
environment:
IMAGE_NAME: sgttabouret/my-awesome-ci-expr
docker:
- image: circleci/buildpack-deps:stretch
steps:
- attach_workspace:
at: /tmp/workspace
- setup_remote_docker
- run: docker load -i /tmp/workspace/image.tar
- run:
name: Login and Publish to Docker Hub
command: |
echo "$DOCKERHUB_PASS" | docker login --username sgttabouret --password-stdin
docker tag $IMAGE_NAME:app $IMAGE_NAME:$CIRCLE_BUILD_NUM
docker tag $IMAGE_NAME:app $IMAGE_NAME:latest
docker push $IMAGE_NAME:latest
docker push $IMAGE_NAME:$CIRCLE_BUILD_NUM
- run: yarn test:ci
Loading…
Cancel
Save