[ci] use re-usable config. components (#421)

This commit is contained in:
Abraham Gonzalez
2020-02-04 18:33:08 -08:00
committed by GitHub
parent 59dd6a79ff
commit 3e4c99e044

View File

@@ -1,16 +1,142 @@
# CircleCI Configuration File # CircleCI Configuration File
# version of circleci # version of circleci
version: 2 version: 2.1
# set of jobs to run parameters:
jobs: verilator-cache-version:
commit-on-master-check: type: string
default: "v3"
tools-cache-version:
type: string
default: "v4"
# default execution env.s
executors:
main-env:
docker: docker:
- image: riscvboom/riscvboom-images:0.0.12 - image: riscvboom/riscvboom-images:0.0.12
environment: environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
# re-usable commands
commands:
toolchain-build:
description: "Build a toolchain"
parameters:
tools-version:
type: string
default: "riscv-tools"
steps:
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- << parameters.tools-version >>-installed-<< pipeline.parameters.tools-cache-version >>-{{ checksum "../<< parameters.tools-version >>.hash" }}
- run:
name: Building << parameters.tools-version >>
command: |
.circleci/build-toolchains.sh << parameters.tools-version >>
no_output_timeout: 120m
- save_cache:
key: << parameters.tools-version >>-installed-<< pipeline.parameters.tools-cache-version >>-{{ checksum "../<< parameters.tools-version >>.hash" }}
paths:
- "/home/riscvuser/<< parameters.tools-version >>-install"
ssh-checkout:
description: "Add SSH key and checkout code"
steps:
- add_ssh_keys:
fingerprints:
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
setup-tools-verilator:
description: "Get toolchain and verilator"
parameters:
tools-version:
type: string
default: "riscv-tools"
steps:
- ssh-checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- << parameters.tools-version >>-installed-<< pipeline.parameters.tools-cache-version >>-{{ checksum "../<< parameters.tools-version >>.hash" }}
- restore_cache:
keys:
- verilator-installed-<< pipeline.parameters.verilator-cache-version >>-{{ checksum "sims/verilator/verilator.mk" }}
prepare-rtl:
description: "Run the prepare step of RTL"
parameters:
tools-version:
type: string
default: "riscv-tools"
project-key:
type: string
timeout:
type: string
default: "120m"
build-script:
type: string
default: "do-rtl-build.sh"
steps:
- setup-tools-verilator:
tools-version: "<< parameters.tools-version >>"
- run:
name: Building << parameters.project-key >> subproject using Verilator
command: .circleci/<< parameters.build-script >> << parameters.project-key >>
no_output_timeout: << parameters.timeout >>
- save_cache:
key: << parameters.project-key >>-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
run-tests:
description: "Run a set of tests"
parameters:
tools-version:
type: string
default: "riscv-tools"
project-key:
type: string
extra-cache-restore:
type: string
default: ""
run-script:
type: string
default: "run-tests.sh"
timeout:
type: string
default: "10m"
steps:
- setup-tools-verilator:
tools-version: "<< parameters.tools-version >>"
- restore_cache:
keys:
- << parameters.project-key >>-{{ .Branch }}-{{ .Revision }}
- when:
condition: << parameters.extra-cache-restore >>
steps:
- restore_cache:
keys:
- << parameters.extra-cache-restore >>-{{ .Branch }}-{{ .Revision }}
- run:
name: Run << parameters.project-key >> subproject tests
command: .circleci/<< parameters.run-script >> << parameters.project-key >>
no_output_timeout: << parameters.timeout >>
# set of jobs to run
jobs:
commit-on-master-check:
executor: main-env
steps: steps:
- checkout - checkout
- run: - run:
@@ -18,94 +144,42 @@ jobs:
command: | command: |
.circleci/check-commit.sh .circleci/check-commit.sh
install-riscv-toolchain: install-riscv-toolchain:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - toolchain-build:
- run: tools-version: "riscv-tools"
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- run:
name: Building riscv-tools toolchain
command: |
.circleci/build-toolchains.sh riscv-tools
no_output_timeout: 120m
- save_cache:
key: riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
paths:
- "/home/riscvuser/riscv-tools-install"
install-esp-toolchain: install-esp-toolchain:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - toolchain-build:
- run: tools-version: "esp-tools"
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- esp-tools-installed-v4-{{ checksum "../esp-tools.hash" }}
- run:
name: Building esp-tools toolchain
command: |
.circleci/build-toolchains.sh esp-tools
no_output_timeout: 120m
- save_cache:
key: esp-tools-installed-v4-{{ checksum "../esp-tools.hash" }}
paths:
- "/home/riscvuser/esp-tools-install"
install-verilator: install-verilator:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - ssh-checkout
fingerprints:
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- restore_cache: - restore_cache:
keys: keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} - verilator-installed-<< pipeline.parameters.verilator-cache-version >>-{{ checksum "sims/verilator/verilator.mk" }}
- run: - run:
name: Build Verilator name: Build Verilator
command: | command: |
.circleci/build-verilator.sh .circleci/build-verilator.sh
no_output_timeout: 120m no_output_timeout: 120m
- save_cache: - save_cache:
key: verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }} key: verilator-installed-<< pipeline.parameters.verilator-cache-version >>-{{ checksum "sims/verilator/verilator.mk" }}
paths: paths:
- "/home/riscvuser/verilator" - "/home/riscvuser/verilator"
build-extra-tests: build-extra-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - ssh-checkout
fingerprints:
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- run: - run:
name: Create hash of toolchains name: Create hash of toolchains
command: | command: |
.circleci/create-hash.sh .circleci/create-hash.sh
- restore_cache: - restore_cache:
keys: keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }} - riscv-tools-installed-<< pipeline.parameters.tools-cache-version >>-{{ checksum "../riscv-tools.hash" }}
- run: - run:
name: Build extra tests name: Build extra tests
command: .circleci/build-extra-tests.sh command: .circleci/build-extra-tests.sh
@@ -115,593 +189,129 @@ jobs:
paths: paths:
- "/home/riscvuser/project/tests" - "/home/riscvuser/project/tests"
prepare-example: prepare-example:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "example"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the example subproject using Verilator
command: .circleci/do-rtl-build.sh example
no_output_timeout: 120m
- save_cache:
key: example-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-boomrocketexample: prepare-boomrocketexample:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "boomrocketexample"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e" timeout: "240m"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the boomrocketexample subproject using Verilator
command: .circleci/do-rtl-build.sh boomrocketexample
no_output_timeout: 240m
- save_cache:
key: boomrocketexample-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-boom: prepare-boom:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "boom"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the boom subproject using Verilator
command: .circleci/do-rtl-build.sh boom
no_output_timeout: 120m
- save_cache:
key: boom-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-rocketchip: prepare-rocketchip:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "rocketchip"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the rocketchip subproject using Verilator
command: .circleci/do-rtl-build.sh rocketchip
no_output_timeout: 120m
- save_cache:
key: rocketchip-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-blockdevrocketchip: prepare-blockdevrocketchip:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "blockdevrocketchip"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the blockdevrocketchip subproject using Verilator
command: .circleci/do-rtl-build.sh blockdevrocketchip
no_output_timeout: 120m
- save_cache:
key: blockdevrocketchip-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-hwacha: prepare-hwacha:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: tools-version: "esp-tools"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e" project-key: "hwacha"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- esp-tools-installed-v4-{{ checksum "../esp-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the hwacha subproject using Verilator
command: .circleci/do-rtl-build.sh hwacha
no_output_timeout: 120m
- save_cache:
key: hwacha-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-gemmini: prepare-gemmini:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: tools-version: "esp-tools"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e" project-key: "gemmini"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- esp-tools-installed-v4-{{ checksum "../esp-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the gemmini subproject using Verilator
command: .circleci/do-rtl-build.sh gemmini
no_output_timeout: 120m
- save_cache:
key: gemmini-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-tracegen: prepare-tracegen:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "tracegen"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the tracegen subproject using Verilator
command: .circleci/do-rtl-build.sh tracegen
no_output_timeout: 120m
- save_cache:
key: tracegen-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-tracegen-boom: prepare-tracegen-boom:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "tracegen-boom"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building the tracegen-boom subproject using Verilator
command: .circleci/do-rtl-build.sh tracegen-boom
no_output_timeout: 120m
- save_cache:
key: tracegen-boom-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-firesim: prepare-firesim:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "firesim"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e" build-script: "do-firesim-build.sh"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building FireSim MIDAS simulator using Verilator
command: .circleci/do-firesim-build.sh firesim
no_output_timeout: 120m
- save_cache:
key: firesim-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
prepare-fireboom: prepare-fireboom:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- add_ssh_keys: - prepare-rtl:
fingerprints: project-key: "fireboom"
- "3e:c3:02:5b:ed:64:8c:b7:b0:04:43:bc:83:43:73:1e" build-script: "do-firesim-build.sh"
- checkout
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Building FireSim MIDAS simulator using Verilator
command: .circleci/do-firesim-build.sh fireboom
no_output_timeout: 120m
- save_cache:
key: fireboom-{{ .Branch }}-{{ .Revision }}
paths:
- "/home/riscvuser/project"
midasexamples-run-tests: midasexamples-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - setup-tools-verilator
- run:
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run: - run:
name: Run midasexamples tests name: Run midasexamples tests
command: .circleci/run-midasexamples-tests.sh command: .circleci/run-midasexamples-tests.sh
example-run-tests: example-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: project-key: "example"
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- example-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run example tests
command: .circleci/run-tests.sh example
boomrocketexample-run-tests: boomrocketexample-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: project-key: "boomrocketexample"
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- boomrocketexample-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run boomrocketexample tests
command: .circleci/run-tests.sh boomrocketexample
boom-run-tests: boom-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: project-key: "boom"
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- boom-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run boom tests
command: .circleci/run-tests.sh boom
rocketchip-run-tests: rocketchip-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: project-key: "rocketchip"
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- rocketchip-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run rocketchip tests
command: .circleci/run-tests.sh rocketchip
hwacha-run-tests: hwacha-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: tools-version: "esp-tools"
name: Create hash of toolchains project-key: "hwacha"
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- esp-tools-installed-v4-{{ checksum "../esp-tools.hash" }}
- restore_cache:
keys:
- hwacha-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run hwacha tests
command: .circleci/run-tests.sh hwacha
gemmini-run-tests: gemmini-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: tools-version: "esp-tools"
name: Create hash of toolchains project-key: "gemmini"
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- esp-tools-installed-v4-{{ checksum "../esp-tools.hash" }}
- restore_cache:
keys:
- gemmini-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run gemmini tests
command: .circleci/run-tests.sh gemmini
tracegen-run-tests: tracegen-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: project-key: "tracegen"
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- tracegen-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run tracegen tests
command: .circleci/run-tests.sh tracegen
tracegen-boom-run-tests: tracegen-boom-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: project-key: "tracegen-boom"
name: Create hash of toolchains
command: |
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v2-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- tracegen-boom-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run tracegen-boom tests
command: .circleci/run-tests.sh tracegen-boom
firesim-run-tests: firesim-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: extra-cache-restore: "extra-tests"
name: Create hash of toolchains project-key: "firesim"
command: | run-script: "run-firesim-tests.sh"
.circleci/create-hash.sh
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- firesim-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- extra-tests-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run FireSim tests
command: .circleci/run-firesim-tests.sh firesim
fireboom-run-tests: fireboom-run-tests:
docker: executor: main-env
- image: riscvboom/riscvboom-images:0.0.12
environment:
JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit
TERM: dumb
steps: steps:
- checkout - run-tests:
- run: extra-cache-restore: "extra-tests"
name: Create hash of toolchains project-key: "fireboom"
command: | run-script: "run-firesim-tests.sh"
.circleci/create-hash.sh timeout: "20m"
- restore_cache:
keys:
- riscv-tools-installed-v4-{{ checksum "../riscv-tools.hash" }}
- restore_cache:
keys:
- fireboom-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- extra-tests-{{ .Branch }}-{{ .Revision }}
- restore_cache:
keys:
- verilator-installed-v3-{{ checksum "sims/verilator/verilator.mk" }}
- run:
name: Run FireSim tests
command: .circleci/run-firesim-tests.sh fireboom
no_output_timeout: 20m
# Order and dependencies of jobs to run # Order and dependencies of jobs to run
workflows: workflows: