Skip to content

Commit

Permalink
Optimize CircleCI builds with a mix of xlarge and large VMs (#32174)
Browse files Browse the repository at this point in the history
* Compare CircleCI build time between xlarge and large
* Use `xlarge` for builds, `large` for tests
  • Loading branch information
rsimha committed Jan 25, 2021
1 parent b1f0cd3 commit 2dac223
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ push_builds_only: &push_builds_only
- /^amp-release-.*$/

executors:
amphtml-executor:
amphtml-large-executor:
machine:
image: ubuntu-2004:202010-01
resource_class: large
amphtml-xlarge-executor:
machine:
image: ubuntu-2004:202010-01
resource_class: xlarge
Expand Down Expand Up @@ -62,47 +66,47 @@ commands:
jobs:
'Checks':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
name: 'Checks'
command: node build-system/pr-check/checks.js
'Unminified Build':
executor:
name: amphtml-executor
name: amphtml-xlarge-executor
steps:
- setup_vm
- run:
name: 'Unminified Build'
command: node build-system/pr-check/unminified-build.js
'Nomodule Build':
executor:
name: amphtml-executor
name: amphtml-xlarge-executor
steps:
- setup_vm
- run:
name: 'Nomodule Build'
command: node build-system/pr-check/nomodule-build.js
'Module Build':
executor:
name: amphtml-executor
name: amphtml-xlarge-executor
steps:
- setup_vm
- run:
name: 'Module Build'
command: node build-system/pr-check/module-build.js
'Bundle Size':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
name: 'Bundle Size'
command: node build-system/pr-check/bundle-size.js
'Validator Tests':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
Expand All @@ -113,79 +117,79 @@ jobs:
command: node build-system/pr-check/validator-tests.js
'Visual Diff Tests':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
name: 'Visual Diff Tests'
command: node build-system/pr-check/visual-diff-tests.js
'Unit Tests':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
name: 'Unit Tests'
command: node build-system/pr-check/unit-tests.js
'Unminified Tests':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
name: 'Unminified Tests'
command: node build-system/pr-check/unminified-tests.js
'Nomodule Tests':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
name: 'Nomodule Tests'
command: node build-system/pr-check/nomodule-tests.js
'Module Tests':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
name: 'Module Tests'
command: node build-system/pr-check/module-tests.js
'End-to-End Tests':
executor:
name: amphtml-executor
name: amphtml-large-executor
steps:
- setup_vm
- run:
name: 'End-to-End Tests'
command: node build-system/pr-check/e2e-tests.js
'Performance Tests':
executor:
name: amphtml-executor
name: amphtml-xlarge-executor
steps:
- setup_vm
- run:
name: 'Performance Tests'
command: node build-system/pr-check/performance-tests.js
'Experiment A Tests':
executor:
name: amphtml-executor
name: amphtml-xlarge-executor
steps:
- setup_vm
- run:
name: 'Experiment A Tests'
command: node build-system/pr-check/experiment-tests.js --experiment=experimentA
'Experiment B Tests':
executor:
name: amphtml-executor
name: amphtml-xlarge-executor
steps:
- setup_vm
- run:
name: 'Experiment B Tests'
command: node build-system/pr-check/experiment-tests.js --experiment=experimentB
'Experiment C Tests':
executor:
name: amphtml-executor
name: amphtml-xlarge-executor
steps:
- setup_vm
- run:
Expand Down

0 comments on commit 2dac223

Please sign in to comment.