Skip to content

Commit

Permalink
ci: testing github actions
Browse files Browse the repository at this point in the history
- disable other azure pipelines builds.
- remove the attempt to build in azure pipelines steps the wheels
- NOTE: cant build on centOS7 with usb backed since packages are not available. Try with newer docker image
- Enable log in libm2k linux build

Signed-off-by: Adrian Stanea <[email protected]>
  • Loading branch information
Adrian-Stanea committed Dec 5, 2023
1 parent c17a810 commit 5304e59
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 35 deletions.
22 changes: 19 additions & 3 deletions .github/scripts/install_deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,33 @@ LIBIIO_VERSION=libiio-v0
PACKAGE_DIR=${1-build}
echo $PACKAGE_DIR

apt-get -qq update
apt-get install -y git wget tar graphviz libavahi-common-dev libavahi-client-dev libaio-dev libusb-1.0-0-dev libxml2-dev rpm tar bzip2 gzip flex bison git swig python3 python3-dev python3-setuptools python3-pip python3-all libserialport-dev
echo "Calling update - SKIPPED"
# yum -y update
# apt-get -y update
echo "Installing dependencies"

# On CentOS 8, avahi-devel & doxygen are in this repo; enable it
yum -y install yum-utils
yum config-manager --set-enabled powertools
yum -y install libxml2-devel libusb1-devel doxygen libaio-devel \
avahi-devel bzip2 gzip rpm rpm-build swig

# apt-get install -y git wget tar graphviz libavahi-common-dev libavahi-client-dev libaio-dev libusb-1.0-0-dev libxml2-dev rpm tar bzip2 gzip flex bison git swig python3 python3-dev python3-setuptools python3-pip python3-all libserialport-dev

# THE below deps work on centOS7 without USB backend
# yum install -y git wget tar graphviz avahi-devel avahi-tools libaio-devel libusbx-devel libusb1-devel libxml2-devel bzip2 gzip flex bison git swig python3 python3-devel python3-setuptools python3-pip # libserialport-dev
yum install -y git wget tar graphviz avahi-devel libaio-devel libusb1-devel libxml2-devel rpm rpm-build tar bzip2 gzip flex bison git swig python3 python3-devel python3-setuptools python3-pip

echo "Installing cmake with pip"
python3 -m pip install cmake
cmake --version

git clone -b $LIBIIO_VERSION --single-branch --depth 1 https://github.com/analogdevicesinc/libiio.git libiio
cd libiio
mkdir -p build
cd build
cmake -DHAVE_DNS_SD=OFF ..
# CentOS 7 does not have new enough kernel headers to support modern libusb. nor libserialport
cmake .. -Werror=dev -DCOMPILE_WARNING_AS_ERROR=ON -DPYTHON_BINDINGS=ON -DWITH_USB_BACKEND=ON -DWITH_IIOD_USBD=ON
make
make install
cd ../..
Expand Down
19 changes: 12 additions & 7 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,21 @@ name: Build

on: [push, pull_request]

# TODO: add a simple test that tries to import the libm2k package after creating wheel;
# NOTE: do i have a acces to a pip install during the cybuildwheel process?
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
# os: [CentOS_7] # manylinux2014: (CentOS 7 based)
python_version: ['3.11']

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
name: Install Python ${{ matrix.python_version }}
with:
python-version: ${{ matrix.python_version }}
Expand All @@ -22,23 +25,25 @@ jobs:
run: |
mkdir ${{ github.workspace }}/build
touch ${{ github.workspace }}/build/setup.py
# TODO: Test using more recent Docker image
- name: Get some sample wheels
run: |
python -m pip install cibuildwheel twine
cibuildwheel --output-dir ${{ github.workspace }}/wheelhouse ${{ github.workspace }}/build
env:
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_24
CIBW_MANYLINUX_I686_IMAGE: manylinux_2_24
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_24
CIBW_DEBUG_KEEP_CONTAINER=: TRUE
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
CIBW_MANYLINUX_I686_IMAGE: manylinux_2_28
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28
# Skip building PyPy wheels on all platforms
# Skip musllinux builds
CIBW_SKIP: "pp* *-musllinux*"
CIBW_BUILD_VERBOSITY: 1
CIBW_BUILD_VERBOSITY: 3
CIBW_BEFORE_ALL: >
cd {project} && ./.github/scripts/install_deps.sh {package}
CIBW_BUILD: "cp37-* cp38-* cp39-* cp310-* cp311-*"
CIBW_ENVIRONMENT: COMPILE_BINDINGS="True"
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
with:
name: manylinux_wheels
path: ${{ github.workspace }}/wheelhouse
Expand Down
4 changes: 2 additions & 2 deletions CI/ubuntu/make_linux
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ handle_default() {
cd build

#create deb for bindings
cmake -DENABLE_PYTHON=ON -DENABLE_TOOLS=ON -DENABLE_CSHARP=OFF -DENABLE_LOG=OFF -DBUILD_EXAMPLES=ON .. && make
cmake -DENABLE_PYTHON=ON -DENABLE_TOOLS=ON -DENABLE_CSHARP=OFF -DENABLE_LOG=ON -DBUILD_EXAMPLES=ON .. && make
sudo python3 setup.py --command-packages=stdeb.command sdist_dsc
cd "$(find . -type d -name "debian" | head -n 1)"
sudo env DEB_BUILD_OPTIONS=nocheck debuild -us -uc
Expand All @@ -20,7 +20,7 @@ handle_default() {
ls

#create simple .deb without Python bindings
cmake -DENABLE_PACKAGING=ON -DDEB_DETECT_DEPENDENCIES=ON -DENABLE_PYTHON=OFF -DENABLE_CSHARP=ON -DENABLE_TOOLS=ON -DENABLE_LOG=OFF -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_EXAMPLES=ON ..
cmake -DENABLE_PACKAGING=ON -DDEB_DETECT_DEPENDENCIES=ON -DENABLE_PYTHON=OFF -DENABLE_CSHARP=ON -DENABLE_TOOLS=ON -DENABLE_LOG=ON -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_EXAMPLES=ON ..
make && make package
ls
}
Expand Down
23 changes: 0 additions & 23 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,29 +68,6 @@ jobs:
targetFolder: '$(Build.ArtifactStagingDirectory)'
- script: ./CI/ubuntu/make_linux
displayName: "Build"
- ${{ each pyVersion in parameters.pythonVersions }}:
- task: UsePythonVersion@0
condition: and(ne(variables['System.JobName'], 'deploy_doxygen'), eq('${{ pyVersion }}', '3.11'))
displayName: Use Python ${{ pyVersion }}
inputs:
versionSpec: '${{ pyVersion }}'
- script: |
python3 --version
python3 -m pip install wheel twine build virtualenv
cd '$(Agent.BuildDirectory)/s/build/'
mkdir -p wheelhouse
export COMPILE_BINDINGS=True
python3 -m build
export COMPILE_BINDINGS=
cp dist/*.whl wheelhouse
displayName: Wheel Python ${{ pyVersion }}
condition: and(ne(variables['System.JobName'], 'deploy_doxygen'), eq('${{ pyVersion }}', '3.11'))
- task: CopyFiles@2
condition: ne(variables['System.JobName'], 'deploy_doxygen')
inputs:
sourceFolder: '$(Agent.BuildDirectory)/s/build/'
contents: '$(Agent.BuildDirectory)/s/build/wheelhouse/?(*.whl)'
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: CopyFiles@2
condition: ne(variables['System.JobName'], 'deploy_doxygen')
inputs:
Expand Down

0 comments on commit 5304e59

Please sign in to comment.