From 4599e4154e40d20cf3e1d9b0930689ad328d9700 Mon Sep 17 00:00:00 2001 From: Andrey Marchenko Date: Wed, 4 Oct 2023 16:07:52 +0200 Subject: [PATCH] run builds with latest dependencies versions on cron --- .circleci/config.yml | 89 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 82 insertions(+), 7 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index afe4f31f..b86dbbb4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -103,12 +103,12 @@ step_appraisal_install: &step_appraisal_install bundle exec appraisal generate # Generate the appraisal files to match the lockfiles in the tree echo "All required gems were found in cache." fi -# TODO: this is something to use for edge tests (against newest versions of rspec, minitest, etc.) -# step_appraisal_update: &step_appraisal_update -# run: -# name: Update Appraisal gems -# command: | # Remove all generated gemfiles and lockfiles, resolve, and install dependencies again -# bundle exec appraisal update +step_appraisal_update: &step_appraisal_update + run: + name: Update Appraisal gems + command: + | # Remove all generated gemfiles and lockfiles, resolve, and install dependencies again + bundle exec appraisal update step_compute_bundle_checksum: &step_compute_bundle_checksum run: name: Compute bundle checksum @@ -165,7 +165,17 @@ orbs: - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-{{ checksum ".circleci/images/primary/binary_version" }}-<>-{{ checksum "lib/datadog/ci/version.rb" }} - *check_exact_bundle_cache_hit - *step_bundle_install - - *step_appraisal_install + - when: + condition: + equal: [<< parameters.edge >>, true] + steps: + - *step_appraisal_update # Run on latest version of all gems we integrate with + - when: + condition: + not: + equal: [<< parameters.edge >>, true] + steps: + - *step_appraisal_install # Run on a stable set of gems we integrate with - *save_bundle_checksum - save_cache: key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<>-{{ .Environment.CIRCLE_SHA1 }}' @@ -389,3 +399,68 @@ workflows: name: test-jruby-9.4 requires: - build-jruby-9.4 + # This workflow runs the same `build` and `test` jobs as above on a schedule. + edge: + triggers: + - schedule: + cron: '0 0 * * 1-5' # Every weekday + filters: + branches: + only: + - main + jobs: + - orb/build: + <<: *config-2_7 + name: build-2.7 + edge: true + - orb/test: + <<: *config-2_7 + name: test-2.7 + requires: + - build-2.7 + - orb/build: + <<: *config-3_0 + name: build-3.0 + edge: true + - orb/test: + <<: *config-3_0 + name: test-3.0 + requires: + - build-3.0 + - orb/build: + <<: *config-3_1 + name: build-3.1 + edge: true + - orb/test: + <<: *config-3_1 + name: test-3.1 + requires: + - build-3.1 + - orb/build: + <<: *config-3_2 + name: build-3.2 + edge: true + - orb/test: + <<: *config-3_2 + name: test-3.2 + requires: + - build-3.2 + - orb/build: + <<: *config-3_3 + name: build-3.3 + edge: true + - orb/test: + <<: *config-3_3 + name: test-3.3 + requires: + - build-3.3 + # ADD NEW RUBIES HERE + - orb/build: + <<: *config-jruby-9_4 + name: build-jruby-9.4 + edge: true + - orb/test: + <<: *config-jruby-9_4 + name: test-jruby-9.4 + requires: + - build-jruby-9.4