Commit cd847841 authored by Dimitris Lampridis's avatar Dimitris Lampridis

bld: introduce "release" target

This new target will create two compressed tarballs, one containing the
kernel modules and another one containing software libraries and tools.

Also update gitlab CI to use this new target to pulbish the software
and use it during testing on real hardware.
parent 8c810123
......@@ -28,14 +28,16 @@ build-centos-7:
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
script:
- make
- make release
- mkdir -p $_SW_DEST
- cp *.tar.gz $_SW_DEST/
- make -C tests/firmware
artifacts:
paths:
- software/include/mockturtle/hw/mockturtle_cpu*.h
- software/kernel/*.ko
- software/lib/*.so*
- $_SW_DEST/*
- tests/firmware/*/*.bin
build-kernel:
......
......@@ -2,8 +2,22 @@
#
# SPDX-FileCopyrightText: 2019 CERN
TOP_DIR ?= $(shell pwd)
TRTL ?= $(TOP_DIR)
include common.mk
all:
$(MAKE) -C software
release: TEMP_RELEASE_DIR := $(shell mktemp -d)
release: include lib tools modules
@cd software/kernel && tar -czf $(TOP_DIR)/mockturtle-drivers-$(VERSION).tar.gz *.ko
$(MAKE) PREFIX=$(TEMP_RELEASE_DIR) -C software/include install
$(MAKE) PREFIX=$(TEMP_RELEASE_DIR) -C software/lib install
$(MAKE) PREFIX=$(TEMP_RELEASE_DIR) -C software/lib/PyMockTurtle install
$(MAKE) PREFIX=$(TEMP_RELEASE_DIR) -C software/tools install
@cd $(TEMP_RELEASE_DIR) && tar -czf $(TOP_DIR)/mockturtle-software-$(VERSION).tar.gz *
@rm -r $(TEMP_RELEASE_DIR)
%:
$(MAKE) -C software $@
......@@ -20,6 +20,7 @@ test_on_hw:
variables:
VID: "000010dc"
_BITSTREAM_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/bitstreams
_SW_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/software
rules:
- if: $CARD == "spec"
variables:
......@@ -40,9 +41,10 @@ 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 software/kernel/*.ko $TMP_DIR/lib/modules/$(uname -r)/extra/cern/
- tar xvf $_SW_DEST/mockturtle-drivers-*.tar.gz -C $TMP_DIR/lib/modules/$(uname -r)/extra/cern/
- export MODPROBE_ROOT=$TMP_DIR
- depmod -b $MODPROBE_ROOT
- export FIRMWARE_PATH=$TMP_DIR/bitstreams
......@@ -65,7 +67,6 @@ 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)
- DESTLIBDIR=$TMP_DIR/lib make -C software/lib install
- export LD_LIBRARY_PATH=$TMP_DIR/lib
- source /acc/local/share/python/acc-py/base/pro/setup.sh
- acc-py venv $TMP_DIR/venv
......@@ -75,7 +76,7 @@ test_on_hw:
script:
- tail -n +1 /sys/kernel/debug/$DEVID/fpga_device_metadata
- tail -n +1 /sys/kernel/debug/$DEVID/$FPGAID/build_info
- /usr/local/bin/lsmockturtle
- $TMP_DIR/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