blob: 7a0fa3fe692e8421f7d854c4e759d9be5c1550b6 [file] [log] [blame]
Sam Elliottd2028282020-06-02 18:18:54 +01001# Copyright lowRISC contributors.
2# Licensed under the Apache License, Version 2.0, see LICENSE for details.
3# SPDX-License-Identifier: Apache-2.0
4#
lowRISC Contributors802543a2019-08-31 12:12:56 +01005# Azure Pipelines CI build configuration
6# Documentation at https://aka.ms/yaml
7
8variables:
Rupert Swarbrickdf237122021-04-20 14:43:48 +01009 #
Alphan Ulusoye2205892021-05-13 09:36:17 -040010 # If updating VERILATOR_VERSION, OPENOCD_VERSION, TOOLCHAIN_VERSION or RUST_VERSION
11 # update the definitions in util/container/Dockerfile as well.
Rupert Swarbrickdf237122021-04-20 14:43:48 +010012 #
Philipp Wagnere8ade052020-11-16 11:18:49 +000013 VERILATOR_VERSION: 4.104
Philipp Wagnerb02d9c82021-02-24 15:00:54 +000014 OPENOCD_VERSION: 0.11.0
Miguel Osorio88179fc2019-09-19 23:37:48 -070015 TOOLCHAIN_PATH: /opt/buildcache/riscv
Philipp Wagner4db8b1c2021-05-05 09:58:40 +010016 VERIBLE_VERSION: v0.0-1213-g9e5c085
Alphan Ulusoye2205892021-05-13 09:36:17 -040017 RUST_VERSION: 1.52.1
Miguel Osorio88179fc2019-09-19 23:37:48 -070018 # Release tag from https://github.com/lowRISC/lowrisc-toolchains/releases
Philipp Wagnerca403532021-04-13 09:15:28 +010019 TOOLCHAIN_VERSION: 20210412-1
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -060020 # This controls where builds happen, and gets picked up by build_consts.sh.
21 BUILD_ROOT: $(Build.ArtifactStagingDirectory)
Philipp Wagnerb8b053f2021-05-25 09:26:34 +010022 VIVADO_VERSION: "2020.2"
lowRISC Contributors802543a2019-08-31 12:12:56 +010023
24trigger:
lowRISC Contributors802543a2019-08-31 12:12:56 +010025 batch: true
26 branches:
27 include:
Philipp Wagnerf565b662020-07-22 14:04:40 +010028 - "*"
Philipp Wagnerdd1706e2020-03-15 14:39:59 +000029 tags:
30 include:
31 - "*"
32pr:
33 branches:
34 include:
Philipp Wagnerf565b662020-07-22 14:04:40 +010035 - "*"
lowRISC Contributors802543a2019-08-31 12:12:56 +010036
Philipp Wagnerbd9ae432019-11-01 14:33:30 +000037jobs:
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -060038- job: lint
Sam Elliott67e30fa2020-10-06 18:08:05 +010039 displayName: Run code quality checks (quick lint)
Philipp Wagnerbd9ae432019-11-01 14:33:30 +000040 pool:
Philipp Wagner5d1450c2020-10-06 12:26:36 +010041 vmImage: ubuntu-18.04
Philipp Wagnerbd9ae432019-11-01 14:33:30 +000042 steps:
43 - bash: |
Garret Kellyf5608d02019-11-01 16:28:11 -040044 sudo apt-get remove -y clang-6.0 libclang-common-6.0-dev libclang1-6.0 libllvm6.0
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -060045 displayName: Remove existing Clang installation
46 - template: ci/install-package-dependencies.yml
Rupert Swarbrick105df012021-01-29 11:33:13 +000047 ## !!!
48 ##
49 ## The steps below here are duplicated in ci/jobs/quick-lint.sh
50 ## to allow developers to "run CI" locally. Keep them in sync.
51 ##
52 ## !!!
53 - bash: ci/scripts/show-env.sh
Philipp Wagner99862392020-07-22 13:32:34 +010054 displayName: Display environment information
Rupert Swarbrick105df012021-01-29 11:33:13 +000055 - bash: ci/scripts/lint-commits.sh $SYSTEM_PULLREQUEST_TARGETBRANCH
Philipp Wagner93cdcef2021-01-19 14:31:47 +000056 condition: eq(variables['Build.Reason'], 'PullRequest')
57 displayName: Check commit metadata
Rupert Swarbrick105df012021-01-29 11:33:13 +000058 - bash: ci/scripts/check-licence-headers.sh $SYSTEM_PULLREQUEST_TARGETBRANCH
Philipp Wagner93cdcef2021-01-19 14:31:47 +000059 condition: eq(variables['Build.Reason'], 'PullRequest')
60 displayName: Check Licence Headers
Rupert Swarbrickf0d5b0c2021-03-26 11:48:42 +000061 - bash: ci/scripts/exec-check.sh
62 condition: eq(variables['Build.Reason'], 'PullRequest')
63 displayName: Check executable bits
Rupert Swarbrick5dc62b02021-04-28 09:39:18 +010064 - bash: ci/scripts/check-ascii.sh
65 condition: eq(variables['Build.Reason'], 'PullRequest')
66 displayName: Check for non-ASCII characters in source code
Rupert Swarbrick105df012021-01-29 11:33:13 +000067 - bash: ci/scripts/python-lint.sh $SYSTEM_PULLREQUEST_TARGETBRANCH
Rupert Swarbrickfb9fdb62021-02-01 17:30:48 +000068 condition: eq(variables['Build.Reason'], 'PullRequest')
Rupert Swarbrick746f9b12021-03-26 17:19:00 +000069 displayName: Run Python lint (flake8)
Rupert Swarbrick2d70c752020-03-24 17:23:40 +000070 continueOnError: true
Rupert Swarbrick746f9b12021-03-26 17:19:00 +000071 - bash: ci/scripts/mypy.sh
72 condition: eq(variables['Build.Reason'], 'PullRequest')
73 displayName: Run Python lint (mypy)
Rupert Swarbrick105df012021-01-29 11:33:13 +000074 - bash: ci/scripts/check-generated.sh
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -060075 displayName: Ensure all generated files are clean and up-to-date
Rupert Swarbrick105df012021-01-29 11:33:13 +000076 - bash: ci/scripts/clang-format.sh $SYSTEM_PULLREQUEST_TARGETBRANCH
Philipp Wagnerbd9ae432019-11-01 14:33:30 +000077 condition: eq(variables['Build.Reason'], 'PullRequest')
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -060078 displayName: Use clang-format to check C/C++ coding style
Rupert Swarbrick105df012021-01-29 11:33:13 +000079 - bash: ci/scripts/include-guard.sh $SYSTEM_PULLREQUEST_TARGETBRANCH
Miguel Young de la Sotab23dc8c2020-01-14 13:52:33 -050080 condition: eq(variables['Build.Reason'], 'PullRequest')
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -060081 displayName: Check formatting on header guards
Rafal Kapuscik5802fd82021-04-14 16:03:31 +020082 - bash: ci/scripts/verible-format.sh
83 condition: eq(variables['Build.Reason'], 'PullRequest')
84 displayName: Check formatting of files on allow list with Verible
85 continueOnError: true
Rupert Swarbrick105df012021-01-29 11:33:13 +000086 - bash: ci/scripts/verible-lint.sh rtl
Michael Schaffnerde326062020-07-14 17:50:35 -070087 condition: eq(variables['Build.Reason'], 'PullRequest')
Michael Schaffnera94241f2020-08-03 15:50:14 -070088 displayName: Style-Lint RTL Verilog source files with Verible
Rupert Swarbrick105df012021-01-29 11:33:13 +000089 - bash: ci/scripts/verible-lint.sh dv
Michael Schaffnera94241f2020-08-03 15:50:14 -070090 condition: eq(variables['Build.Reason'], 'PullRequest')
91 displayName: Style-Lint DV Verilog source files with Verible
Rupert Swarbrick105df012021-01-29 11:33:13 +000092 - bash: ci/scripts/build-docs.sh
Philipp Wagner93cdcef2021-01-19 14:31:47 +000093 displayName: Render documentation
Rupert Swarbrick105df012021-01-29 11:33:13 +000094 - bash: ci/scripts/build-site.sh
Philipp Wagner93cdcef2021-01-19 14:31:47 +000095 displayName: Render landing site
Rupert Swarbrickfb9fdb62021-02-01 17:30:48 +000096 - bash: ci/scripts/get-build-type.sh "$SYSTEM_PULLREQUEST_TARGETBRANCH" "$(Build.Reason)"
Greg Chadwick99fe0642020-08-04 15:42:45 +010097 displayName: Check what kinds of changes the PR contains
Philipp Wagnerbd9ae432019-11-01 14:33:30 +000098 name: DetermineBuildType
Philipp Wagner1e643552019-09-04 15:39:14 +010099
Sam Elliott67e30fa2020-10-06 18:08:05 +0100100- job: slow_lints
101 displayName: Run code quality checks (in-depth lint)
102 dependsOn: lint
103 pool:
Philipp Wagner5d1450c2020-10-06 12:26:36 +0100104 vmImage: ubuntu-18.04
Sam Elliott67e30fa2020-10-06 18:08:05 +0100105 steps:
106 - template: ci/install-package-dependencies.yml
Rupert Swarbrick2aff11b2021-02-16 17:11:37 +0000107 - bash: ci/scripts/check-vendoring.sh
Sam Elliott67e30fa2020-10-06 18:08:05 +0100108 displayName: Check vendored directories are up-to-date
109
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600110- job: sw_build
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100111 displayName: Build Software for Earl Grey toplevel design
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000112 dependsOn: lint
Philipp Wagner9d20ee62019-11-29 14:27:28 +0000113 condition: and(succeeded(), eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'))
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000114 pool:
Philipp Wagner5d1450c2020-10-06 12:26:36 +0100115 vmImage: ubuntu-18.04
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000116 steps:
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600117 - template: ci/install-package-dependencies.yml
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000118 - bash: |
119 set -x
120 sudo util/get-toolchain.py \
Srikrishna Iyer98333ba2020-11-16 23:12:29 -0800121 --install-dir="$TOOLCHAIN_PATH" \
Sam Elliotteb8ace42020-06-03 17:47:55 +0100122 --release-version="$TOOLCHAIN_VERSION" \
Philipp Wagner1c514412019-11-27 14:48:47 +0000123 --update
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600124 displayName: Install toolchain
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000125 - bash: |
Miguel Young de la Sota63793572019-11-13 14:18:51 -0600126 . util/build_consts.sh
Miguel Young de la Sota4a4946d2019-11-21 10:44:18 -0600127 ./meson_init.sh -A
Miguel Young de la Sota76526c32020-01-28 10:24:41 -0500128 ninja -C "$OBJ_DIR" all
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600129 displayName: Build embedded targets
Miguel Young de la Sota9d20b3d2020-02-03 16:35:31 -0500130 - bash: |
131 . util/build_consts.sh
132 ninja -C "$OBJ_DIR" test
Sam Elliotteb8ace42020-06-03 17:47:55 +0100133 displayName: Run unit tests
Philipp Wagner622ec3f2021-02-02 18:37:24 +0000134 - bash: |
135 . util/build_consts.sh
136 # Remove all Nexys Video-related build artifacts, which will be produced
137 # by the sw_build_nexysvideo job below (see comment there).
138 find "$BIN_DIR/sw/device" -name '*fpga_nexysvideo*' -type f -delete
139 displayName: Delete all Nexys Video build artifacts
Sam Elliotteb8ace42020-06-03 17:47:55 +0100140 - template: ci/upload-artifacts-template.yml
Miguel Young de la Sotab4df8602019-11-21 12:44:11 -0600141 parameters:
Philipp Wagner5aa7ed32021-02-02 18:53:36 +0000142 includePatterns:
143 - "/sw/***"
lowRISC Contributors802543a2019-08-31 12:12:56 +0100144
Philipp Wagner622ec3f2021-02-02 18:37:24 +0000145# Software targeting the Nexys Video board is produced by patching the source
146# tree before building. This produces a full sw build tree, however only the
147# artifacts with "nexysvideo" in the name are actually the ones we're looking
148# for. Everything else will be discarded.
149# TODO: This is a rather ugly hack, which will go away once we properly support
150# building more than one top-level design with different parametrizations.
151# Work towards this goal is tracked in issue #4669.
Timothy Chenf835aa32021-01-08 16:27:50 -0800152- job: sw_build_nexysvideo
153 displayName: Build Software for Earl Grey toplevel design targeting the Nexys Video board
154 dependsOn: lint
Timothy Chenac28d1e2021-08-18 10:58:23 -0700155 # Make the following condition always false for now, see #7814.
156 condition: and(succeeded(), False, eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'))
Timothy Chenf835aa32021-01-08 16:27:50 -0800157 pool:
158 vmImage: ubuntu-18.04
159 steps:
160 - template: ci/install-package-dependencies.yml
161 - bash: |
162 set -x
163 sudo util/get-toolchain.py \
164 --install-dir="$TOOLCHAIN_PATH" \
165 --release-version="$TOOLCHAIN_VERSION" \
166 --update
167 displayName: Install toolchain
168 - bash: |
169 . util/build_consts.sh
170 ./hw/top_earlgrey/util/top_earlgrey_reduce.py
171 ./meson_init.sh -A
172 ninja -C "$OBJ_DIR" all
Philipp Wagner622ec3f2021-02-02 18:37:24 +0000173
174 # Delete all build artifacts which are *not* for the Nexys Video board.
175 find "$BIN_DIR/sw/device" -not -name '*fpga_nexysvideo*' -type f -delete
Timothy Chenf835aa32021-01-08 16:27:50 -0800176 displayName: Build embedded targets
177 - bash: |
178 . util/build_consts.sh
179 ninja -C "$OBJ_DIR" test
180 displayName: Run unit tests
181 - template: ci/upload-artifacts-template.yml
182 parameters:
Philipp Wagner5aa7ed32021-02-02 18:53:36 +0000183 includePatterns:
184 - "/sw/device/**/*nexysvideo*"
Timothy Chenf835aa32021-01-08 16:27:50 -0800185
Pirmin Vogel18d8e132021-08-03 14:35:29 +0200186# Software targeting the English Breakfast top level is produced by patching
187# the source tree before building. This builds a selected subset of software
188# only.
189# TODO: This is a rather ugly hack, which will go away once we properly support
190# building more than one top-level design with different parametrizations.
191# Work towards this goal is tracked in issue #4669.
192- job: sw_build_englishbreakfast
193 displayName: Build Software for English Breakfast toplevel design
194 dependsOn: lint
195 condition: and(succeeded(), eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'))
196 pool:
197 vmImage: ubuntu-18.04
198 steps:
199 - template: ci/install-package-dependencies.yml
200 - bash: |
201 set -x
202 sudo util/get-toolchain.py \
203 --install-dir="$TOOLCHAIN_PATH" \
204 --release-version="$TOOLCHAIN_VERSION" \
205 --update
206 displayName: Install toolchain
207 - bash: |
208 . util/build_consts.sh
209 ./meson_init.sh -A
210 # Patch software.
211 ./hw/top_englishbreakfast/util/prepare_sw.py
212 # Build FPGA boot ROM and aes_serial binary for FPGA SCA.
213 ninja -C "$OBJ_DIR" sw/device/boot_rom/boot_rom_export_fpga_nexysvideo
214 ninja -C "$OBJ_DIR" sw/device/sca/aes_serial_export_fpga_nexysvideo
215 # Build binaries for Verilator simulation.
216 ninja -C "$OBJ_DIR" sw/device/boot_rom/boot_rom_export_sim_verilator
217 ninja -C "$OBJ_DIR" sw/device/tests/dif_aes_smoketest_export_sim_verilator
218 ninja -C "$OBJ_DIR" sw/device/examples/hello_world/hello_world_export_sim_verilator
219 displayName: Build embedded targets
220 - template: ci/upload-artifacts-template.yml
221 parameters:
222 includePatterns:
223 - "/sw/device/***"
224
Luís Marques5849cd12020-06-26 10:33:55 +0100225# We continue building with GCC, despite defaulting to Clang. This is a copy of
226# `sw_build` with `meson_init.sh` configured with the GCC toolchain, instead of
227# the default toolchain.
228- job: sw_build_gcc
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100229 displayName: Build Software for Earl Grey toplevel design (with GCC)
Sam Elliott7a00a4b2020-06-03 17:48:10 +0100230 dependsOn: lint
231 condition: and(succeeded(), eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'))
232 pool:
Philipp Wagner5d1450c2020-10-06 12:26:36 +0100233 vmImage: ubuntu-18.04
Sam Elliott7a00a4b2020-06-03 17:48:10 +0100234 steps:
235 - template: ci/install-package-dependencies.yml
236 - bash: |
237 set -x
238 sudo util/get-toolchain.py \
Srikrishna Iyer98333ba2020-11-16 23:12:29 -0800239 --install-dir="$TOOLCHAIN_PATH" \
Sam Elliott7a00a4b2020-06-03 17:48:10 +0100240 --release-version="$TOOLCHAIN_VERSION" \
241 --update
242 displayName: Install toolchain
243 - bash: |
244 . util/build_consts.sh
245 ./meson_init.sh -A \
Luís Marques5849cd12020-06-26 10:33:55 +0100246 -t "$TOOLCHAIN_PATH/meson-riscv32-unknown-elf-gcc.txt"
Sam Elliott7a00a4b2020-06-03 17:48:10 +0100247 ninja -C "$OBJ_DIR" all
248 displayName: Build embedded targets
Sam Elliott7a00a4b2020-06-03 17:48:10 +0100249 - bash: |
250 . util/build_consts.sh
251 ninja -C "$OBJ_DIR" test
252 displayName: Run unit tests
Sam Elliott7a00a4b2020-06-03 17:48:10 +0100253
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700254- job: chip_earlgrey_verilator
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600255 displayName: Build Verilator simulation of the Earl Grey toplevel design
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000256 dependsOn: lint
Philipp Wagner9d20ee62019-11-29 14:27:28 +0000257 condition: and(succeeded(), eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'))
Philipp Wagner0907ca12020-04-21 12:04:32 +0100258 pool:
Philipp Wagner5d1450c2020-10-06 12:26:36 +0100259 vmImage: ubuntu-18.04
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000260 steps:
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600261 - template: ci/install-package-dependencies.yml
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000262 - bash: |
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000263 python3 --version
264 fusesoc --version
265 verilator --version
Michael Schaffneraa193f92020-12-16 11:16:17 -0800266 verible-verilog-lint --version
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600267 displayName: Display environment
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000268 - bash: |
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600269 . util/build_consts.sh
270 mkdir -p "$OBJ_DIR/hw"
271 mkdir -p "$BIN_DIR/hw/top_earlgrey"
272
Philipp Wagnerfa8c6922020-08-18 14:14:25 +0100273 # Compile the simulation without threading; the runners provided by
274 # Azure provide two virtual CPUs, which seems to equal one physical
275 # CPU (at most); the use of threading slows down the simulation.
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600276 fusesoc --cores-root=. \
Timothy Chenbe47dd72020-07-27 14:57:07 -0700277 run --flag=fileset_top --target=sim --setup --build \
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600278 --build-root="$OBJ_DIR/hw" \
Timothy Chenb7d0c272021-08-05 17:11:17 -0700279 lowrisc:dv:chip_verilator_sim \
Philipp Wagnera4b89b92021-05-20 22:25:42 +0100280 --verilator_options="--threads 4"
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600281
Timothy Chenb7d0c272021-08-05 17:11:17 -0700282 cp "$OBJ_DIR/hw/sim-verilator/Vchip_sim_tb" \
Timothy Chen28161082021-07-30 13:14:58 -0700283 "$BIN_DIR/hw/top_earlgrey/Vchip_earlgrey_verilator"
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600284 displayName: Build simulation with Verilator
285 - template: ci/upload-artifacts-template.yml
Miguel Young de la Sotab4df8602019-11-21 12:44:11 -0600286 parameters:
Philipp Wagner5aa7ed32021-02-02 18:53:36 +0000287 includePatterns:
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700288 - "/hw/top_earlgrey/Vchip_earlgrey_verilator"
Philipp Wagnerf4655a12019-10-30 11:59:15 +0000289
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700290- job: chip_englishbreakfast_verilator
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100291 displayName: Build Verilator simulation of the English Breakfast toplevel design
292 dependsOn: lint
293 condition: and(succeeded(), eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'))
294 pool:
295 vmImage: ubuntu-18.04
296 steps:
297 - template: ci/install-package-dependencies.yml
298 - bash: |
299 python3 --version
300 fusesoc --version
301 verilator --version
302 verible-verilog-lint --version
303 displayName: Display environment
304 - bash: |
305 . util/build_consts.sh
306 mkdir -p "$OBJ_DIR/hw"
307 mkdir -p "$BIN_DIR/hw/top_englishbreakfast"
308
309 # Compile the simulation without threading; the runners provided by
310 # Azure provide two virtual CPUs, which seems to equal one physical
311 # CPU (at most); the use of threading slows down the simulation.
312 fusesoc --cores-root=. \
313 run --flag=fileset_topgen --target=sim --setup --build \
314 --build-root="$OBJ_DIR/hw" \
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700315 lowrisc:systems:chip_englishbreakfast_verilator \
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100316 --verilator_options="--no-threads"
317
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700318 cp "$OBJ_DIR/hw/sim-verilator/Vchip_englishbreakfast_verilator" \
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100319 "$BIN_DIR/hw/top_englishbreakfast"
320 displayName: Build simulation with Verilator
321 - template: ci/upload-artifacts-template.yml
322 parameters:
Philipp Wagner5aa7ed32021-02-02 18:53:36 +0000323 includePatterns:
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700324 - "/hw/top_englishbreakfast/Vchip_englishbreakfast_verilator"
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100325
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600326- job: execute_verilated_tests
Alphan Ulusoya628be12021-05-14 16:24:02 -0400327 displayName: Execute tests on the Verilated system (excl. slow tests)
Philipp Wagnera4b89b92021-05-20 22:25:42 +0100328 pool: ci-public
Timothy Chen7d1436d2019-12-04 17:26:14 -0800329 dependsOn:
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700330 - chip_earlgrey_verilator
Timothy Chen7d1436d2019-12-04 17:26:14 -0800331 - sw_build
332 steps:
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600333 - template: ci/install-package-dependencies.yml
334 - template: ci/download-artifacts-template.yml
Philipp Wagnerbdfb9332021-02-02 18:10:06 +0000335 parameters:
336 downloadPartialBuildBinFrom:
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700337 - chip_earlgrey_verilator
Philipp Wagnerbdfb9332021-02-02 18:10:06 +0000338 - sw_build
Timothy Chen7d1436d2019-12-04 17:26:14 -0800339 - bash: |
Philipp Wagner33fadd02020-09-09 19:39:25 +0100340 # Install an additional pytest dependency for result upload.
341 pip3 install pytest-azurepipelines
342
Timothy Chen7d1436d2019-12-04 17:26:14 -0800343 . util/build_consts.sh
Philipp Wagner57418e72019-12-02 21:25:27 +0000344 pytest --version
Philipp Wagner03aaf322020-09-09 19:11:44 +0100345 pytest test/systemtest/earlgrey/test_sim_verilator.py \
Alphan Ulusoya628be12021-05-14 16:24:02 -0400346 -m "not slow" \
Philipp Wagner33fadd02020-09-09 19:39:25 +0100347 --log-cli-level=DEBUG \
Alphan Ulusoya628be12021-05-14 16:24:02 -0400348 --test-run-title="Run system tests with Verilator simulation (excl. slow tests)" \
Philipp Wagner33fadd02020-09-09 19:39:25 +0100349 --napoleon-docstrings
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600350 displayName: Execute tests
Timothy Chen7d1436d2019-12-04 17:26:14 -0800351
Pirmin Vogel18d8e132021-08-03 14:35:29 +0200352- job: execute_verilated_tests_englishbreakfast
353 displayName: Execute tests on the Verilated English Breakfast toplevel design
354 pool: ci-public
355 dependsOn:
356 - chip_englishbreakfast_verilator
357 - sw_build_englishbreakfast
358 steps:
359 - template: ci/install-package-dependencies.yml
360 - template: ci/download-artifacts-template.yml
361 parameters:
362 downloadPartialBuildBinFrom:
363 - chip_englishbreakfast_verilator
364 - sw_build_englishbreakfast
365 - bash: |
366 # Install an additional pytest dependency for result upload.
367 pip3 install pytest-azurepipelines
368
369 . util/build_consts.sh
370 pytest --version
371 pytest test/systemtest/englishbreakfast/test_sim_verilator.py \
372 -m "not slow" \
373 --log-cli-level=DEBUG \
374 --test-run-title="Run English Breakfast system tests with Verilator simulation" \
375 --napoleon-docstrings
376 displayName: Execute tests
377
Alphan Ulusoya628be12021-05-14 16:24:02 -0400378# This test is in a separate job becuase it takes longer to complete.
379- job: execute_silicon_creator_verilated_test
380 displayName: Execute silicon_creator test on the Verilated system
Philipp Wagnera4b89b92021-05-20 22:25:42 +0100381 pool: ci-public
Alphan Ulusoya628be12021-05-14 16:24:02 -0400382 dependsOn:
383 - chip_earlgrey_verilator
384 - sw_build
385 steps:
386 - template: ci/install-package-dependencies.yml
387 - template: ci/download-artifacts-template.yml
388 parameters:
389 downloadPartialBuildBinFrom:
390 - chip_earlgrey_verilator
391 - sw_build
392 - bash: |
393 # Install an additional pytest dependency for result upload.
394 pip3 install pytest-azurepipelines
395
396 . util/build_consts.sh
397 pytest --version
398 pytest test/systemtest/earlgrey/test_sim_verilator.py \
399 -k test_apps_selfchecking_silicon_creator[dif_uart_smoketest] \
400 --log-cli-level=DEBUG \
401 --test-run-title="Run silicon_creator system test with Verilator simulation" \
402 --napoleon-docstrings
403 displayName: Execute silicon_creator test
404
Greg Chadwickbf9dc382020-04-17 09:30:40 +0100405- template: ci/run-riscv-compliance.yml
406 parameters:
407 rvc_test_suites:
408 - rv32i
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600409
Greg Chadwickbf9dc382020-04-17 09:30:40 +0100410- template: ci/run-riscv-compliance.yml
411 parameters:
412 rvc_test_suites:
413 - rv32im
414 - rv32imc
415 - rv32Zicsr
Timothy Chen7d1436d2019-12-04 17:26:14 -0800416
Greg Chadwick99fe0642020-08-04 15:42:45 +0100417- job: otbn_standalone_tests
418 displayName: Run OTBN Smoke Test
419 dependsOn: lint
Philipp Wagner8d3e5632020-08-19 14:31:39 +0100420 pool:
Philipp Wagner5d1450c2020-10-06 12:26:36 +0100421 vmImage: ubuntu-18.04
Philipp Wagnerbf0ab0a2020-12-15 12:03:42 +0000422 timeoutInMinutes: 10
Greg Chadwick99fe0642020-08-04 15:42:45 +0100423 steps:
424 - template: ci/install-package-dependencies.yml
425 - bash: |
426 set -x
427 sudo util/get-toolchain.py \
Srikrishna Iyer98333ba2020-11-16 23:12:29 -0800428 --install-dir="$TOOLCHAIN_PATH" \
Greg Chadwick99fe0642020-08-04 15:42:45 +0100429 --release-version="$TOOLCHAIN_VERSION" \
430 --update
Rupert Swarbrick54278382020-08-25 12:45:47 +0100431 echo "##vso[task.prependpath]$TOOLCHAIN_PATH/bin"
Greg Chadwick99fe0642020-08-04 15:42:45 +0100432 displayName: Install toolchain
433 - bash: |
Greg Chadwick99fe0642020-08-04 15:42:45 +0100434 python3 --version
435 fusesoc --version
436 verilator --version
437 displayName: Display environment
438 - bash: |
Rupert Swarbrick7bd2a372020-10-02 12:36:12 +0100439 make -C hw/ip/otbn/dv/otbnsim test
440 displayName: OTBN ISS Test
441 - bash: |
Greg Chadwick99fe0642020-08-04 15:42:45 +0100442 ./hw/ip/otbn/dv/smoke/run_smoke.sh
443 displayName: OTBN Smoke Test
Rupert Swarbrick54278382020-08-25 12:45:47 +0100444 - bash: |
Rupert Swarbrick7087ed82020-11-13 18:16:46 +0000445 make -C hw/ip/otbn/util asm-check
Rupert Swarbrick54278382020-08-25 12:45:47 +0100446 displayName: Assemble and link code snippets
Greg Chadwick99fe0642020-08-04 15:42:45 +0100447
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200448- job: chip_earlgrey_cw310
449 displayName: Build CW310 variant of the Earl Grey toplevel design using Vivado
450 dependsOn:
451 - lint
452 # The bootrom is built into the FPGA image at synthesis time.
Pirmin Vogelb41684f2021-07-20 09:49:50 +0200453 - sw_build
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200454 condition: and(succeeded(), eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'), eq(dependencies.lint.outputs['DetermineBuildType.onlyDvChanges'], '0'))
455 pool: ci-public
456 timeoutInMinutes: 120 # 2 hours
457 steps:
458 - template: ci/install-package-dependencies.yml
459 - template: ci/download-artifacts-template.yml
460 parameters:
461 downloadPartialBuildBinFrom:
Pirmin Vogelb41684f2021-07-20 09:49:50 +0200462 - sw_build
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200463 - bash: |
464 set -e
465 . util/build_consts.sh
466
467 module load "xilinx/vivado/$(VIVADO_VERSION)"
468
469 mkdir -p "$OBJ_DIR/hw"
470 mkdir -p "$BIN_DIR/hw/top_earlgrey"
471
Pirmin Vogelb41684f2021-07-20 09:49:50 +0200472 BOOTROM_VMEM="$BIN_DIR/sw/device/boot_rom/boot_rom_fpga_cw310.scr.39.vmem"
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200473 test -f "$BOOTROM_VMEM"
Pirmin Vogelb41684f2021-07-20 09:49:50 +0200474 OTP_VMEM="$BIN_DIR/sw/device/otp_img/otp_img_fpga_cw310.vmem"
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200475 test -f "$OTP_VMEM"
476
477 fusesoc --cores-root=. \
478 run --flag=fileset_top --target=synth --setup --build \
479 --build-root="$OBJ_DIR/hw" \
480 lowrisc:systems:chip_earlgrey_cw310 \
481 --BootRomInitFile="$BOOTROM_VMEM" \
482 --OtpCtrlMemInitFile="$OTP_VMEM"
483
484 cp "$OBJ_DIR/hw/synth-vivado/lowrisc_systems_chip_earlgrey_cw310_0.1.bit" \
485 "$BIN_DIR/hw/top_earlgrey"
486 displayName: Build bitstream with Vivado
487 - bash: |
488 . util/build_consts.sh
489 echo Synthesis log
490 cat $OBJ_DIR/hw/synth-vivado/lowrisc_systems_chip_earlgrey_cw310_0.1.runs/synth_1/runme.log || true
491
492 echo Implementation log
493 cat $OBJ_DIR/hw/synth-vivado/lowrisc_systems_chip_earlgrey_cw310_0.1.runs/impl_1/runme.log || true
494 condition: always()
495 displayName: Display synthesis and implementation logs
496 - template: ci/upload-artifacts-template.yml
497 parameters:
498 includePatterns:
499 - "/hw/top_earlgrey/lowrisc_systems_chip_earlgrey_cw310_0.1.bit"
Philipp Wagner9b37c342021-02-01 16:21:38 +0000500 - publish: "$(Build.ArtifactStagingDirectory)"
501 artifact: chip_earlgrey_cw310-build-out
502 displayName: Upload all Vivado artifacts for CW310
503 condition: failed()
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200504
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700505- job: chip_earlgrey_nexysvideo
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600506 displayName: Build NexysVideo variant of the Earl Grey toplevel design using Vivado
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000507 dependsOn:
508 - lint
509 # The bootrom is built into the FPGA image at synthesis time.
Timothy Chenf835aa32021-01-08 16:27:50 -0800510 - sw_build_nexysvideo
Timothy Chenac28d1e2021-08-18 10:58:23 -0700511 # Make the following condition always false for now, see #7814.
512 condition: and(succeeded(), False, eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'), eq(dependencies.lint.outputs['DetermineBuildType.onlyDvChanges'], '0'))
Philipp Wagnerc58f6a02020-10-07 19:57:09 +0100513 pool: ci-public
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000514 timeoutInMinutes: 120 # 2 hours
515 steps:
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600516 - template: ci/install-package-dependencies.yml
517 - template: ci/download-artifacts-template.yml
Philipp Wagnerbdfb9332021-02-02 18:10:06 +0000518 parameters:
519 downloadPartialBuildBinFrom:
520 - sw_build_nexysvideo
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000521 - bash: |
522 set -e
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600523 . util/build_consts.sh
Philipp Wagnerc58f6a02020-10-07 19:57:09 +0100524
525 module load "xilinx/vivado/$(VIVADO_VERSION)"
526
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600527 mkdir -p "$OBJ_DIR/hw"
528 mkdir -p "$BIN_DIR/hw/top_earlgrey"
529
Timothy Chenf835aa32021-01-08 16:27:50 -0800530 ./hw/top_earlgrey/util/top_earlgrey_reduce.py
531
Rupert Swarbrick54c37c42021-07-15 15:06:42 +0100532 BOOTROM_VMEM="$BIN_DIR/sw/device/boot_rom/boot_rom_fpga_nexysvideo.scr.39.vmem"
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600533 test -f "$BOOTROM_VMEM"
Michael Schaffner20972a62021-02-24 18:53:46 -0800534 OTP_VMEM="$BIN_DIR/sw/device/otp_img/otp_img_fpga_nexysvideo.vmem"
535 test -f "$OTP_VMEM"
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600536
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600537 fusesoc --cores-root=. \
Timothy Chenbe47dd72020-07-27 14:57:07 -0700538 run --flag=fileset_top --target=synth --setup --build \
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600539 --build-root="$OBJ_DIR/hw" \
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700540 lowrisc:systems:chip_earlgrey_nexysvideo \
Michael Schaffner20972a62021-02-24 18:53:46 -0800541 --BootRomInitFile="$BOOTROM_VMEM" \
542 --OtpCtrlMemInitFile="$OTP_VMEM"
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600543
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700544 cp "$OBJ_DIR/hw/synth-vivado/lowrisc_systems_chip_earlgrey_nexysvideo_0.1.bit" \
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600545 "$BIN_DIR/hw/top_earlgrey"
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600546 displayName: Build bitstream with Vivado
Philipp Wagnerf072c032020-12-08 17:16:30 +0000547 - bash: |
548 . util/build_consts.sh
549 echo Synthesis log
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700550 cat $OBJ_DIR/hw/synth-vivado/lowrisc_systems_chip_earlgrey_nexysvideo_0.1.runs/synth_1/runme.log || true
Philipp Wagnerf072c032020-12-08 17:16:30 +0000551
552 echo Implementation log
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700553 cat $OBJ_DIR/hw/synth-vivado/lowrisc_systems_chip_earlgrey_nexysvideo_0.1.runs/impl_1/runme.log || true
Philipp Wagnerf072c032020-12-08 17:16:30 +0000554 condition: always()
555 displayName: Display synthesis and implementation logs
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600556 - template: ci/upload-artifacts-template.yml
Miguel Young de la Sotab4df8602019-11-21 12:44:11 -0600557 parameters:
Philipp Wagner5aa7ed32021-02-02 18:53:36 +0000558 includePatterns:
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700559 - "/hw/top_earlgrey/lowrisc_systems_chip_earlgrey_nexysvideo_0.1.bit"
Philipp Wagner9b37c342021-02-01 16:21:38 +0000560 - publish: "$(Build.ArtifactStagingDirectory)"
561 artifact: chip_earlgrey_nexysvideo-build-out
562 displayName: Upload all Vivado artifacts for Nexys Video
563 condition: failed()
lowRISC Contributors802543a2019-08-31 12:12:56 +0100564
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700565- job: chip_englishbreakfast_cw305
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100566 displayName: Build CW305 variant of the English Breakfast toplevel design using Vivado
567 dependsOn:
568 - lint
Pirmin Vogel18d8e132021-08-03 14:35:29 +0200569 - sw_build_englishbreakfast
Timothy Chen64f6a5a2021-02-05 17:04:40 -0800570 condition: and(succeeded(), eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'), eq(dependencies.lint.outputs['DetermineBuildType.onlyDvChanges'], '0'))
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100571 pool: ci-public
572 timeoutInMinutes: 120 # 2 hours
573 steps:
574 - template: ci/install-package-dependencies.yml
575 - template: ci/download-artifacts-template.yml
Philipp Wagnerbdfb9332021-02-02 18:10:06 +0000576 parameters:
577 downloadPartialBuildBinFrom:
Pirmin Vogel18d8e132021-08-03 14:35:29 +0200578 - sw_build_englishbreakfast
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100579 - bash: |
580 set -e
581 . util/build_consts.sh
582
583 module load "xilinx/vivado/$(VIVADO_VERSION)"
584
585 mkdir -p "$OBJ_DIR/hw"
586 mkdir -p "$BIN_DIR/hw/top_englishbreakfast"
587
Rupert Swarbrick97fe6a82021-07-16 11:27:50 +0100588 BOOTROM_VMEM="$BIN_DIR/sw/device/boot_rom/boot_rom_fpga_nexysvideo.32.vmem"
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100589 test -f "$BOOTROM_VMEM"
590
591 fusesoc --cores-root=. \
592 run --flag=fileset_topgen --target=synth --setup --build \
593 --build-root="$OBJ_DIR/hw" \
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700594 lowrisc:systems:chip_englishbreakfast_cw305 \
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100595 --BootRomInitFile="$BOOTROM_VMEM"
596
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700597 cp "$OBJ_DIR/hw/synth-vivado/lowrisc_systems_chip_englishbreakfast_cw305_0.1.bit" \
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100598 "$BIN_DIR/hw/top_englishbreakfast"
599 displayName: Build bitstream with Vivado
600 - template: ci/upload-artifacts-template.yml
601 parameters:
Philipp Wagner5aa7ed32021-02-02 18:53:36 +0000602 includePatterns:
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700603 - "/hw/top_englishbreakfast/lowrisc_systems_chip_englishbreakfast_cw305_0.1.bit"
Pirmin Vogel2f42ccd2020-12-22 20:19:30 +0100604
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200605- job: execute_fpga_tests_cw310
606 displayName: Execute tests on ChipWhisperer CW310 FPGA board
607 pool: FPGA
608 timeoutInMinutes: 30
609 dependsOn:
610 - chip_earlgrey_cw310
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200611 - sw_build
612 steps:
613 - template: ci/install-package-dependencies.yml
614 - template: ci/download-artifacts-template.yml
615 parameters:
616 downloadPartialBuildBinFrom:
617 - chip_earlgrey_cw310
Pirmin Vogelad2afea2021-05-20 10:43:40 +0200618 - sw_build
619 - bash: |
620 set -e
621
622 # Install an additional pytest dependency for result upload.
623 pip3 install pytest-azurepipelines
624
625 . util/build_consts.sh
626 pytest --version
627 pytest test/systemtest/earlgrey/test_fpga_cw310.py \
628 --log-cli-level=DEBUG \
629 --test-run-title="Run system tests on ChipWhisperer CW310 FPGA board" \
630 --napoleon-docstrings
631 displayName: Execute tests
632
633- job: execute_fpga_tests_nexysvideo
634 displayName: Execute tests on Nexys Video FPGA board
Philipp Wagner11d2dcb2020-09-29 16:27:46 +0100635 pool: FPGA
636 timeoutInMinutes: 30
637 dependsOn:
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700638 - chip_earlgrey_nexysvideo
Timothy Chenf835aa32021-01-08 16:27:50 -0800639 - sw_build_nexysvideo
Philipp Wagnerbdfb9332021-02-02 18:10:06 +0000640 - sw_build
Philipp Wagner11d2dcb2020-09-29 16:27:46 +0100641 steps:
642 - template: ci/install-package-dependencies.yml
643 - template: ci/download-artifacts-template.yml
Philipp Wagnerbdfb9332021-02-02 18:10:06 +0000644 parameters:
645 downloadPartialBuildBinFrom:
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700646 - chip_earlgrey_nexysvideo
Philipp Wagnerbdfb9332021-02-02 18:10:06 +0000647 - sw_build_nexysvideo
648 - sw_build
Philipp Wagner11d2dcb2020-09-29 16:27:46 +0100649 - bash: |
650 set -e
651
652 module load "xilinx/vivado/$(VIVADO_VERSION)"
653
654 # Install an additional pytest dependency for result upload.
655 pip3 install pytest-azurepipelines
656
657 . util/build_consts.sh
658 pytest --version
659 pytest test/systemtest/earlgrey/test_fpga_nexysvideo.py \
660 --log-cli-level=DEBUG \
661 --test-run-title="Run system tests on Nexys Video FPGA board" \
662 --napoleon-docstrings
Philipp Wagner11d2dcb2020-09-29 16:27:46 +0100663 displayName: Execute tests
664
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600665- job: deploy_release_artifacts
666 displayName: Package and deploy release distribution
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000667 pool:
Philipp Wagner5d1450c2020-10-06 12:26:36 +0100668 vmImage: ubuntu-18.04
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000669 dependsOn:
670 - lint
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600671 - sw_build
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700672 - chip_earlgrey_verilator
673 - chip_earlgrey_nexysvideo
Philipp Wagnera0a35a52021-08-04 16:39:35 +0100674 - chip_earlgrey_cw310
Timothy Chen64f6a5a2021-02-05 17:04:40 -0800675 condition: and(eq(dependencies.lint.outputs['DetermineBuildType.onlyDocChanges'], '0'), eq(dependencies.lint.outputs['DetermineBuildType.onlyDvChanges'], '0'))
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000676 steps:
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600677 - template: ci/install-package-dependencies.yml
678 - template: ci/download-artifacts-template.yml
Philipp Wagnerbdfb9332021-02-02 18:10:06 +0000679 parameters:
680 downloadPartialBuildBinFrom:
681 - sw_build
Timothy Chenac28d1e2021-08-18 10:58:23 -0700682 #- sw_build_nexysvideo
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700683 - chip_earlgrey_verilator
Timothy Chenac28d1e2021-08-18 10:58:23 -0700684 #- chip_earlgrey_nexysvideo
Philipp Wagnera0a35a52021-08-04 16:39:35 +0100685 - chip_earlgrey_cw310
Michael Schaffner93fe50c2021-03-31 16:25:42 -0700686 - chip_englishbreakfast_verilator
Miguel Young de la Sotad42948c2019-11-18 13:56:55 -0600687 - bash: |
Miguel Young de la Sotad42948c2019-11-18 13:56:55 -0600688 . util/build_consts.sh
Miguel Young de la Sotab5be8c62019-11-20 10:01:09 -0600689
Miguel Young de la Sotad42948c2019-11-18 13:56:55 -0600690 util/make_distribution.sh
Philipp Wagner542e2202019-10-30 13:10:16 +0000691
Miguel Young de la Sotad42948c2019-11-18 13:56:55 -0600692 tar --list -f $BIN_DIR/opentitan-*.tar.xz
693 # Put the resulting tar file into a directory the |publish| step below can reference.
694 mkdir "$BUILD_ROOT/dist-final"
695 mv $BIN_DIR/opentitan-*.tar.xz "$BUILD_ROOT/dist-final"
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600696 displayName: Create final dist directory out of partial ones
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000697 - publish: $(Build.ArtifactStagingDirectory)/dist-final
698 artifact: opentitan-dist
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600699 displayName: Upload release artifacts as Azure artifact
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000700 - task: GithubRelease@0
Miguel Young de la Sotaa68e3072020-01-02 13:59:54 -0600701 displayName: Upload to GitHub releases (only tags)
Philipp Wagner0b20f5d2019-11-01 16:24:52 +0000702 condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/'))
Philipp Wagnerbd9ae432019-11-01 14:33:30 +0000703 inputs:
704 gitHubConnection: opentitan-release-upload
705 repositoryName: lowrisc/opentitan
706 addChangeLog: false
707 assets: |
708 $(Build.ArtifactStagingDirectory)/dist-final/*
Sam Elliotte257cd02020-09-10 13:49:38 +0100709
710
711- job: build_docker_containers
712 displayName: "Build Docker Containers"
713 pool:
Philipp Wagner5d1450c2020-10-06 12:26:36 +0100714 vmImage: ubuntu-18.04
Sam Elliotte257cd02020-09-10 13:49:38 +0100715 dependsOn:
716 - lint
717 steps:
718 - task: Docker@2
719 displayName: Build Developer Utility Container
720 inputs:
721 command: build
722 Dockerfile: ./util/container/Dockerfile
723 buildContext: .
724 - task: Docker@2
725 displayName: Build Documentation Builder Container
726 inputs:
727 command: build
728 tags: gcr.io/active-premise-257318/builder
729 Dockerfile: ./site/docs/builder.Dockerfile
730 buildContext: .
731 - task: Docker@2
732 displayName: Build Documentation Redirector Container
733 inputs:
734 command: build
735 Dockerfile: ./site/redirector/Dockerfile
736 buildContext: ./site/redirector