postal/.circleci/config.yml
2018-08-03 06:55:49 +02:00

136 lines
4.1 KiB
YAML

version: 2
jobs:
build-alpine:
machine: true
working_directory: ~/repo/alpine
steps:
- checkout:
path: ~/repo
- run:
name: Build Postal Docker Container
command: docker build -t catdeployed/postal:latest -t catdeployed/postal:alpine .
- run:
name: Export Container
command: mkdir workspace && cd workspace && docker save --output postal_alpine.tar catdeployed/postal:alpine
- persist_to_workspace:
root: workspace
paths:
- postal_alpine.tar
build-ubuntu:
machine: true
working_directory: ~/repo/ubuntu
steps:
- checkout:
path: ~/repo
- run:
name: Build Postal Docker Container
command: docker build -t catdeployed/postal:ubuntu .
- run:
name: Export Container
command: mkdir workspace && cd workspace && docker save --output postal_ubuntu.tar catdeployed/postal:ubuntu
- persist_to_workspace:
root: workspace
paths:
- postal_ubuntu.tar
deploy:
machine: true
working_directory: ~/repo/ubuntu
steps:
- attach_workspace:
at: /tmp/workspace
- run:
name: Load Alpine Image
command: docker load --input /tmp/workspace/postal_alpine.tar
- run:
name: Load Ubuntu Image
command: docker load --input /tmp/workspace/postal_ubuntu.tar
- run:
name: Tag alpine image as latest
command: docker tag catdeployed/postal:alpine catdeployed/postal:latest
- run:
name: Login to Docker Hub
command: docker login -u $DOCKER_USER -p $DOCKER_PASS
- run:
name: Push Ubuntu Container to Docker Hub
command: docker push catdeployed/postal:ubuntu
- run:
name: Push Alpine Container to Docker Hub
command: docker push catdeployed/postal:alpine
- run:
name: Push Latest Container to Docker Hub
command: docker push catdeployed/postal:latest
deploy-dev:
machine: true
working_directory: ~/repo/ubuntu
steps:
- attach_workspace:
at: /tmp/workspace
- run:
name: Load Alpine Image
command: docker load --input /tmp/workspace/postal_alpine.tar
- run:
name: Load Ubuntu Image
command: docker load --input /tmp/workspace/postal_ubuntu.tar
- run:
name: Rename Alpine Image Tag
command: docker tag catdeployed/postal:alpine catdeployed/postal:alpine-dev
- run:
name: Rename Ubuntu Image Tag
command: docker tag catdeployed/postal:ubuntu catdeployed/postal:ubuntu-dev
- run:
name: Tag alpine image as latest
command: docker tag catdeployed/postal:alpine catdeployed/postal:latest-dev
- run:
name: Login to Docker Hub
command: docker login -u $DOCKER_USER -p $DOCKER_PASS
- run:
name: Push Ubuntu Container to Docker Hub
command: docker push catdeployed/postal:ubuntu-dev
- run:
name: Push Alpine Container to Docker Hub
command: docker push catdeployed/postal:alpine-dev
- run:
name: Push Latest Container to Docker Hub
command: docker push catdeployed/postal:latest-dev
workflows:
version: 2
nightly:
triggers:
- schedule:
cron: "0 * * * *"
filters:
branches:
only:
- master
jobs:
- build-alpine
- build-ubuntu
- deploy:
requires:
- build-alpine
- build-ubuntu
filters:
branches:
only:
- master
commit:
jobs:
- build-alpine
- build-ubuntu
- deploy:
requires:
- build-alpine
- build-ubuntu
filters:
branches:
only:
- master
- deploy-dev:
requires:
- build-alpine
- build-ubuntu
filters:
branches:
only:
- dev