diff --git a/.circleci/config.yml b/.circleci/config.yml index 22d4bc64d..9a02df804 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -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 @@ -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 + + +