Skip to content

Commit

Permalink
CI: switch libiio CI config to more standard yaml
Browse files Browse the repository at this point in the history
- eliminate scripts and use code directly in azure-pipelines.yml
- modify builds to use docker images containing all dependencies
  in order to reduce build time
- modify files related to artifacts according with new builds

Signed-off-by: Raluca Chis <raluca.chis@analog.com>
  • Loading branch information
Raluca Chis authored and pcercuei committed Feb 22, 2022
1 parent 018189d commit abe0996
Show file tree
Hide file tree
Showing 8 changed files with 342 additions and 261 deletions.
12 changes: 12 additions & 0 deletions CI/azure/ci-ubuntu.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash
set -x
uname -a
DEBIAN_FRONTEND=noninteractive apt update
DEBIAN_FRONTEND=noninteractive apt -y upgrade
DEBIAN_FRONTEND=noninteractive apt install -y bison flex cmake git build-essential libxml2-dev doxygen
DEBIAN_FRONTEND=noninteractive apt install -y python3 python3-sphinx python3-setuptools
echo "$PWD"
mkdir build && cd build
cmake .. -DPYTHON_BINDINGS=ON -DENABLE_PACKAGING=ON -DCPACK_SYSTEM_NAME="{ARTIFACTNAME}"
make
make package
49 changes: 12 additions & 37 deletions CI/build_win.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,19 @@ $ErrorActionPreference = "Stop"
$ErrorView = "NormalView"

$COMPILER=$Env:COMPILER
$ARCH=$Env:ARCH

$src_dir=$pwd

if ($ARCH -eq "Win32") {
echo "Running cmake for $COMPILER on 32 bit..."
mkdir build-win32
cp .\libiio.iss.cmakein .\build-win32
cd build-win32

cmake -G "$COMPILER" -A "$ARCH" -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DENABLE_IPV6=OFF -DWITH_USB_BACKEND=ON -DWITH_SERIAL_BACKEND=ON -DPYTHON_BINDINGS=ON -DCSHARP_BINDINGS:BOOL=ON -DLIBXML2_LIBRARIES="C:\\libs\\32\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\32\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\32\\libserialport.dll.a" -DLIBUSB_INCLUDE_DIR="C:\\include\\libusb-1.0" -DLIBXML2_INCLUDE_DIR="C:\\include\\libxml2" ..
cmake --build . --config Release
if ( $LASTEXITCODE -ne 0 ) {
throw "[*] cmake build failure"
}
cp .\libiio.iss $env:BUILD_ARTIFACTSTAGINGDIRECTORY

cd ../bindings/python
python.exe setup.py.cmakein sdist
Get-ChildItem dist\pylibiio-*.tar.gz | Rename-Item -NewName "libiio-py39-win32.tar.gz"
mv .\dist\*.gz .
rm .\dist\*.gz
}else {
echo "Running cmake for $COMPILER on 64 bit..."
mkdir build-x64
cp .\libiio.iss.cmakein .\build-x64
cd build-x64
echo "Running cmake for $COMPILER on 64 bit..."
mkdir build-x64
cp .\libiio.iss.cmakein .\build-x64
cd build-x64

cmake -G "$COMPILER" -A "$ARCH" -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DENABLE_IPV6=OFF -DWITH_USB_BACKEND=ON -DWITH_SERIAL_BACKEND=ON -DPYTHON_BINDINGS=ON -DCSHARP_BINDINGS:BOOL=ON -DLIBXML2_LIBRARIES="C:\\libs\\64\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\64\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\64\\libserialport.dll.a" -DLIBUSB_INCLUDE_DIR="C:\\include\\libusb-1.0" -DLIBXML2_INCLUDE_DIR="C:\\include\\libxml2" ..
cmake --build . --config Release
if ( $LASTEXITCODE -ne 0 ) {
throw "[*] cmake build failure"
}
cp .\libiio.iss $env:BUILD_ARTIFACTSTAGINGDIRECTORY
cmake -G "$COMPILER" -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DENABLE_IPV6=OFF -DWITH_USB_BACKEND=ON -DWITH_SERIAL_BACKEND=ON -DPYTHON_BINDINGS=ON -DCSHARP_BINDINGS:BOOL=ON -DLIBXML2_LIBRARIES="C:\\libs\\64\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\64\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\64\\libserialport.dll.a" -DLIBUSB_INCLUDE_DIR="C:\\include\\libusb-1.0" -DLIBXML2_INCLUDE_DIR="C:\\include\\libxml2" ..
cmake --build . --config Release
cp .\libiio.iss $env:BUILD_ARTIFACTSTAGINGDIRECTORY

cd ../bindings/python
python.exe setup.py.cmakein sdist
Get-ChildItem dist\pylibiio-*.tar.gz | Rename-Item -NewName "libiio-py39-amd64.tar.gz"
mv .\dist\*.gz .
rm .\dist\*.gz
}
cd ../bindings/python
python.exe setup.py.cmakein sdist
Get-ChildItem dist\pylibiio-*.tar.gz | Rename-Item -NewName "libiio-py39-amd64.tar.gz"
mv .\dist\*.gz .
rm .\dist\*.gz
3 changes: 1 addition & 2 deletions CI/generate_exe.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
$ErrorActionPreference = "Stop"
$ErrorView = "NormalView"

SET PATH=packages\Tools.InnoSetup.5.6.1\tools
iscc $env:BUILD_ARTIFACTSTAGINGDIRECTORY\Windows-VS-16-2019-Win32\libiio.iss
iscc $env:BUILD_ARTIFACTSTAGINGDIRECTORY\Windows-VS-2019-x64\libiio.iss

Get-ChildItem $env:BUILD_ARTIFACTSTAGINGDIRECTORY -Force -Recurse | Remove-Item -Force -Recurse
cp C:\libiio-setup.exe $env:BUILD_ARTIFACTSTAGINGDIRECTORY
26 changes: 11 additions & 15 deletions CI/publish_deps.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@ $ErrorActionPreference = "Stop"
$ErrorView = "NormalView"

$src_dir=$pwd
$COMPILER=$Env:COMPILER

cd 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\14.29.30133'
if ($ARCH -eq "Win32") {
echo "$PWD"
mv .\x86\Microsoft.VC142.CRT\msvcp140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
if ($COMPILER -eq "Visual Studio 16 2019") {
cd 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT'
cp .\msvcp140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
cp .\vcruntime140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
}else {
echo "$PWD"
mv .\x64\Microsoft.VC142.CRT\msvcp140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
cd 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT'
cp .\msvcp140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
cp .\vcruntime140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
}

cd $src_dir
Expand All @@ -19,12 +21,6 @@ cd dependencies
wget http://swdownloads.analog.com/cse/build/libiio-win-deps-libusb1.0.24.zip -OutFile "libiio-win-deps.zip"
7z x -y "libiio-win-deps.zip"

if ($ARCH -eq "Win32") {
mv .\libs\32\libxml2.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
mv .\libs\32\libserialport-0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
mv .\libs\32\libusb-1.0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
}else {
mv .\libs\64\libxml2.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
mv .\libs\64\libserialport-0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
mv .\libs\64\libusb-1.0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
}
cp .\libs\64\libxml2.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
cp .\libs\64\libserialport-0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
cp .\libs\64\libusb-1.0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY
92 changes: 59 additions & 33 deletions CI/travis/prepare_assets.sh
Original file line number Diff line number Diff line change
@@ -1,74 +1,100 @@
#!/bin/bash -e

release_artifacts() {
local rpm_assets='CentOS-7-x86_64'
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}"
for i in $rpm_assets; do
cd "${i}"
find . -name '*.rpm' -exec mv {} ../ ";"
cd ../
rm -r "${i}"
done

local deb_assets='Ubuntu-16.04-x86_64 Ubuntu-18.04-x86_64
Ubuntu-20.04-x86_64 Debian-Buster-ARM
Debian-Buster-ARM64'
local deb_linux_assets='Fedora-34 Ubuntu-18.04 Ubuntu-20.04'
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}"
for i in $deb_assets; do
cd "${i}"
for i in $deb_linux_assets; do
cd "Linux-${i}"
if [ "${i}" == "Fedora-34" ]; then
find . -name '*.rpm' -exec mv {} ../ ";"
fi
find . -name '*.deb' -exec mv {} ../ ";"
cd ../
rm -r "${i}"
rm -r "Linux-${i}"
done

local pkg_assets='macOS-10.15 macOS-11'
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}"
for i in $pkg_assets; do
cd "${i}"

# change artifact name
old_name=$(find . -name '*.pkg' | cut -b 3-26)
name=$(echo "${old_name}" | cut -b 1-20)
new_name="${name}-${i}.pkg"
mv ./"${old_name}" ./"${new_name}"

find . -name '*.pkg' -exec mv {} ../ ";"
find . -name '*.gz' -exec mv {} ../ ";"
find . -name '*.tar.gz' -exec mv {} ../ ";"
cd ../
rm -r "${i}"
done

local windows_dist='Win32 x64'
local zip_assets='2019 2022'
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}"
for distribution in $windows_dist; do
zip -r Windows-VS-16-2019-"${distribution}".zip Windows-VS-16-2019-"${distribution}"
rm -r Windows-VS-16-2019-"${distribution}"
for i in $zip_assets; do
zip -r "Windows-VS-${i}-x64".zip "Windows-VS-${i}-x64"
rm -r "Windows-VS-${i}-x64"
done

local deb_arm_assets='arm32v7 arm64v8 ppc64le x390x'
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}"
for i in $deb_arm_assets; do
cd "Ubuntu-${i}"
find . -name '*.deb' -exec mv {} ../ ";"
cd ../
rm -r "Ubuntu-${i}"
done

}

swdownloads_artifacts() {
local linux_dist='CentOS-7-x86_64 Ubuntu-16.04-x86_64 Ubuntu-18.04-x86_64
Ubuntu-20.04-x86_64 Debian-Buster-ARM Debian-Buster-ARM64'
local linux_dist='Fedora-34 Ubuntu-18.04 Ubuntu-20.04'
for distribution in $linux_dist; do
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}"
cd "Linux-${distribution}"
find . -name '*.rpm' -exec mv {} ../"${distribution}"_latest_master_libiio.rpm ";"
find . -name '*.deb' -exec mv {} ../"${distribution}"_latest_master_libiio.deb ";"
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}/Linux-${distribution}"
if [ "${distribution}" == "Fedora-34" ]; then
find . -name '*.rpm' -exec mv {} ../"${distribution}_latest_master_libiio.rpm" ";"
fi
find . -name '*.tar.gz' -exec mv {} ../"${distribution}_latest_master_libiio.tar.gz" ";"
find . -name '*.deb' -exec mv {} ../"${distribution}_latest_master_libiio.deb" ";"
rm -r ../Linux-"${distribution}"
done

local macOS_dist='macOS-10.15 macOS-11'
for distribution in $macOS_dist; do
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}"
cd "${distribution}"
find . -name '*.pkg' -exec mv {} ../"${distribution}"_latest_master_libiio.pkg ";"
find . -name '*.tar.gz' -exec mv {} ../"${distribution}"_latest_master_libiio.tar.gz ";"
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}/${distribution}"
find . -name '*.pkg' -exec mv {} ../"${distribution}_latest_master_libiio.pkg" ";"
find . -name '*.tar.gz' -exec mv {} ../"${distribution}_latest_master_libiio.tar.gz" ";"
rm -r ../"${distribution}"
done

local windows_dist='Win32 x64'
local windows_dist='2019 2022'
for distribution in $windows_dist; do
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}"
zip -r Windows-VS-16-2019-"${distribution}".zip Windows-VS-16-2019-"${distribution}"
rm -r Windows-VS-16-2019-"${distribution}"
zip -r "Windows-VS-${distribution}-x64-latest_master_libiio".zip "Windows-VS-${distribution}-x64"
rm -r "Windows-VS-${distribution}-x64"
done

local arm_dist='arm32v7 arm64v8 ppc64le x390x'
for distribution in $arm_dist; do
cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}/Ubuntu-${distribution}"
find . -name '*.tar.gz' -exec mv {} ../"Ubuntu-${distribution}_latest_master_libiio.tar.gz" ";"
find . -name '*.deb' -exec mv {} ../"Ubuntu-${distribution}_latest_master_libiio.deb" ";"
rm -r ../Ubuntu-"${distribution}"
done

cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}/Libiio-Setup-Exe"
mv libiio-setup.exe ../libiio-setup.exe
rm -r ../Libiio-Setup-Exe
}

check_artifacts() {
cd build
while IFS= read -r line; do
if [ -z "${line}" ]; then continue
fi
test -f ./artifacts/"${line}" && echo "${line} exist." || echo "${line} does not exist."
done < "artifact_manifest.txt"
}

"${1}"_artifacts
Loading

0 comments on commit abe0996

Please sign in to comment.