From 5a0cd1274c1d566d3b13b6b06b9709097fe6e3a1 Mon Sep 17 00:00:00 2001 From: Eddie Webb Date: Mon, 13 Jan 2020 19:21:26 -0500 Subject: [PATCH 1/3] parallelism --- .circleci/config.yml | 29 ++++++++++++++++++++++++++--- src/jobs/block_workflow.yml | 1 + test/test_expansion.bats | 24 ++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a1d1e83..f0b8520 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,7 +15,7 @@ workflows: branches: ignore: - master - - test: + - publish_dev: requires: - validate filters: @@ -23,6 +23,14 @@ workflows: only: - staging - trying + - test: + requires: + - publish_dev + filters: + branches: + only: + - staging + - trying - publish: requires: - test @@ -39,7 +47,7 @@ jobs: - checkout - install-circleci - pack-and-validate - test: + publish_dev: docker: - image: cimg/base:2019.08 working_directory: ~/repo @@ -56,11 +64,24 @@ jobs: echo "export ORB_VERSION=\"${ORB_VERSION}\"" >> $BASH_ENV echo $ORB_VERSION echo "export PR_MESSAGE=\"BotComment: *Development* version of orb available for manual validation - \\\`${ORB_VERSION}\\\`\"" >> $BASH_ENV + + test: + docker: + - image: cimg/base:2019.08 + working_directory: ~/repo + parallelism: 4 + steps: + - checkout + - install-circleci + - pack-and-validate + - pr-info - install-bats - run: name: Import Tests using BATS command: | export BATS_IMPORT_DEV_ORB="eddiewebb/<>@dev:${PR_NUMBER}" + export BATS_TEST_LIST=$(bats -l test | cirleci split) + echo "This node will run ${BATS_TEST_LIST}" bats test - pr-comment @@ -101,7 +122,9 @@ commands: - run: name: Install BATS (bash testing) command: | - cd /tmp && git clone https://github.com/bats-core/bats-core.git && cd bats-core + # my fork includes tets list for splitting + cd /tmp && git clone https://github.com/eddiewebb/bats-core.git && cd bats-core + cp ./install.sh /usr/local - run: name: Install YQ diff --git a/src/jobs/block_workflow.yml b/src/jobs/block_workflow.yml index 508525d..be988dd 100644 --- a/src/jobs/block_workflow.yml +++ b/src/jobs/block_workflow.yml @@ -35,6 +35,7 @@ resource_class: small steps: - until_front_of_line: consider-branch: <> + block-workflow: <> time: <> dont-quit: <> only-on-branch: <> diff --git a/test/test_expansion.bats b/test/test_expansion.bats index 9e05df2..94dee33 100755 --- a/test/test_expansion.bats +++ b/test/test_expansion.bats @@ -51,6 +51,30 @@ function setup { } + +@test "Default job sets block workflow properly" { + # given + process_config_with test/inputs/fulljob.yml + + # when + assert_jq_match '.jobs | length' 1 #only 1 job + assert_jq_match '.jobs["Single File"].steps | length' 1 #only 1 steps + + jq -r '.jobs["Single File"].steps[0].run.command' $JSON_PROJECT_CONFIG > ${BATS_TMPDIR}/script-${BATS_TEST_NUMBER}.bash + + export CIRCLECI_API_KEY="madethisup" + export CIRCLE_BUILD_NUM="2" + export CIRCLE_JOB="singlejob" + export CIRCLE_PROJECT_USERNAME="madethisup" + export CIRCLE_PROJECT_REPONAME="madethisup" + export CIRCLE_REPOSITORY_URL="madethisup" + export CIRCLE_BRANCH="madethisup" + + run bash ${BATS_TMPDIR}/script-${BATS_TEST_NUMBER}.bash + assert_contains_text "Orb parameter block-workflow is true." +} + + # See https://github.com/eddiewebb/circleci-queue/issues/26 for explanation of race condition @test "Race condition on previous workflow does not fool us" { # given From a54b84ad766b23e308ca98a715791bd692c1db06 Mon Sep 17 00:00:00 2001 From: Eddie Webb Date: Mon, 13 Jan 2020 20:15:06 -0500 Subject: [PATCH 2/3] fix splitting --- .circleci/config.yml | 3 +-- test/test_expansion.bats | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f0b8520..78a3d1a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,7 +80,7 @@ jobs: name: Import Tests using BATS command: | export BATS_IMPORT_DEV_ORB="eddiewebb/<>@dev:${PR_NUMBER}" - export BATS_TEST_LIST=$(bats -l test | cirleci split) + export BATS_TEST_LIST=$(bats -l test | cirleci tests split | tr '\n' ' ') echo "This node will run ${BATS_TEST_LIST}" bats test - pr-comment @@ -124,7 +124,6 @@ commands: command: | # my fork includes tets list for splitting cd /tmp && git clone https://github.com/eddiewebb/bats-core.git && cd bats-core - cp ./install.sh /usr/local - run: name: Install YQ diff --git a/test/test_expansion.bats b/test/test_expansion.bats index 94dee33..48822f6 100755 --- a/test/test_expansion.bats +++ b/test/test_expansion.bats @@ -50,8 +50,6 @@ function setup { } - - @test "Default job sets block workflow properly" { # given process_config_with test/inputs/fulljob.yml From c17f02461407d6bcafe2897a9da9f8daf2fc4ca6 Mon Sep 17 00:00:00 2001 From: Eddie Webb Date: Mon, 13 Jan 2020 20:19:57 -0500 Subject: [PATCH 3/3] fix splitting --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 78a3d1a..fd4888b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -80,7 +80,7 @@ jobs: name: Import Tests using BATS command: | export BATS_IMPORT_DEV_ORB="eddiewebb/<>@dev:${PR_NUMBER}" - export BATS_TEST_LIST=$(bats -l test | cirleci tests split | tr '\n' ' ') + export BATS_TEST_LIST=$(bats -l test | circleci tests split | tr '\n' ' ') echo "This node will run ${BATS_TEST_LIST}" bats test - pr-comment