Skip to content

Workflow file for this run

name: Continuous Integration/Build
on:
push:
jobs:
testing:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Set up apt sources
run: |
sudo add-apt-repository -y ppa:ettusresearch/uhd
- name: Install apt packages
uses: awalsh128/cache-apt-pkgs-action@v1.4.2
with:
packages: cmake build-essential pkg-config uhd-host libusb-1.0-0-dev libfftw3-dev python3-dev libuhd-dev libairspy-dev libhackrf-dev
version: 1.1
execute_install_scripts: true
- name: Install Dependencies
run: |
sudo apt install -y libboost-all-dev
- name: Install package
run: |
python -m pip install .
python -m pip install pylint pytest
- name: Runs Pylint
run: |
python -m pylint $(git ls-files *.py)
- name: Runs PyTest
run: |
python -m pytest tests
release:
runs-on: ubuntu-24.04
needs: [testing]
if: github.ref == 'refs/heads/master'
permissions:
id-token: write
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
ref: master
token: ${{ secrets.RELEASER }}
persist-credentials: true
- name: Python Semantic Release
uses: python-semantic-release/python-semantic-release@v9.8.6
id: release
with:
github_token: ${{ secrets.RELEASER }}
root_options: "-vv"
outputs:
release: ${{ steps.release.outputs.released }}
build_wheels:
if: needs.release.outputs.release == 'true'
name: Build wheels on ${{ matrix.python-version }}
needs: [release]
runs-on: ubuntu-24.04
strategy:
matrix:
# os: [ubuntu-latest, windows-latest] # Not supporting macos due to https://github.com/stbrumme/hash-library/pull/4/files not being resolved
python-version: ["3.12"]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
ref: master
# Used to host cibuildwheel
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Set up apt sources
run: |
sudo add-apt-repository -y ppa:ettusresearch/uhd
- name: Install apt packages
uses: awalsh128/cache-apt-pkgs-action@v1.4.2
with:
packages: cmake build-essential pkg-config uhd-host libusb-1.0-0-dev libfftw3-dev python3-dev libuhd-dev libairspy-dev libhackrf-dev
version: 1.1
execute_install_scripts: true
- name: Install Dependencies
run: |
sudo apt install -y libboost-all-dev
# - name: Install cibuildwheel
# run: python -m pip install cibuildwheel
# - name: Build wheels
# run: python -m cibuildwheel --output-dir dist
# # to supply options, put them in 'env', like:
# # env:
# # CIBW_SOME_OPTION: value
# env:
# CIBW_BUILD: "cp39-*64 cp310-*64 cp311-*64 cp312-*64"
# CIBW_BEFORE_BUILD: git submodule update --init --recursive && pip install .
- name: Build wheels
run: python -m pip wheel -w dist .
- uses: actions/upload-artifact@v4
with:
path: |
./dist/*.whl
publish:
runs-on: ubuntu-latest
needs: [build_wheels]
permissions:
id-token: write
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
ref: master
- uses: actions/download-artifact@v4
with:
name: artifact
path: dist
- name: Check dist
run: ls -R dist
- name: Publish package distributions to GitHub Releases
id: github-release
uses: python-semantic-release/upload-to-gh-release@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}