GitLab CI Pipeline

The use of GitLab CI is not required for the course!

In 2024, a student group set up a GitLab continuous integration (CI) pipeline for the RISC-V Lab. This can be done by downloading and running the GitLab runner binary as regular user (not superuser) on the lab system. The GitLab runner can be connected to the regular GitLab instance of TU Berlin.

A .gitlab-ci.yml file must be created in the root directory of your rvlab fork. An example is shown below. The file must be adapted to the needs of your specific project:

stages:
  - deploy
  - lint
  - build
pages:
  stage: deploy
  script:
    - cd docs && make clean && make html
    - mv _build/html ../public
  artifacts:
    paths:
      - public
  only:
    - main
srcs_lint:
  stage: lint
  script:
    - flow srcs.lint
srcs_srcs:
  stage: lint
  script:
    - flow srcs.srcs_noddr
build_game:
  stage: lint
  script:
    - flow sw_project.build
  artifacts:
    paths:
      - build/sw_project/build/sw.elf
sim_pnr:
  stage: build
  script:
    - flow simlibs_questa.unisims
    - flow simlibs_questa.secureip
    - flow rvlab_fpga_top.syn
    - flow rvlab_fpga_top.pnr
    - flow rvlab_fpga_top.bitstream
  artifacts:
    paths:
      - build/rvlab_fpga_top/**/*.log
      - build/rvlab_fpga_top/**/*.txt
      - build/rvlab_fpga_top/bitstream/rvlab_fpga_top.bit
# - flow systb_test_audio.sim_pnrtime_questa

sim_batch:
  stage: build
  script:
    - flow systb_test_audio.sim_rtl_questa_batch