Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SB-27924 - Refactor of CircleCI Config File #501

Open
wants to merge 8 commits into
base: release-4.5.0
Choose a base branch
from
135 changes: 113 additions & 22 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
version: 2.1
jobs:
sunbird-ed-dp-build:
machine:
image: ubuntu-2004:202008-01
commands:
clone-dependency-repos:
steps:
- checkout
- run:
name: clone analytics core
name: Clone All Dependency Repo's
command: |
if [ -z $CIRCLE_PR_NUMBER ]; then
target_branch=$CIRCLE_BRANCH
Expand Down Expand Up @@ -35,37 +32,131 @@ jobs:
else
cd sunbird-core-dataproducts && git checkout $target_branch
fi
- restore_cache:
keys:
- dp-dependency-cache-{{ checksum "data-products/pom.xml" }}
- run:
build-framework-artifacts:
steps:
- run:
name: Build analytics-core dependency jar
command: |
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
cd sunbird-analytics-core && mvn install -DskipTests

build-core-jobs-artifacts:
steps:
- run:
name: Build core-data-products dependency jar
command: |
name: Build analytics-core-dataproducts dependency jar
command: |
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
cd sunbird-core-dataproducts && mvn install -DskipTests
execute-tests:
steps:
- run:
name: Ed-data-products-build
name: Execute the testcases.
command: |
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
cd data-products && mvn scoverage:report
#jobs:
# sunbird-ed-dp-build:
# machine:
# image: ubuntu-2004:202008-01
# steps:
# - checkout
# - run:
# name: clone analytics core
# command: |
# if [ -z $CIRCLE_PR_NUMBER ]; then
# target_branch=$CIRCLE_BRANCH
# else
# prdata=$(curl -X GET -u $GITHUB_USER_TOKEN:x-oauth-basic https://api.github.com/repos/Sunbird-Ed/sunbird-data-products/pulls/$CIRCLE_PR_NUMBER)
# target_branch=$(echo "${prdata}" | jq -r '.base.ref')
# fi
# echo $target_branch
# git clone https://github.com/project-sunbird/sunbird-analytics-core.git
# branchExists=$(cd sunbird-analytics-core && git ls-remote --heads origin $target_branch)
# echo $branchExists
# if [ -z ${branchExists} ]; then
# latest_branch=$(cd sunbird-analytics-core && git for-each-ref --count=1 --sort=-committerdate 'refs/remotes/**/release*' --format='%(refname:short)' | head -1)
# echo $latest_branch
# cd sunbird-analytics-core && git checkout $latest_branch
# else
# cd sunbird-analytics-core && git checkout $target_branch
# fi
# cd ../ && git clone https://github.com/project-sunbird/sunbird-core-dataproducts.git
# branchExists=$(cd sunbird-core-dataproducts && git ls-remote --heads origin $target_branch)
# echo $branchExists
# if [ -z ${branchExists} ]; then
# latest_branch=$(cd sunbird-core-dataproducts && git for-each-ref --count=1 --sort=-committerdate 'refs/remotes/**/release*' --format='%(refname:short)' | head -1)
# echo $latest_branch
# cd sunbird-core-dataproducts && git checkout $latest_branch
# else
# cd sunbird-core-dataproducts && git checkout $target_branch
# fi
# - restore_cache:
# keys:
# - dp-dependency-cache-{{ checksum "data-products/pom.xml" }}
# - run:
# name: Build analytics-core dependency jar
# command: |
# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
# export PATH=$JAVA_HOME/bin:$PATH
# cd sunbird-analytics-core && mvn install -DskipTests
# - run:
# name: Build core-data-products dependency jar
# command: |
# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
# export PATH=$JAVA_HOME/bin:$PATH
# cd sunbird-core-dataproducts && mvn install -DskipTests
# - run:
# name: Ed-data-products-build
# command: |
# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
# export PATH=$JAVA_HOME/bin:$PATH
# cd data-products && mvn scoverage:report
# - save_cache:
# key: dp-dependency-cache-{{ checksum "data-products/pom.xml" }}
# paths: ~/.m2
# - run:
# name: sonar
# command: |
# export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
# cd data-products && mvn -X sonar:sonar -Dsonar.projectKey=Sunbird-Ed_sunbird-data-products -Dsonar.host.url=https://sonarcloud.io -Dsonar.exclusions=/home/circleci/project/adhoc-scripts/**,/home/circleci/project/replay-scripts/** -Dsonar.scala.coverage.reportPaths=/home/circleci/project/data-products/target/scoverage.xml -Dsonar.organization=sunbird-ed
#
jobs:
build-artifacts:
machine: true
steps:
- clone-dependency-repos
- build-framework-artifacts
- build-core-jobs-artifacts
- persist_to_workspace:
root: .
paths:
- .
run-tests:
machine: true
steps:
- attach_workspace:
at: .
- checkout:
path: ~/project/sunbird-ed
- restore_cache:
keys:
- dp-dependency-cache-{{ checksum "data-products/pom.xml" }}
- execute-tests
- save_cache:
key: dp-dependency-cache-{{ checksum "data-products/pom.xml" }}
paths: ~/.m2
- run:
name: sonar
command: |
export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
cd data-products && mvn -X sonar:sonar -Dsonar.projectKey=Sunbird-Ed_sunbird-data-products -Dsonar.host.url=https://sonarcloud.io -Dsonar.exclusions=/home/circleci/project/adhoc-scripts/**,/home/circleci/project/replay-scripts/** -Dsonar.scala.coverage.reportPaths=/home/circleci/project/data-products/target/scoverage.xml -Dsonar.organization=sunbird-ed
paths:
- ~/.m2

workflows:
version: 2.1
workflow:
main:
jobs:
- sunbird-ed-dp-build
- build-artifacts
- run-tests:
requires:
- build-artifacts