Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. version: 2
  2. jobs:
  3. # Run tests
  4. test:
  5. working_directory: ~/novi
  6. docker:
  7. - image: circleci/node:10
  8. - image: postgres:alpine
  9. environment:
  10. POSTGRES_USER: root
  11. POSTGRES_DB: loopback_test
  12. environment:
  13. DATABASE_URL: 'pgsql://root:@127.0.0.1:5432/loopback_test'
  14. steps:
  15. - checkout
  16. - run:
  17. name: prepare database
  18. command: |
  19. sudo apt-get install postgresql-client
  20. psql -h 127.0.0.1 -U root loopback_test < devops/docker/sql/0-structure.sql
  21. psql -h 127.0.0.1 -U root loopback_test < devops/docker/sql/1-data.sql
  22.  
  23. - restore_cache:
  24. key: dependency-cache-{{ checksum "package.json" }}
  25. - run:
  26. name: install-npm
  27. command: npm install
  28. - save_cache:
  29. key: dependency-cache-{{ checksum "package.json" }}
  30. paths:
  31. - ./node_modules
  32.  
  33. - run:
  34. name: seed database
  35. command: npm run build && npm run seed
  36.  
  37. - run:
  38. name: test
  39. command: npm run test
  40. environment:
  41. HOST: '127.0.0.1'
  42. PORT: '3000'
  43.  
  44. # Deploy the image
  45. deploy:
  46. docker:
  47. - image: docker
  48. environment:
  49. APP_NAME: app_name
  50. steps:
  51. - checkout
  52. - run:
  53. name: Build production docker image
  54. command: docker build --rm=false -t registry.heroku.com/${APP_NAME}/web:latest -f ./devops/docker/prod/Dockerfile
  55.  
  56. - run:
  57. name: Push image to heroku
  58. command: |
  59. docker login --email=${HEROKU_LOGIN} --username=${HEROKU_LOGIN} --password=${HEROKU_API_KEY} registry.heroku.com
  60. docker push registry.heroku.com/${APP_NAME}/web:latest
  61.  
  62. # Define the workflow
  63. workflows:
  64. version: 2
  65. test-build:
  66. jobs:
  67. - test
  68. - deploy:
  69. filters:
  70. branches:
  71. only:
  72. - master
  73. tags:
  74. only: /^v[0-9]+(\.[0-9]+)*$/
  75. requires:
  76. - test
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement