Adding support of litmus portal build using github workflow and removing circleci (#2594)
* Adding portal pipeline script to github workflows Signed-off-by: Raj Das <mail.rajdas@gmail.com> * removing hack and .circleci directory Signed-off-by: Raj Das <mail.rajdas@gmail.com> * changing checkout action version to v2 Signed-off-by: Raj Das <mail.rajdas@gmail.com> * changing checkout action version to v2 Signed-off-by: Raj Das <mail.rajdas@gmail.com>
This commit is contained in:
parent
609ac26421
commit
d02d285bf6
|
|
@ -1,253 +0,0 @@
|
|||
---
|
||||
version: 2.1
|
||||
executors:
|
||||
golang:
|
||||
docker:
|
||||
- image: circleci/golang:1.14.8-node
|
||||
resource_class: large
|
||||
nodejs:
|
||||
docker:
|
||||
- image: circleci/node:10.0.0
|
||||
resource_class: large
|
||||
cosmic:
|
||||
docker:
|
||||
- image: circleci/buildpack-deps:cosmic
|
||||
resource_class: medium
|
||||
jobs:
|
||||
backend-services-checks:
|
||||
executor: golang
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Run backend service checks
|
||||
command: make backend-services-checks
|
||||
working_directory: ~/project/litmus-portal
|
||||
frontend-services-checks:
|
||||
executor: nodejs
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Run frontend service checks
|
||||
command: make frontend-services-checks
|
||||
working_directory: ~/project/litmus-portal
|
||||
setup-env:
|
||||
executor: cosmic
|
||||
steps:
|
||||
- run: mkdir -p workspace
|
||||
- run:
|
||||
name: Setup ENV
|
||||
command: |
|
||||
echo 'export REPONAME="litmuschaos"' >> workspace/env-vars
|
||||
echo 'export GRAPHQL_SERVER_IMAGE="litmusportal-server"' >> workspace/env-vars
|
||||
echo 'export AUTHENTICATION_SERVER_IMAGE="litmusportal-auth-server"' >> workspace/env-vars
|
||||
echo 'export FRONTEND_IMAGE="litmusportal-frontend"' >> workspace/env-vars
|
||||
echo 'export SUBSCRIBER_IMAGE="litmusportal-subscriber"' >> workspace/env-vars
|
||||
echo 'export EVENT_TRACKER="litmusportal-event-tracker"' >> workspace/env-vars
|
||||
tag=""
|
||||
if [ "$CIRCLE_BRANCH" == "" ]; then
|
||||
tag="$CIRCLE_TAG"
|
||||
else
|
||||
tag="ci"
|
||||
fi;
|
||||
echo export IMGTAG=$tag >> workspace/env-vars
|
||||
cat workspace/env-vars >> $BASH_ENV
|
||||
source $BASH_ENV
|
||||
- persist_to_workspace:
|
||||
root: workspace
|
||||
paths:
|
||||
- env-vars
|
||||
docker-build-backend:
|
||||
machine:
|
||||
image: circleci/classic:201808-01
|
||||
resource_class: large
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /tmp/workspace
|
||||
- run: |
|
||||
cat /tmp/workspace/env-vars >> $BASH_ENV
|
||||
source $BASH_ENV
|
||||
- checkout
|
||||
- run:
|
||||
name: Build graphql server docker image
|
||||
command: docker build . -f build/Dockerfile -t ${REPONAME}/${GRAPHQL_SERVER_IMAGE}:${IMGTAG}
|
||||
working_directory: ~/project/litmus-portal/graphql-server
|
||||
- run:
|
||||
name: Save graphql server docker image
|
||||
command: docker save -o /tmp/workspace/${GRAPHQL_SERVER_IMAGE}.tar ${REPONAME}/${GRAPHQL_SERVER_IMAGE}:${IMGTAG}
|
||||
- run:
|
||||
name: Build auth server docker image
|
||||
command: docker images && docker build . -f Dockerfile -t ${REPONAME}/${AUTHENTICATION_SERVER_IMAGE}:${IMGTAG}
|
||||
working_directory: ~/project/litmus-portal/authentication
|
||||
- run:
|
||||
name: Save auth server docker image
|
||||
command: docker save -o /tmp/workspace/${AUTHENTICATION_SERVER_IMAGE}.tar ${REPONAME}/${AUTHENTICATION_SERVER_IMAGE}:${IMGTAG}
|
||||
- run:
|
||||
name: Build subscriber docker image
|
||||
command: docker build . -f build/Dockerfile -t ${REPONAME}/${SUBSCRIBER_IMAGE}:${IMGTAG}
|
||||
working_directory: ~/project/litmus-portal/cluster-agents/subscriber
|
||||
- run:
|
||||
name: Save subscriber docker image
|
||||
command: docker save -o /tmp/workspace/${SUBSCRIBER_IMAGE}.tar ${REPONAME}/${SUBSCRIBER_IMAGE}:${IMGTAG}
|
||||
- run:
|
||||
name: Build event tracker docker image
|
||||
command: docker build . -f build/Dockerfile -t ${REPONAME}/${EVENT_TRACKER}:${IMGTAG}
|
||||
working_directory: ~/project/litmus-portal/cluster-agents/event-tracker
|
||||
- run:
|
||||
name: Save event tracker docker image
|
||||
command: docker save -o /tmp/workspace/${EVENT_TRACKER}.tar ${REPONAME}/${EVENT_TRACKER}:${IMGTAG}
|
||||
- persist_to_workspace:
|
||||
root: /tmp/workspace
|
||||
paths:
|
||||
- litmusportal-server.tar
|
||||
- litmusportal-subscriber.tar
|
||||
- litmusportal-auth-server.tar
|
||||
- litmusportal-event-tracker.tar
|
||||
docker-build-frontend:
|
||||
machine:
|
||||
image: circleci/classic:201808-01
|
||||
resource_class: large
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /tmp/workspace
|
||||
- run: |
|
||||
cat /tmp/workspace/env-vars >> $BASH_ENV
|
||||
source $BASH_ENV
|
||||
- checkout
|
||||
- run:
|
||||
name: Build frontend docker image
|
||||
no_output_timeout: 20m
|
||||
command: |
|
||||
timestamp=`date "+%s"`
|
||||
docker build . -f Dockerfile -t ${REPONAME}/${FRONTEND_IMAGE}:${IMGTAG} --build-arg REACT_APP_KB_CHAOS_VERSION=${IMGTAG} --build-arg REACT_APP_BUILD_TIME="$timestamp"
|
||||
working_directory: ~/project/litmus-portal/frontend
|
||||
- run:
|
||||
name: Save frontend docker image
|
||||
command: docker save -o /tmp/workspace/${FRONTEND_IMAGE}.tar ${REPONAME}/${FRONTEND_IMAGE}:${IMGTAG}
|
||||
- persist_to_workspace:
|
||||
root: /tmp/workspace
|
||||
paths:
|
||||
- litmusportal-frontend.tar
|
||||
docker-push:
|
||||
machine:
|
||||
image: circleci/classic:201808-01
|
||||
resource_class: large
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /tmp/workspace
|
||||
- run: |
|
||||
cat /tmp/workspace/env-vars >> $BASH_ENV
|
||||
source $BASH_ENV
|
||||
- checkout
|
||||
- run:
|
||||
name: Loading all docker images
|
||||
command: |
|
||||
docker load -i /tmp/workspace/${GRAPHQL_SERVER_IMAGE}.tar
|
||||
docker load -i /tmp/workspace/${SUBSCRIBER_IMAGE}.tar
|
||||
docker load -i /tmp/workspace/${AUTHENTICATION_SERVER_IMAGE}.tar
|
||||
docker load -i /tmp/workspace/${FRONTEND_IMAGE}.tar
|
||||
docker load -i /tmp/workspace/${EVENT_TRACKER}.tar
|
||||
- run:
|
||||
name: Pushing graphql server image
|
||||
command: bash ./hack/push --TYPE=ci --REPONAME=${REPONAME} --IMGNAME=${GRAPHQL_SERVER_IMAGE} --IMGTAG=${IMGTAG}
|
||||
- run:
|
||||
name: Pushing frontend image
|
||||
command: bash ./hack/push --TYPE=ci --REPONAME=${REPONAME} --IMGNAME=${FRONTEND_IMAGE} --IMGTAG=${IMGTAG}
|
||||
- run:
|
||||
name: Pushing auth server image
|
||||
command: bash ./hack/push --TYPE=ci --REPONAME=${REPONAME} --IMGNAME=${AUTHENTICATION_SERVER_IMAGE} --IMGTAG=${IMGTAG}
|
||||
- run:
|
||||
name: Pushing subscriber server image
|
||||
command: bash ./hack/push --TYPE=ci --REPONAME=${REPONAME} --IMGNAME=${SUBSCRIBER_IMAGE} --IMGTAG=${IMGTAG}
|
||||
- run:
|
||||
name: Pushing event-tracker
|
||||
command: bash ./hack/push --TYPE=ci --REPONAME=${REPONAME} --IMGNAME=${EVENT_TRACKER} --IMGTAG=${IMGTAG}
|
||||
|
||||
release:
|
||||
machine:
|
||||
image: circleci/classic:201808-01
|
||||
resource_class: large
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /tmp/workspace
|
||||
- run: |
|
||||
cat /tmp/workspace/env-vars >> $BASH_ENV
|
||||
source $BASH_ENV
|
||||
- checkout
|
||||
- run:
|
||||
name: Loading all docker images
|
||||
command: |
|
||||
docker load -i /tmp/workspace/${GRAPHQL_SERVER_IMAGE}.tar
|
||||
docker load -i /tmp/workspace/${SUBSCRIBER_IMAGE}.tar
|
||||
docker load -i /tmp/workspace/${AUTHENTICATION_SERVER_IMAGE}.tar
|
||||
docker load -i /tmp/workspace/${FRONTEND_IMAGE}.tar
|
||||
docker load -i /tmp/workspace/${EVENT_TRACKER}.tar
|
||||
- run:
|
||||
name: Docker images
|
||||
command: docker images
|
||||
- run:
|
||||
name: Pushing graphql server image
|
||||
command: bash ./hack/push --TYPE=release --REPONAME=${REPONAME} --IMGNAME=${GRAPHQL_SERVER_IMAGE} --IMGTAG=${IMGTAG}
|
||||
- run:
|
||||
name: Pushing frontend image
|
||||
command: bash ./hack/push --TYPE=release --REPONAME=${REPONAME} --IMGNAME=${FRONTEND_IMAGE} --IMGTAG=${IMGTAG}
|
||||
- run:
|
||||
name: Pushing auth server image
|
||||
command: bash ./hack/push --TYPE=release --REPONAME=${REPONAME} --IMGNAME=${AUTHENTICATION_SERVER_IMAGE} --IMGTAG=${IMGTAG}
|
||||
- run:
|
||||
name: Pushing subscriber server image
|
||||
command: bash ./hack/push --TYPE=release --REPONAME=${REPONAME} --IMGNAME=${SUBSCRIBER_IMAGE} --IMGTAG=${IMGTAG}
|
||||
- run:
|
||||
name: Pushing event-tracker
|
||||
command: bash ./hack/push --TYPE=release --REPONAME=${REPONAME} --IMGNAME=${EVENT_TRACKER} --IMGTAG=${IMGTAG}
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
litmus-portal:
|
||||
jobs:
|
||||
- frontend-services-checks:
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
- backend-services-checks:
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
- setup-env:
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
- docker-build-frontend:
|
||||
requires:
|
||||
- setup-env
|
||||
- frontend-services-checks
|
||||
- backend-services-checks
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
- docker-build-backend:
|
||||
requires:
|
||||
- setup-env
|
||||
- backend-services-checks
|
||||
- frontend-services-checks
|
||||
filters:
|
||||
tags:
|
||||
only: /.*/
|
||||
- docker-push:
|
||||
requires:
|
||||
- docker-build-backend
|
||||
- docker-build-frontend
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- /^v.*/
|
||||
- release:
|
||||
requires:
|
||||
- docker-build-backend
|
||||
- docker-build-frontend
|
||||
filters:
|
||||
## release jobs needs to be run for tagged releases alone & not for any branch commits
|
||||
branches:
|
||||
ignore: /.*/
|
||||
tags:
|
||||
only: /.*/
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
name: build-pipeline
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- v*
|
||||
- litmus-v2
|
||||
|
||||
jobs:
|
||||
backend-checks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- shell: bash
|
||||
run: |
|
||||
cd litmus-portal
|
||||
make backend-services-checks
|
||||
|
||||
frontend-checks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- shell: bash
|
||||
run: |
|
||||
cd litmus-portal
|
||||
make frontend-services-checks
|
||||
|
||||
docker-build-graphql-server:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- backend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Build graphql server docker image
|
||||
shell: bash
|
||||
run: |
|
||||
cd litmus-portal/graphql-server
|
||||
docker build . -f build/Dockerfile
|
||||
|
||||
docker-build-authentication-server:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- backend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Build auth server docker image
|
||||
shell: bash
|
||||
run: |
|
||||
cd litmus-portal/authentication
|
||||
docker images && docker build . -f Dockerfile
|
||||
|
||||
docker-build-subscriber:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- backend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Build subscriber docker image
|
||||
shell: bash
|
||||
run: |
|
||||
cd litmus-portal/cluster-agents/subscriber
|
||||
docker build . -f build/Dockerfile
|
||||
|
||||
docker-build-event-tracker:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- backend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Build event tracker docker image
|
||||
shell: bash
|
||||
run: |
|
||||
cd litmus-portal/cluster-agents/event-tracker
|
||||
docker build . -f build/Dockerfile
|
||||
|
||||
docker-build-frontend:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- frontend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Build frontend docker image
|
||||
shell: bash
|
||||
run: |
|
||||
cd litmus-portal/frontend
|
||||
docker build . -f Dockerfile
|
||||
|
|
@ -0,0 +1,230 @@
|
|||
name: push-pipeline
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- v*
|
||||
tags:
|
||||
- '*'
|
||||
jobs:
|
||||
backend-checks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- shell: bash
|
||||
run: |
|
||||
cd litmus-portal
|
||||
make backend-services-checks
|
||||
|
||||
frontend-checks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- shell: bash
|
||||
run: |
|
||||
cd litmus-portal
|
||||
make frontend-services-checks
|
||||
|
||||
get-envs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- shell: bash
|
||||
run: |
|
||||
img_tag=""
|
||||
array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`)
|
||||
if [ ${array[1]} == "tags" ]
|
||||
then
|
||||
echo "tag build"
|
||||
img_tag=${GITHUB_REF#refs/*/}
|
||||
else
|
||||
echo "non tag build"
|
||||
img_tag="ci"
|
||||
fi
|
||||
# This is a condition where image tag looks like "pull/<pullrequest-name>" during pull request build
|
||||
NEW_IMG_TAG=`echo $img_tag | sed "s/\//-/g"`
|
||||
echo $NEW_IMG_TAG
|
||||
echo export IMG_TAG=$NEW_IMG_TAG >> env-vars
|
||||
echo export GRAPHQL_SERVER_IMAGE="litmusportal-server" >> env-vars
|
||||
echo export AUTHENTICATION_SERVER_IMAGE="litmusportal-auth-server" >> env-vars
|
||||
echo export FRONTEND_IMAGE="litmusportal-frontend" >> env-vars
|
||||
echo export SUBSCRIBER_IMAGE="litmusportal-subscriber" >> env-vars
|
||||
echo export EVENT_TRACKER="litmusportal-event-tracker" >> env-vars
|
||||
- name: Uploading envs
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: env_artifact
|
||||
path: env-vars
|
||||
|
||||
docker-build-and-push-graphql-server:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- get-envs
|
||||
- backend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Downloading image artficate
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: env_artifact
|
||||
- name: Build graphql server docker image
|
||||
shell: bash
|
||||
run: |
|
||||
source env-vars
|
||||
cd litmus-portal/graphql-server
|
||||
docker build . -f build/Dockerfile -t ${{ secrets.REPONAME }}/${GRAPHQL_SERVER_IMAGE}:${IMG_TAG}
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Push graphql server docker image
|
||||
shell: bash
|
||||
run: |
|
||||
branch=${GITHUB_REF#refs/*/}
|
||||
array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`)
|
||||
if [ $branch == "master" ] || [ ${array[1]} == "tags" ] || [[ $branch =~ ^v[0-9]*.[0-9]*.x$ ]]
|
||||
then
|
||||
source env-vars
|
||||
docker push ${{ secrets.REPONAME }}/${GRAPHQL_SERVER_IMAGE}:${IMG_TAG}
|
||||
fi
|
||||
|
||||
docker-build-and-push-authentication-server:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- get-envs
|
||||
- backend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Downloading image artficate
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: env_artifact
|
||||
- name: Build auth server docker image
|
||||
shell: bash
|
||||
run: |
|
||||
source env-vars
|
||||
cd litmus-portal/authentication
|
||||
docker images && docker build . -f Dockerfile -t ${{ secrets.REPONAME }}/${AUTHENTICATION_SERVER_IMAGE}:${IMG_TAG}
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Push auth server docker image
|
||||
shell: bash
|
||||
run: |
|
||||
branch=${GITHUB_REF#refs/*/}
|
||||
array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`)
|
||||
if [ $branch == "master" ] || [ ${array[1]} == "tags" ] || [[ $branch =~ ^v[0-9]*.[0-9]*.x$ ]]
|
||||
then
|
||||
source env-vars
|
||||
docker push ${{ secrets.REPONAME }}/${AUTHENTICATION_SERVER_IMAGE}:${IMG_TAG}
|
||||
fi
|
||||
|
||||
docker-build-and-push-subscriber:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- get-envs
|
||||
- backend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Downloading image artficate
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: env_artifact
|
||||
- name: Build subscriber docker image
|
||||
shell: bash
|
||||
run: |
|
||||
source env-vars
|
||||
cd litmus-portal/cluster-agents/subscriber
|
||||
docker build . -f build/Dockerfile -t ${{ secrets.REPONAME }}/${SUBSCRIBER_IMAGE}:${IMG_TAG}
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Push subscriber docker image
|
||||
shell: bash
|
||||
run: |
|
||||
branch=${GITHUB_REF#refs/*/}
|
||||
array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`)
|
||||
if [ $branch == "master" ] || [ ${array[1]} == "tags" ] || [[ $branch =~ ^v[0-9]*.[0-9]*.x$ ]]
|
||||
then
|
||||
source env-vars
|
||||
docker push ${{ secrets.REPONAME }}/${SUBSCRIBER_IMAGE}:${IMG_TAG}
|
||||
fi
|
||||
|
||||
docker-build-and-push-event-tracker:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- get-envs
|
||||
- backend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Downloading image artficate
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: env_artifact
|
||||
- name: Build event tracker docker image
|
||||
shell: bash
|
||||
run: |
|
||||
source env-vars
|
||||
cd litmus-portal/cluster-agents/event-tracker
|
||||
docker build . -f build/Dockerfile -t ${{ secrets.REPONAME }}/${EVENT_TRACKER}:${IMG_TAG}
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Push event tracker docker image
|
||||
shell: bash
|
||||
run: |
|
||||
branch=${GITHUB_REF#refs/*/}
|
||||
array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`)
|
||||
if [ $branch == "master" ] || [ ${array[1]} == "tags" ] || [[ $branch =~ ^v[0-9]*.[0-9]*.x$ ]]
|
||||
then
|
||||
source env-vars
|
||||
docker push ${{ secrets.REPONAME }}/${EVENT_TRACKER}:${IMG_TAG}
|
||||
fi
|
||||
|
||||
docker-build-and-push-frontend:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- get-envs
|
||||
- frontend-checks
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Downloading image artficate
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: env_artifact
|
||||
- name: Build frontend docker image
|
||||
shell: bash
|
||||
run: |
|
||||
source env-vars
|
||||
cd litmus-portal/frontend
|
||||
docker build . -f Dockerfile -t ${{ secrets.REPONAME }}/${FRONTEND_IMAGE}:${IMG_TAG}
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
- name: Push frontend docker image
|
||||
shell: bash
|
||||
run: |
|
||||
branch=${GITHUB_REF#refs/*/}
|
||||
array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`)
|
||||
if [ $branch == "master" ] || [ ${array[1]} == "tags" ] || [[ $branch =~ ^v[0-9]*.[0-9]*.x$ ]]
|
||||
then
|
||||
source env-vars
|
||||
docker push ${{ secrets.REPONAME }}/${FRONTEND_IMAGE}:${IMG_TAG}
|
||||
fi
|
||||
57
hack/push
57
hack/push
|
|
@ -1,57 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Push CI images
|
||||
function push_ci_image(){
|
||||
|
||||
echo "Pushing ${REPONAME}/${IMGNAME}:${IMGTAG} ..."
|
||||
docker push ${REPONAME}/${IMGNAME}:${IMGTAG}
|
||||
|
||||
}
|
||||
|
||||
# Push Release Images
|
||||
function push_release_image(){
|
||||
|
||||
if [ ! -z "${CIRCLE_TAG}" ];
|
||||
then
|
||||
# Push with different tags if tagged as a release
|
||||
# When github is tagged with a release, then CircleCI will
|
||||
# set the release tag in env CIRCLE_TAG
|
||||
echo "Pushing ${REPONAME}/${IMGNAME}:${CIRCLE_TAG} ..."
|
||||
docker tag ${IMAGEID} ${REPONAME}/${IMGNAME}:${CIRCLE_TAG}
|
||||
docker push ${REPONAME}/${IMGNAME}:${CIRCLE_TAG}
|
||||
echo "Pushing ${REPONAME}/${IMGNAME}:latest ..."
|
||||
docker tag ${IMAGEID} ${REPONAME}/${IMGNAME}:latest
|
||||
docker push ${REPONAME}/${IMGNAME}:latest
|
||||
fi;
|
||||
|
||||
}
|
||||
|
||||
BUILD_TYPE=$(echo $1 | cut -d "=" -f 2)
|
||||
REPONAME=$(echo $2 | cut -d "=" -f 2)
|
||||
IMGNAME=$(echo $3 | cut -d "=" -f 2)
|
||||
IMGTAG=$(echo $4 | cut -d "=" -f 2)
|
||||
|
||||
# Check for Image Details
|
||||
if [ -z "${REPONAME}" ] || [ -z "${IMGNAME}" ] || [ -z "${IMGTAG}" ]
|
||||
then
|
||||
echo "Image details are missing. Nothing to push.";
|
||||
exit 1
|
||||
fi
|
||||
|
||||
IMAGEID=$( docker images -q ${REPONAME}/${IMGNAME}:${IMGTAG} )
|
||||
|
||||
# Verify Docker Credentials
|
||||
if [ ! -z "${DNAME}" ] && [ ! -z "${DPASS}" ];
|
||||
then
|
||||
docker login -u "${DNAME}" -p "${DPASS}";
|
||||
if [ "${BUILD_TYPE}" == "ci" ]; then
|
||||
push_ci_image;
|
||||
elif [ "${BUILD_TYPE}" == "release" ]; then
|
||||
push_release_image;
|
||||
else
|
||||
echo "Invalid build type"; exit 1
|
||||
fi
|
||||
else
|
||||
echo "No docker credentials provided. Skip uploading ${REPONAME}/${IMGNAME}:${IMGTAG} to docker hub";
|
||||
fi
|
||||
Loading…
Reference in New Issue