Commit 5840323f authored by Dimitris Lampridis's avatar Dimitris Lampridis

ci: use common sw build and publish pipeline

parent 38acae0e
......@@ -11,7 +11,6 @@ include:
- project: 'be-cem-edl/evergreen/gitlab-ci'
ref: master
file: 'edl-gitlab-ci.yml'
- local: 'hdl/syn/.gitlab-ci.yml'
- local: 'hdl/testbench/.gitlab-ci.yml'
- local: 'tests/.gitlab-ci.yml'
......@@ -22,28 +21,19 @@ cppcheck:
script:
- make cppcheck
build-drivers-cc7:
interruptible: true
extends: .kernel_build_cc7
software_build:
extends: .build_fec_os_sw
variables:
EDL_CI_KBUILD_PATHS: software/kernel
EDL_CI_SW_PATHS: software
build-software-cc7:
interruptible: true
test_fw_build:
stage: build
image:
name: gitlab-registry.cern.ch/be-cem-edl/evergreen/gitlab-ci/build-fec-sw:latest
variables:
_SW_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/software
image: gitlab-registry.cern.ch/be-cem-edl/evergreen/gitlab-ci/build-fec-sw:latest
script:
- make release
- mkdir -p $_SW_DEST
- cp *.tar.gz $_SW_DEST/
- make -C tests/firmware
artifacts:
paths:
- $_SW_DEST/*
- tests/firmware/*/*.bin
- tests/firmware/**/*.bin
trtl-project-creator:
interruptible: true
......@@ -54,3 +44,13 @@ trtl-project-creator:
- TRTL=$PWD make -C /tmp/trtl_project_test/software lib
- TRTL=$PWD make -C /tmp/trtl_project_test/software tools
# TODO add firmware (need riscv32-gcc)
fpga_synthesis:
extends: .synthesis-ise-14-7
interruptible: true
allow_failure: true
parallel:
matrix:
- EDL_CI_SYN_SRC_PATH:
- hdl/syn/spec_mt_demo
- hdl/syn/svec_mt_demo
# SPDX-FileCopyrightText: 2022 CERN (home.cern)
#
# SPDX-License-Identifier: LGPL-2.1-or-later
fpga_synthesis:
extends: .synthesis-ise-14-7
interruptible: true
allow_failure: true
parallel:
matrix:
- EDL_CI_SYN_SRC_PATH:
- hdl/syn/spec_mt_demo
- hdl/syn/svec_mt_demo
......@@ -13,8 +13,8 @@ test_on_hw:
# unfortunately the $CARD variable cannot be expanded here
- "fpga_synthesis: [hdl/syn/spec_mt_demo]"
- "fpga_synthesis: [hdl/syn/svec_mt_demo]"
- "build-drivers-cc7"
- "build-software-cc7"
- "software_build: [build-fec-sw, 3.10.0-957.1.3.rt56.913.el7.x86_64, L867]"
- "test_fw_build"
tags:
- fec-runner
- card-$CARD
......@@ -23,7 +23,6 @@ test_on_hw:
_BASE_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR
_BITSTREAM_DEST: $_BASE_DEST/bitstreams
_SW_DEST: $_BASE_DEST/software
_DRV_DEST: $_BASE_DEST/driver
rules:
- if: $CARD == "spec"
variables:
......@@ -44,11 +43,11 @@ test_on_hw:
- rmmod $CARD-fmc-carrier || true
- sh /usr/local/drivers/scripts/${CARD}_fmc_carrier_install.sh
- export TMP_DIR=$(mktemp -d)
- tar xvf $_SW_DEST/mockturtle-software-*.tar.gz -C $TMP_DIR/
- mkdir -p $TMP_DIR/lib/modules
- cp -r /usr/local/lib/modules/$(uname -r) $TMP_DIR/lib/modules
- cp -r $_DRV_DEST/lib/modules/$(uname -r) $TMP_DIR/lib/modules
- export MODPROBE_ROOT=$TMP_DIR
- mkdir -p $TMP_DIR/usr/lib/modules
- cp -r /usr/local/lib/modules/$(uname -r) $TMP_DIR/usr/lib/modules
- find $TMP_DIR/usr/lib/modules -name mockturtle*.ko -delete
- tar xvf $_SW_DEST/mockturtle-software-L867.tar.xz -C $TMP_DIR/
- export MODPROBE_ROOT=$TMP_DIR/usr
- depmod -b $MODPROBE_ROOT
- export FIRMWARE_PATH=$TMP_DIR/bitstreams
- mkdir -p $FIRMWARE_PATH
......@@ -70,16 +69,16 @@ test_on_hw:
- modprobe -d $MODPROBE_ROOT mockturtle
- modprobe -d $MODPROBE_ROOT mockturtle-${CARD}-demo
- export MT_NODE=$(ls -d /sys/bus/platform/devices/id\:$VID$PID.*/mock-turtle.* | cut -d '.' -f 4)
- export LD_LIBRARY_PATH=$TMP_DIR/lib
- export LD_LIBRARY_PATH=$TMP_DIR/usr/local/lib
- source /acc/local/share/python/acc-py/base/pro/setup.sh
- acc-py venv $TMP_DIR/venv
- source $TMP_DIR/venv/bin/activate
- pip install software/lib/PyMockTurtle
- pip install $TMP_DIR/usr/local/lib/python/PyMockTurtle-*.whl
- pip install -r tests/requirements.txt
script:
- tail -n +1 /sys/kernel/debug/$DEVID/fpga_device_metadata
- tail -n +1 /sys/kernel/debug/$DEVID/$FPGAID/build_info
- $TMP_DIR/bin/lsmockturtle
- $TMP_DIR/usr/local/bin/lsmockturtle
- cd tests
- pytest --id $MT_NODE --junitxml=./pytest.xml
artifacts:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment