Commit 46661a40 authored by Adam Wujek's avatar Adam Wujek

.gitlab-ci.yml: clean up

Signed-off-by: 's avatarAdam Wujek <dev_public@wujek.eu>
parent ebdaa36b
# Author: Adam Wujek for CERN 2023
# Include file for publishing on EOS
include:
- project: 'be-cem-edl/evergreen/gitlab-ci'
ref: master
file:
# TODO: Uncomment when ready
- include/publish-gitlab-ci.yml
stages: # List of stages for jobs, and their order of execution
......@@ -13,18 +15,16 @@ stages: # List of stages for jobs, and their order of execution
variables:
_BITSTREAM_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/bitstream
_SOFTWARE_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/software
_FIRMWARE_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/firmware
_TOOLS_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/tools
###############################################################################
test-build-wr2rf-tool:
build-wr2rf-tools:
stage: build-sw
tags:
- nodocker
script:
- |
# Test description
echo -e "\e[0Ksection_start:`date +%s`:test_description\r\e[0KTest description"
echo -e "\e[0Ksection_start:`date +%s`:job_description\r\e[0KJob description"
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
echo -e '\e[31m|\e[0m Compilation of wr2rf tools \e[31m|\e[0m'
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
......@@ -38,56 +38,55 @@ test-build-wr2rf-tool:
- compile libwr2rf.a
EOF
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
echo -e "\e[0Ksection_end:`date +%s`:test_description\r\e[0K"
echo -e "\e[0Ksection_end:`date +%s`:job_description\r\e[0K"
- mkdir -p ~/.ssh/
- ssh-keyscan -t rsa cs-ccr-dev4 >> ~/.ssh/known_hosts
- echo "$KPASS" | kinit wrci@CERN.CH
- ./ci-scripts/build_wr2rf_tool.sh
- mkdir -p $_SOFTWARE_DEST/wr2rf/bin
- mkdir -p $_SOFTWARE_DEST/wr2rf/lib
- cp {wr2rf,spi_echo} $_SOFTWARE_DEST/wr2rf/bin
- cp libwr2rf.a $_SOFTWARE_DEST/wr2rf/lib
- mkdir -p $_TOOLS_DEST/bin
- mkdir -p $_TOOLS_DEST/lib
- cp {wr2rf,spi_echo} $_TOOLS_DEST/bin
- cp libwr2rf.a $_TOOLS_DEST/lib
after_script:
- ssh wrci@cs-ccr-dev4 "rm -rf /user/wrci/ci-wr2rf/\"$CI_JOB_ID\""
artifacts:
name: "$SYN_NAME-software-$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
when: always
paths:
- $_SOFTWARE_DEST/
- $_TOOLS_DEST/
###############################################################################
build-wrpc:
stage: build-sw
tags:
- nodocker
variables:
# Fetch submodules (https://docs.gitlab.com/ee/ci/git_submodules.html#use-git-submodules-in-cicd-jobs).
GIT_SUBMODULE_STRATEGY: normal
GIT_SUBMODULE_DEPTH: 1
GIT_SSL_NO_VERIFY: 1
script:
- ls -la dependencies/wrpc-sw
- |
echo -e "\e[0Ksection_start:`date +%s`:job_description\r\e[0KJob description"
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
echo -e '\e[31m|\e[0m Compilation of wrpc-sw for wr2rf \e[31m|\e[0m'
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
echo -e "\e[0Ksection_end:`date +%s`:job_description\r\e[0K"
- ./ci-scripts/checkout-sw.sh dependencies/wrpc-sw
- echo "Building sw for ..."
- echo "Building wrpc-sw ..."
- ./ci-scripts/build-sw.sh dependencies/wrpc-sw wr2rf
# check presence of artifacts
- ./ci-scripts/check_artifact.sh wrc.bram
- ./ci-scripts/check_artifact.sh wrc.mif
- ./ci-scripts/check_artifact.sh wrc.bin
- ./ci-scripts/check_artifact.sh wrpc-sw_repo_ver.txt
- mkdir -p $_SOFTWARE_DEST/wrpc
- cp wrc.bram $_SOFTWARE_DEST/wrpc
- cp wrc.mif $_SOFTWARE_DEST/wrpc
- cp wrc.bin $_SOFTWARE_DEST/wrpc
- cp wrc.elf $_SOFTWARE_DEST/wrpc
- cp wrpc-sw_repo_ver.txt $_SOFTWARE_DEST/wrpc
- mkdir -p $_FIRMWARE_DEST
- cp wrc.bram $_FIRMWARE_DEST
- cp wrc.mif $_FIRMWARE_DEST
- cp wrc.bin $_FIRMWARE_DEST
- cp wrc.elf $_FIRMWARE_DEST
- cp wrpc-sw_repo_ver.txt $_FIRMWARE_DEST
artifacts:
name: "$SYN_NAME-software-$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
when: always
paths:
- $_SOFTWARE_DEST/
- $_FIRMWARE_DEST/
###############################################################################
build-wr2rf:
stage: build-hw
tags:
......@@ -99,35 +98,66 @@ build-wr2rf:
EDL_CI_SYN_OUTPUT_DIR: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/bitstreams
GIT_SSL_NO_VERIFY: 1
script:
- |
echo -e "\e[0Ksection_start:`date +%s`:job_description\r\e[0KJob description"
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
echo -e '\e[31m|\e[0m Synthesis of wr2rf \e[31m|\e[0m'
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
echo -e "\e[0Ksection_end:`date +%s`:job_description\r\e[0K"
- echo "Checking out..."
- ls -l
#- ./ci-scripts/install-hdlmake.sh
#- git config --global credential.https://gitlab.cern.ch.username wrci
#- git config --global credential.https://gitlab.cern.ch.helper '!f() { test "$1" = get && echo "password=$KPASS"; }; f'
#- ./ci-scripts/checkout.sh
- cp $_SOFTWARE_DEST/wrpc/wrc.bram dependencies/wrpc-sw-file
#- echo "Building..."
#- ./ci-scripts/build-wr2rf.sh
## check presence of newly created artifacts
#- ./ci-scripts/check_artifact.sh wr2rf_vme.bit
- git describe --dirty >> wr2rf_vme.bit
- ./ci-scripts/install-hdlmake.sh
- git config --global credential.https://gitlab.cern.ch.username wrci
- git config --global credential.https://gitlab.cern.ch.helper '!f() { test "$1" = get && echo "password=$KPASS"; }; f'
- ./ci-scripts/checkout.sh
- cp $_FIRMWARE_DEST/wrc.bram dependencies/wrpc-sw-file
- echo "Building..."
- ./ci-scripts/build-wr2rf.sh
- mkdir -p $_BITSTREAM_DEST
- cp wr2rf_vme.bit $_BITSTREAM_DEST/
# check presence of artifacts from previous jobs
#- ./scripts/check_artifact.sh wrc.bin
#- ./scripts/check_artifact.sh wrpc-sw_repo_ver.txt
- ls -l
- cp wr2rf.tar.xz $_BITSTREAM_DEST/
artifacts:
name: "$SYN_NAME-synthesis-$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
when: always
paths:
- $_BITSTREAM_DEST/
- $_SOFTWARE_DEST/
- $_FIRMWARE_DEST/
- $_TOOLS_DEST/
###############################################################################
nfs_publish:
stage: deploy
rules:
- if: $CI_COMMIT_TAG # Run this job when a tag is created
script:
- |
# Test description
echo -e "\e[0Ksection_start:`date +%s`:job_description\r\e[0KJob description"
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
echo -e '\e[31m|\e[0m Deploy tools on NFS \e[31m|\e[0m'
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
while IFS= read -r line;
do
printf "\e[31m|\e[0m %-76s \e[31m|\e[0m\n" "$line"
done << EOF
This job deploys following on NFS (/acc/local/L867/drv/wr2rf/):
- bin/wr2rf
- bin/spi_echo
- lib/libwr2rf.a
EOF
echo -e "\e[31m+------------------------------------------------------------------------------+\e[0m"
echo -e "\e[0Ksection_end:`date +%s`:job_description\r\e[0K"
- echo "$KPASS" | kinit wrci@CERN.CH
- tar xf $_BITSTREAM_DEST/wr2rf.tar.xz
- ssh -o StrictHostKeyChecking=no wrci@cs-ccr-dev4 "mkdir -p /acc/local/L867/drv/wr2rf/\"$CI_COMMIT_TAG\"/bitstream"
- scp -r "$_TOOLS_DEST"/* wrci@cs-ccr-dev4:/acc/local/L867/drv/wr2rf/"$CI_COMMIT_TAG"
- scp wr2rf_vme.bit wrci@cs-ccr-dev4:/acc/local/L867/drv/wr2rf/"$CI_COMMIT_TAG"/bitstream
release_job:
###############################################################################
release-wr2rf:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
rules:
......@@ -141,7 +171,11 @@ release_job:
name: 'Release $CI_COMMIT_TAG'
assets:
links:
- name: 'libwr2rf'
url: 'https://be-cem-edl.web.cern.ch/wr2rf-vme/$CI_COMMIT_TAG/tools/lib'
- name: 'CLI tools'
url: 'https://be-cem-edl.web.cern.ch/wr2rf-vme/$CI_COMMIT_TAG/tools/bin'
- name: 'WRPC firmware'
url: 'https://be-cem-edl.web.cern.ch/wr2rf-vme/$CI_COMMIT_TAG/firmware'
- name: 'Bitstream'
url: 'https://be-cem-edl.web.cern.ch/wr2rf-vme/$CI_COMMIT_TAG/bitstream'
- name: 'Software'
url: 'https://be-cem-edl.web.cern.ch/wr2rf-vme/$CI_COMMIT_TAG/software'
......@@ -5,7 +5,7 @@ LOG_FILE="$PWD"/build
# Needs Vivado > 2019.1
. /opt/Xilinx/Vivado/2019.2/settings64.sh
echo "build wr2rf"
echo "Build wr2rf"
# Copy wrpc
#cp wrc.bram repos/wr2rf-vme/dependencies/wrpc-sw-file/wrc.bram
......@@ -13,12 +13,14 @@ echo "build wr2rf"
cd hdl/syn/wr2rf_vme
# Temporary fixes on generated wrapper
for f in RFNCO/Vivado/RFNCO.v nonIQModInterp2FIR/Vivado/nonIQModInterp2FIR.v; do
for f in nonIQModInterp2FIR/Vivado/nonIQModInterp2FIR.v; do
sed -i -e "s/_wrapper/_wrapper_unused/g" ../../../dependencies/$f
done
hdlmake 2>&1 | tee "${LOG_FILE}_hdlmake.log"
make files.tcl 2>&1 | tee "${LOG_FILE}_make_files.log"
vivado -mode tcl -source wr2rf_vme.tcl
ls
cp wr2rf_vme.bit ../../..
git describe >> wr2rf_ver.txt
tar -cJf wr2rf.tar.xz *.rpt *.dcp *.bit *.bin wr2rf_ver.txt
cp wr2rf.tar.xz ../../..
......@@ -4,7 +4,7 @@ set -e
targ=cs-ccr-dev4
ssh -q wrci@${targ} "mkdir -p /user/wrci/ci-wr2rf/\"$CI_JOB_ID\""
ssh wrci@${targ} "mkdir -p /user/wrci/ci-wr2rf/\"$CI_JOB_ID\""
# copy software directory
scp -r software wrci@${targ}:/user/wrci/ci-wr2rf/"$CI_JOB_ID"
......
#!/bin/bash
# Check the presence of artifact
[ -e $1 ] || ( echo "File $1 does not exist"; exit 1; )
......@@ -9,7 +9,6 @@ export GIT_SSL_NO_VERIFY=1
CALL_DIR=$PWD
cd $1
git submodule update --init
git describe --dirty > $CALL_DIR/wrpc-sw_repo_ver.txt
# git checkout master
git describe --always --dirty > $CALL_DIR/wrpc-sw_repo_ver.txt
echo "Check-out complete."
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