Browse Source

update config.yml

main
khelia 5 years ago
parent
commit
e7f1315691
  1. 174
      .circleci/config.yml

174
.circleci/config.yml

@ -1,79 +1,109 @@
version: 2.1
jobs:
install-dependencies:
docker:
- image: circleci/node:dubnium-browsers
steps:
- checkout
- restore_cache:
keys:
- dependencies-{{ checksum "package.json" }}-{{ .Environment.CACHE_VERSION }}
- dependencies-
- run: yarn global add node-gyp && yarn install
- save_cache:
paths:
- node_modules
key: dependencies-{{ checksum "package.json" }}-{{ .Environment.CACHE_VERSION }}
build:
docker:
- image: circleci/node:dubnium-browsers
steps:
- checkout
- restore_cache:
keys:
- dependencies-{{ checksum "package.json" }}-{{ .Environment.CACHE_VERSION }}
- dependencies-
- run: yarn build
#- run:
# name: Copy deployment artifacts to workspace
# command: |
# cp doc-server/ /tmp/server-doc -r
#- store_artifacts:
# path: /tmp/server-doc
# - persist_to_workspace:
#root: /tmp
#paths:
# - server-doc
frondend-deploy:
docker:
- image: circleci/node:dubnium-browsers
working_directory: ~/deploy-doc-server
steps:
- attach_workspace:
at: /tmp
- run:
name: Deploy app
command: |
npx netlify-cli deploy --site $NETLIFY_SITE_ID --auth $NETLIFY_ACCESS_TOKEN --dir /tmp/dist --prod
docker-buildandpush:
docker:
- image: docker:17.05.0-ce-git
steps:
- checkout
- setup_remote_docker
- run:
name: Build application Docker image
command: |
docker build --cache-from=app -t app .
- deploy:
name: Publish application to docker hub
command: |
docker login -e $DOCKER_HUB_EMAIL -u $DOCKER_HUB_USER_ID -p $DOCKER_HUB_PASSWORD
docker tag app $DOCKER_HUB_USER_ID/$DOCKER_HUB_APP:$CIRCLE_BUILD_NUM
docker tag app $DOCKER_HUB_USER_ID/$DOCKER_HUB_APP:latest
docker push $DOCKER_HUB_USER_ID/$DOCKER_HUB_APP:$CIRCLE_BUILD_NUM
docker push $DOCKER_HUB_USER_ID/$DOCKER_HUB_APP:latest
workflows:
version: 2.1
build-deploy_frontend:
build_and_test:
jobs:
- install-dependencies
- build:
requires:
- install-dependencies
- fr ondend-deploy:
- build
- lint:
requires:
- build
- docker-buildandpush:
- test:
requires:
- build
- build_docker:
requires:
- lint
- test
filters:
branches:
only:
- main
- publish_image:
context:
- DOCKER
requires:
- build_docker
filters:
branches:
only:
- main
- build_docs_artifact:
requires:
- lint
- test
filters:
branches:
only:
- main
jobs:
build:
docker:
- image: cimg/node:dubnium
steps:
- checkout
- restore_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }}
- run: yarn global add node-gyp && yarn install
- save_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }}
paths:
- ./node_modules
lint:
docker:
- image: cimg/node:dubnium
steps:
- checkout
- restore_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }}
- run : yarn lint && yarn format:check
test:
docker:
- image: cimg/node:dubnium
steps:
- checkout
- restore_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }}
- run : yarn test:ci
build_docker:
environment:
IMAGE_NAME: 698148/my-awesome-project
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: 698148/my-awesome-project
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 698148 --password-stdin
docker tag $IMAGE_NAME:app $IMAGE_NAME:$CIRCLE_BUILD_NUM
docker tag $IMAGE_NAME:app $IMAGE_NAME:latest
docker push $IMAGE_NAME:$CIRCLE_BUILD_NUM
docker push $IMAGE_NAME:latest
build_docs_artifact:
docker:
- image: cimg/node:dubnium
steps:
- checkout
- restore_cache:
key: yarn-packages-v2{{ checksum "yarn.lock" }}
- run: yarn doc:build
- run: ls
- store_artifacts:
path: doc-server
destination: doc-server
Loading…
Cancel
Save