140 lines
4.5 KiB
YAML
140 lines
4.5 KiB
YAML
cppyy-22.04:
|
|
stage: test
|
|
image: ubuntu:22.04 # python 3.10
|
|
rules:
|
|
- if: $RELEASE == "manual"
|
|
dependencies: []
|
|
before_script:
|
|
- apt update
|
|
- DEBIAN_FRONTEND=noninteractive apt install -y
|
|
g++ cmake ninja-build ccache
|
|
python3 python3-pip
|
|
libboost-dev libgsl-dev libgtk-3-dev
|
|
git wget
|
|
- pip install cppyy==2.4.2 matplotlib numpy
|
|
script:
|
|
- ./ns3 configure -G Ninja --enable-python-bindings
|
|
- ./ns3 build
|
|
- ./ns3 run first.py
|
|
- ./ns3 run second.py
|
|
- ./ns3 run third.py
|
|
- ./ns3 run wifi-ap.py
|
|
- ./ns3 run simple-routing-ping6.py
|
|
- ./ns3 run realtime-udp-echo.py
|
|
- ./ns3 run sample-simulator.py
|
|
- ./ns3 run "sample-rng-plot.py --not-blocking"
|
|
- ./ns3 run csma-bridge.py
|
|
- ./ns3 run wifi-olsr-flowmon.py
|
|
- ./ns3 run "flowmon-parse-results.py output.xml"
|
|
- ./ns3 run mixed-wired-wireless.py
|
|
- ./ns3 run ./utils/python-unit-tests.py
|
|
timeout: 9h
|
|
|
|
cppyy-20.04:
|
|
stage: test
|
|
image: ubuntu:20.04 # python 3.8
|
|
rules:
|
|
- if: $RELEASE == "manual"
|
|
before_script:
|
|
- apt update
|
|
- DEBIAN_FRONTEND=noninteractive apt install -y
|
|
g++ cmake ninja-build ccache
|
|
python3 python3-pip
|
|
libboost-dev libgsl-dev libgtk-3-dev
|
|
git wget
|
|
- pip install cppyy==2.4.2
|
|
script:
|
|
- ./ns3 configure -G Ninja --enable-python-bindings
|
|
- ./ns3 build
|
|
- ./ns3 run first.py
|
|
- ./ns3 run second.py
|
|
- ./ns3 run third.py
|
|
- ./ns3 run ./utils/python-unit-tests.py
|
|
timeout: 9h
|
|
|
|
.manylinux-pip-wheel:
|
|
stage: test
|
|
image: quay.io/pypa/manylinux_2_28_x86_64
|
|
rules:
|
|
- if: $RELEASE == "manual"
|
|
script:
|
|
# Untar libraries (just to make CMake happy, but we are not going to actually link them)
|
|
# https://github.com/scikit-build/scikit-build/pull/47
|
|
- tar -xvf /opt/_internal/static-libs-for-embedding-only.tar.xz -C /opt/_internal
|
|
# Install minimal toolchain
|
|
- yum install -y libxml2-devel gsl-devel sqlite-devel gtk3-devel boost-devel
|
|
# Create Python venv
|
|
- $PYTHON -m venv ./venv
|
|
- . ./venv/bin/activate
|
|
# Upgrade the pip version to reuse the pre-build cppyy
|
|
- python -m pip install pip --upgrade
|
|
- python -m pip install setuptools setuptools_scm wheel --upgrade
|
|
- python -m pip install auditwheel cmake-build-extension cppyy==2.4.2
|
|
# Configure and build wheel
|
|
- python setup.py bdist_wheel build_ext
|
|
- export EXCLUDE_INTERNAL_LIBRARIES=`python ./build-support/pip-wheel/auditwheel-exclude-list.py`
|
|
# Bundle in shared libraries that were not explicitly packaged or depended upon
|
|
- python -m auditwheel repair ./dist/*whl -L /lib64 $EXCLUDE_INTERNAL_LIBRARIES
|
|
# Clean the build directory
|
|
- python ./ns3 clean
|
|
# Clean up the environment
|
|
- deactivate
|
|
- rm -R ./venv
|
|
# Delete toolchain to check if required headers/libraries were really packaged
|
|
- yum remove -y libxml2-devel gsl-devel sqlite-devel gtk3-devel boost-devel
|
|
# Install wheel
|
|
- $PYTHON -m pip install ./wheelhouse/*whl
|
|
- $PYTHON -m pip install matplotlib numpy
|
|
# Test the bindings
|
|
- $PYTHON ./utils/python-unit-tests.py
|
|
- $PYTHON ./examples/realtime/realtime-udp-echo.py
|
|
- $PYTHON ./examples/routing/simple-routing-ping6.py
|
|
- $PYTHON ./examples/tutorial/first.py
|
|
- $PYTHON ./examples/tutorial/second.py
|
|
- $PYTHON ./examples/tutorial/third.py
|
|
- $PYTHON ./examples/wireless/wifi-ap.py
|
|
- $PYTHON ./examples/wireless/mixed-wired-wireless.py
|
|
- $PYTHON ./src/bridge/examples/csma-bridge.py
|
|
- $PYTHON ./src/brite/examples/brite-generic-example.py
|
|
- $PYTHON ./src/core/examples/sample-simulator.py
|
|
- $PYTHON ./src/core/examples/sample-rng-plot.py --not-blocking
|
|
- $PYTHON ./src/click/examples/nsclick-simple-lan.py
|
|
- $PYTHON ./src/flow-monitor/examples/wifi-olsr-flowmon.py
|
|
- $PYTHON ./src/flow-monitor/examples/flowmon-parse-results.py output.xml
|
|
- $PYTHON ./src/openflow/examples/openflow-switch.py
|
|
timeout: 3h
|
|
artifacts:
|
|
paths:
|
|
- wheelhouse/*.whl
|
|
when: on_success
|
|
|
|
manylinux-pip-wheel-py3.6:
|
|
extends: .manylinux-pip-wheel
|
|
variables:
|
|
PYTHON: "python3.6"
|
|
|
|
manylinux-pip-wheel-py3.7:
|
|
extends: .manylinux-pip-wheel
|
|
variables:
|
|
PYTHON: "python3.7"
|
|
|
|
manylinux-pip-wheel-py3.8:
|
|
extends: .manylinux-pip-wheel
|
|
variables:
|
|
PYTHON: "python3.8"
|
|
|
|
manylinux-pip-wheel-py3.9:
|
|
extends: .manylinux-pip-wheel
|
|
variables:
|
|
PYTHON: "python3.9"
|
|
|
|
manylinux-pip-wheel-py3.10:
|
|
extends: .manylinux-pip-wheel
|
|
variables:
|
|
PYTHON: "python3.10"
|
|
|
|
manylinux-pip-wheel-py3.11:
|
|
extends: .manylinux-pip-wheel
|
|
variables:
|
|
PYTHON: "python3.11"
|