mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-29 17:52:32 +00:00
VAULT-28638: Cost optimize the Security scan workflow (#28067)
Optimize the cost of the Security `scan` workflow by utilizing a different runner. Previously this workflow would use the `custom-linux-xl` in `vault` vs. the `c6a.4xlarge` on-demand runner in `vault-enterprise. This resulted in the `vault` workflow costing an order of magnitude more each month. I tested with the following instances sizes to compare cost to execution time: | Runnner | Estimated Time | Cost Factor | Cost Score | |---------|-----------------|-------------|-------------| |ubuntu-latest|19m|1|19| |custom-linux-small|21.5m|2|43| |custom-linux-medium|11.5m|4|46| |custom-linux-xl|8.5m|16|136| Currently the `CI` and `build` require workflows take anywhere from 16-20 minutes on `vault`. Our goal is to not exceed that. At this time we're going to try out `ubuntu-latest` as it gives us ~85% savings and by far the best bang for our buck. If it ends up being a burden we can switch to `custom-linux-medium` for ~66% cost savings but still a reasonable runtime. Signed-off-by: Ryan Cragun <me@ryan.ec>
This commit is contained in:
9
.github/workflows/security-scan.yml
vendored
9
.github/workflows/security-scan.yml
vendored
@@ -15,12 +15,13 @@ on:
|
||||
|
||||
jobs:
|
||||
scan:
|
||||
runs-on: ${{ fromJSON(vars.RUNNER_XL) }}
|
||||
runs-on: ${{ github.repository == 'hashicorp/vault' && 'ubuntu-latest' || fromJSON('["","ondemand","os=linux","type=c6a.4xlarge"]') }}
|
||||
# The first check ensures this doesn't run on community-contributed PRs, who
|
||||
# won't have the permissions to run this job.
|
||||
if: ${{ (github.repository != 'hashicorp/vault' || (github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name))
|
||||
&& (github.actor != 'dependabot[bot]') && ( github.actor != 'hc-github-team-secure-vault-core') }}
|
||||
|
||||
if: |
|
||||
(startsWith(github.repository, 'hashicorp/vault') || (github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name)) &&
|
||||
github.actor != 'dependabot[bot]' &&
|
||||
github.actor != 'hc-github-team-secure-vault-core'
|
||||
steps:
|
||||
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
|
||||
|
||||
Reference in New Issue
Block a user