Browse Source

Add dev / prep images

hotfix/wow
anthony 5 years ago
parent
commit
13297159f4
  1. 13
      .circleci/build-docker.sh
  2. 97
      .circleci/config.yml

13
.circleci/build-docker.sh

@ -1,13 +0,0 @@
TAG=app
IMAGE_NAME=$DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY
IMAGE_NAME_BUILDNUM=$IMAGE_NAME:${CIRCLE_BUILD_NUM}
IMAGE_NAME_LATEST=$IMAGE_NAME:latest
docker build -t $TAG .
docker tag $TAG $IMAGE_NAME_BUILDNUM
docker tag $TAG $IMAGE_NAME_LATEST
echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_LOGIN --password-stdin
docker push $IMAGE_NAME_BUILDNUM
docker push $IMAGE_NAME_LATEST

97
.circleci/config.yml

@ -1,16 +1,25 @@
globals: globals:
credentials:
dockerhub_username: &dockerhub_username anthonyjhoiro
docker-config: docker-config:
- &docker-config - &docker-config
image: cimg/node:16.10.0 image: cimg/node:16.10.0
auth: auth:
username: anthonyjhoiro
username: *dockerhub_username
password: $DOCKERHUB_PASSWORD password: $DOCKERHUB_PASSWORD
setup: setup:
- &install-cache - &install-cache
restore_cache: restore_cache:
keys: keys:
- npm-v1-dependencies-{{ checksum "yarn.lock" }} - npm-v1-dependencies-{{ checksum "yarn.lock" }}
- &lint-cache
restore_cache:
keys:
- npm-v1-lint-{{ .BuildNum }}
version: 2.1 version: 2.1
@ -37,9 +46,7 @@ jobs:
steps: steps:
- checkout - checkout
- *install-cache - *install-cache
- restore_cache:
keys:
- npm-v1-lint-{{ .BuildNum }}
- *lint-cache
- run: - run:
name: Check files format name: Check files format
command: yarn format:check command: yarn format:check
@ -67,8 +74,8 @@ jobs:
- *docker-config - *docker-config
- image: circleci/postgres:9.6-alpine - image: circleci/postgres:9.6-alpine
auth: auth:
username: anthonyjhoiro
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
username: *dockerhub_username
password: $DOCKERHUB_PASSWORD
environment: environment:
POSTGRES_USER: postgres POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres POSTGRES_PASSWORD: postgres
@ -90,9 +97,7 @@ jobs:
steps: steps:
- checkout - checkout
- *install-cache - *install-cache
- restore_cache:
keys:
- npm-v1-lint-{{ .BuildNum }}
- *lint-cache
- run: - run:
name: Generate doc name: Generate doc
command: yarn doc:build command: yarn doc:build
@ -107,15 +112,70 @@ jobs:
steps: steps:
- checkout - checkout
- *install-cache - *install-cache
- setup_remote_docker
- setup_remote_docker:
docker_layer_caching: true
- run: - run:
name: Build and Push docker image name: Build and Push docker image
command: |
.circleci/build-docker.sh
command: docker build -t .
pushdockerhub:
docker:
- *docker-config
environment: environment:
DOCKERHUB_LOGIN: anthonyjhoiro
DOCKERHUB_LOGIN: *dockerhub_username
DOCKERHUB_REPOSITORY: my-awesome-ci-expr DOCKERHUB_REPOSITORY: my-awesome-ci-expr
steps:
- checkout
- *install-cache
- setup_remote_docker:
docker_layer_caching: true
- run: echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_LOGIN --password-stdin
- when:
condition:
equal:
- main
- << pipeline.git.branch >>
steps:
- run:
name: Push Latest and Build number
command: |
docker tag app $DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY:${CIRCLE_BUILD_NUM}
docker tag app $DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY:latest
docker push $DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY:${CIRCLE_BUILD_NUM}
docker push $DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY:latest
- when:
condition:
equal:
- << pipeline.git.branch >>
- develop
steps:
- run: docker tag app $DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY:${CIRCLE_BUILD_NUM}-dev
- run: docker push $DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY:${CIRCLE_BUILD_NUM}-dev
- when:
condition:
or:
- matches:
value: << pipeline.git.branch >>
pattern: /^hotfix\/.*/
- matches:
value: << pipeline.git.branch >>
pattern: /^release\/.*/
steps:
- run: docker tag app $DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY:${CIRCLE_BUILD_NUM}-prep
- run: docker push $DOCKERHUB_LOGIN/$DOCKERHUB_REPOSITORY:${CIRCLE_BUILD_NUM}-prep
- run:
name: Build and Push docker image
command: docker build -t .
workflows: workflows:
@ -140,9 +200,18 @@ workflows:
filters: filters:
branches: branches:
# Run only on main branch # Run only on main branch
only: /^main/
only:
- main
- develop
- /^hotfix\/.*/
- /^release\/.*/
requires: requires:
- lint - lint
- test-ci - test-ci
- test-e2e - test-e2e
- pushdockerhub:
requires:
- builddocker
Loading…
Cancel
Save