From 527a72a95d16cea965a0d48ebefc08bd85c28d8f Mon Sep 17 00:00:00 2001 From: Rakib Ansary Date: Mon, 8 Jan 2024 14:28:48 +0600 Subject: [PATCH 1/5] fix: include submissions of type challengesubmission Signed-off-by: Rakib Ansary --- config/default.js | 1 + src/services/ProcessorService.js | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/default.js b/config/default.js index 7826660..985f07a 100755 --- a/config/default.js +++ b/config/default.js @@ -35,6 +35,7 @@ module.exports = { RESOURCES_API_URL: process.env.RESOURCES_API_URL || 'http://localhost:4000/v5/resources', CHALLENGE_API_URL: process.env.CHALLENGE_API_URL || 'http://localhost:4000/v5/challenges', CONTEST_SUBMISSION_TYPE: process.env.CONTEST_SUBMISSION_TYPE || 'Contest Submission', + CHALLENGE_SUBMISSION_TYPE: process.env.CHALLENGE_SUBMISSION_TYPE || 'challengesubmission', CHECKPOINT_SUBMISSION_TYPE: process.env.CHECKPOINT_SUBMISSION_TYPE || 'Checkpoint Submission', // superagent request timeout in milliseconds diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index 97c0304..bdebf49 100755 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -252,11 +252,14 @@ async function updateSubmissionsData (challengeId, type) { const submissionCount = await helper.getData(`${config.SUBMISSIONS_API_URL}/${v5challengeId}/count`) let numOfSubmissions = _.get(submissionCount, config.CONTEST_SUBMISSION_TYPE, 0) + if (numOfSubmissions === 0) { + numOfSubmissions = _.get(submissionCount, config.CHALLENGE_SUBMISSION_TYPE, 0) + } let numOfCheckpointSubmissions = _.get(submissionCount, config.CHECKPOINT_SUBMISSION_TYPE, 0) if (type && _.get(submissionCount, type, 0) === 0) { - if (type === config.CONTEST_SUBMISSION_TYPE) { + if (type === config.CONTEST_SUBMISSION_TYPE || type === config.CHALLENGE_SUBMISSION_TYPE) { numOfSubmissions = 1 } else if (type === config.CHECKPOINT_SUBMISSION_TYPE) { numOfCheckpointSubmissions = 1 From 07058e0101080be629a4d3827de6ee8250691b8f Mon Sep 17 00:00:00 2001 From: Rakib Ansary Date: Mon, 8 Jan 2024 14:29:31 +0600 Subject: [PATCH 2/5] ci: deploy to dev Signed-off-by: Rakib Ansary --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 29f048d..16742bc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -72,6 +72,7 @@ workflows: branches: only: - develop + - TI-94 # Production builds are exectuted only on tagged commits to the # master branch. From cb53f32812081c3640a3c198bc7778d24c496d98 Mon Sep 17 00:00:00 2001 From: Rakib Ansary Date: Mon, 8 Jan 2024 14:39:28 +0600 Subject: [PATCH 3/5] fix: deploy fix Signed-off-by: Rakib Ansary --- .circleci/config.yml | 84 +++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 44 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 16742bc..6be443e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,19 +1,15 @@ version: 2 defaults: &defaults - docker: - - image: cimg/python:3.11.0-browsers + docker: + - image: cimg/python:3.12.1-browsers install_dependency: &install_dependency name: Installation of build and deployment dependencies. command: | - sudo apt update - sudo apt install jq - sudo apt install python3-pip - sudo pip3 install awscli --upgrade - sudo pip3 install docker-compose + pip3 install awscli --upgrade install_deploysuite: &install_deploysuite name: Installation of install_deploysuite. command: | - git clone --branch v1.4.15 https://github.com/topcoder-platform/tc-deploy-scripts ../buildscript + git clone --branch v1.4.17 https://github.com/topcoder-platform/tc-deploy-scripts ../buildscript cp ./../buildscript/master_deploy.sh . cp ./../buildscript/buildenv.sh . cp ./../buildscript/awsconfiguration.sh . @@ -23,61 +19,61 @@ restore_cache_settings_for_build: &restore_cache_settings_for_build save_cache_settings: &save_cache_settings key: docker-node-modules-{{ checksum "yarn.lock" }} paths: - - node_modules + - node_modules builddeploy_steps: &builddeploy_steps - - checkout - - setup_remote_docker - - run: *install_dependency - - run: *install_deploysuite - - restore_cache: *restore_cache_settings_for_build - - run: ./build.sh ${APPNAME} - - save_cache: *save_cache_settings - - deploy: - name: Running MasterScript. - command: | - ./awsconfiguration.sh $DEPLOY_ENV - source awsenvconf - ./buildenv.sh -e $DEPLOY_ENV -b ${LOGICAL_ENV}-${APPNAME}-deployvar - source buildenvvar - ./master_deploy.sh -d ECS -e $DEPLOY_ENV -t latest -s ${LOGICAL_ENV}-global-appvar,${LOGICAL_ENV}-${APPNAME}-appvar -i ${APPNAME} +- checkout +- setup_remote_docker +- run: *install_dependency +- run: *install_deploysuite +- restore_cache: *restore_cache_settings_for_build +- run: ./build.sh ${APPNAME} +- save_cache: *save_cache_settings +- deploy: + name: Running MasterScript. + command: | + ./awsconfiguration.sh $DEPLOY_ENV + source awsenvconf + ./buildenv.sh -e $DEPLOY_ENV -b ${LOGICAL_ENV}-${APPNAME}-deployvar + source buildenvvar + ./master_deploy.sh -d ECS -e $DEPLOY_ENV -t latest -s ${LOGICAL_ENV}-global-appvar,${LOGICAL_ENV}-${APPNAME}-appvar -i ${APPNAME} jobs: # Build & Deploy against development backend "build-dev": - <<: *defaults + !!merge <<: *defaults environment: DEPLOY_ENV: "DEV" LOGICAL_ENV: "dev" - APPNAME: "challenge-processor-es" + APPNAME: "challenge-processor-es" steps: *builddeploy_steps "build-prod": - <<: *defaults + !!merge <<: *defaults environment: DEPLOY_ENV: "PROD" - LOGICAL_ENV: "prod" - APPNAME: "challenge-processor-es" + LOGICAL_ENV: "prod" + APPNAME: "challenge-processor-es" steps: *builddeploy_steps workflows: version: 2 build: jobs: - # Development builds are executed on "develop" branch only. - - "build-dev": - context : org-global - filters: - branches: - only: - - develop - - TI-94 + # Development builds are executed on "develop" branch only. + - "build-dev": + context: org-global + filters: + branches: + only: + - develop + - TI-94 - # Production builds are exectuted only on tagged commits to the - # master branch. - - "build-prod": - context : org-global - filters: - branches: - only: master + # Production builds are exectuted only on tagged commits to the + # master branch. + - "build-prod": + context: org-global + filters: + branches: + only: master From 0cea6e6c6533b5f560866cfe396573c0f58bd93c Mon Sep 17 00:00:00 2001 From: Rakib Ansary Date: Tue, 9 Jan 2024 15:06:22 +0600 Subject: [PATCH 4/5] fix: submissions count Signed-off-by: Rakib Ansary --- src/services/ProcessorService.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index bdebf49..478c1d3 100755 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -251,14 +251,10 @@ async function updateSubmissionsData (challengeId, type) { logger.debug(`Update Submissions Data Challenge UUID ${v5challengeId}`) const submissionCount = await helper.getData(`${config.SUBMISSIONS_API_URL}/${v5challengeId}/count`) - let numOfSubmissions = _.get(submissionCount, config.CONTEST_SUBMISSION_TYPE, 0) - if (numOfSubmissions === 0) { - numOfSubmissions = _.get(submissionCount, config.CHALLENGE_SUBMISSION_TYPE, 0) - } - + let numOfSubmissions = submissionCount[config.CONTEST_SUBMISSION_TYPE] != null ? _.get(submissionCount, config.CONTEST_SUBMISSION_TYPE, 0) : _.get(submissionCount, config.CHALLENGE_SUBMISSION_TYPE, 0) let numOfCheckpointSubmissions = _.get(submissionCount, config.CHECKPOINT_SUBMISSION_TYPE, 0) - if (type && _.get(submissionCount, type, 0) === 0) { + if (type && numOfSubmissions === 0 && numOfCheckpointSubmissions === 0) { if (type === config.CONTEST_SUBMISSION_TYPE || type === config.CHALLENGE_SUBMISSION_TYPE) { numOfSubmissions = 1 } else if (type === config.CHECKPOINT_SUBMISSION_TYPE) { From 725f9bde387c809ae693a74b72a89723323ca1af Mon Sep 17 00:00:00 2001 From: Rakib Ansary Date: Tue, 9 Jan 2024 15:21:08 +0600 Subject: [PATCH 5/5] fix: add debug logs Signed-off-by: Rakib Ansary --- src/services/ProcessorService.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index 478c1d3..2317309 100755 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -247,13 +247,19 @@ removeResource.schema = createResource.schema * @param {String} challengeId the challenge id */ async function updateSubmissionsData (challengeId, type) { + logger.debug(`Update Submissions Data Challenge ID ${challengeId} and Submission Type ${type}`); + await new Promise(resolve => setTimeout(resolve, 2000)) + const v5challengeId = await helper.getV5ChallengeId(challengeId) logger.debug(`Update Submissions Data Challenge UUID ${v5challengeId}`) const submissionCount = await helper.getData(`${config.SUBMISSIONS_API_URL}/${v5challengeId}/count`) + logger.debug(`Update Submissions Data Submission Count ${JSON.stringify(submissionCount)}`) - let numOfSubmissions = submissionCount[config.CONTEST_SUBMISSION_TYPE] != null ? _.get(submissionCount, config.CONTEST_SUBMISSION_TYPE, 0) : _.get(submissionCount, config.CHALLENGE_SUBMISSION_TYPE, 0) + let numOfSubmissions = submissionCount[type] || 0 let numOfCheckpointSubmissions = _.get(submissionCount, config.CHECKPOINT_SUBMISSION_TYPE, 0) + logger.debug(`Update Submissions Data Submission Count ${numOfSubmissions} and Checkpoint Submission Count ${numOfCheckpointSubmissions}`) + if (type && numOfSubmissions === 0 && numOfCheckpointSubmissions === 0) { if (type === config.CONTEST_SUBMISSION_TYPE || type === config.CHALLENGE_SUBMISSION_TYPE) { numOfSubmissions = 1