Skip to content

Instantly share code, notes, and snippets.

@jeckel jeckel/config.yml
Last active Feb 20, 2019

Embed
What would you like to do?
Loopback CircleCI Sample
version: 2
jobs:
# Run tests
test:
working_directory: ~/novi
docker:
- image: circleci/node:10
- image: postgres:alpine
environment:
POSTGRES_USER: root
POSTGRES_DB: loopback_test
environment:
DATABASE_URL: 'pgsql://root:@127.0.0.1:5432/loopback_test'
steps:
- checkout
- run:
name: prepare database
command: |
sudo apt-get install postgresql-client
psql -h 127.0.0.1 -U root loopback_test < devops/docker/sql/0-structure.sql
psql -h 127.0.0.1 -U root loopback_test < devops/docker/sql/1-data.sql
- restore_cache:
key: dependency-cache-{{ checksum "package.json" }}
- run:
name: install-npm
command: npm install
- save_cache:
key: dependency-cache-{{ checksum "package.json" }}
paths:
- ./node_modules
- run:
name: seed database
command: npm run build && npm run seed
- run:
name: test
command: npm run test
environment:
HOST: '127.0.0.1'
PORT: '3000'
# Deploy the image
deploy:
docker:
- image: docker
environment:
APP_NAME: app_name
steps:
- checkout
- run:
name: Build production docker image
command: docker build --rm=false -t registry.heroku.com/${APP_NAME}/web:latest -f ./devops/docker/prod/Dockerfile
- run:
name: Push image to heroku
command: |
docker login --email=${HEROKU_LOGIN} --username=${HEROKU_LOGIN} --password=${HEROKU_API_KEY} registry.heroku.com
docker push registry.heroku.com/${APP_NAME}/web:latest
# Define the workflow
workflows:
version: 2
test-build:
jobs:
- test
- deploy:
filters:
branches:
only:
- master
tags:
only: /^v[0-9]+(\.[0-9]+)*$/
requires:
- test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.