# Javascript Node CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-javascript/ for more details # version: 2 jobs: install: docker: # specify the version you desire here - image: circleci/node:8.12.0 # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/2.0/circleci-images/ # - image: circleci/mongo:3.4.4 working_directory: ~/repo steps: - checkout # Download and cache dependencies - restore_cache: keys: - v1-dependencies-{{ checksum "package.json" }} # fallback to using the latest cache if no exact match is found - v1-dependencies- - run: yarn install - save_cache: paths: - node_modules key: v1-dependencies-{{ checksum "package.json" }} build: docker: # specify the version you desire here - image: circleci/node:8.12.0 # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/2.0/circleci-images/ # - image: circleci/mongo:3.4.4 working_directory: ~/repo steps: - checkout # Download and cache dependencies - restore_cache: keys: - v1-dependencies-{{ checksum "package.json" }} # fallback to using the latest cache if no exact match is found - v1-dependencies- - run: yarn build - run: name: Copy deployment artifacts to workspace command: | cp ./dist /tmp/server -r - store_artifacts: path: /tmp/server - persist_to_workspace: root: /tmp paths: - server - save_cache: paths: - node_modules key: v1-dependencies-{{ checksum "package.json" }} deploy: docker: - image: circleci/node:dubnium-browsers working_directory: ~/repo steps: - checkout - attach_workspace: at: /tmp - restore_cache: keys: - v1-dependencies-{{ checksum "package.json" }} # fallback to using the latest cache if no exact match is found - v1-dependencies- - run: name: Deploy app command: npx netlify-cli deploy --auth d3c1UXQBpGseDVPLLwNrhetuvSdJ3fWegidw53efFgQ --site 4d88c2a3-5589-4014-982e-11d955198d7a --dir /tmp/server --prod docker-build-and-push: working_directory: /dockerapp docker: - image: docker:17.05.0-ce-git steps: - checkout - setup_remote_docker - run: name: Build & push Docker image command: | docker build --cache-from=app -t app . - deploy: name: Publish application to docker hub environment: CIRCLE_BUILD_NUM: 1 DOCKER_HUB_EMAIL: hallouma.fahem1@gmail.com DOCKER_HUB_USER_ID: ahlemfahem1 DOCKER_HUB_PWD: 231993amira command: | docker login -e $DOCKER_HUB_EMAIL -u $DOCKER_HUB_USER_ID -p $DOCKER_HUB_PWD docker tag app $DOCKER_HUB_USER_ID/frontend_final:$CIRCLE_BUILD_NUM docker tag app $DOCKER_HUB_USER_ID/frontend_final:latest docker push $DOCKER_HUB_USER_ID/frontend_final:$CIRCLE_BUILD_NUM docker push $DOCKER_HUB_USER_ID/frontend_final:latest workflows: version: 2 build-test-and-deploy: jobs: - install - build: requires: - install - deploy: requires: - build - docker-build-and-push: requires: - build