Also include submodules #3
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and test wheels AMD64 | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
jobs: | |
linux-build: | |
name: Build wheel for linux AMD64 | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare snap7 archive | |
uses: ./.github/actions/prepare_snap7 | |
- name: Build wheel | |
uses: ./.github/actions/manylinux_2_28_x86_64 | |
with: | |
script: ./.github/build_scripts/build_package.sh | |
platform: manylinux_2_28_x86_64 | |
makefile: x86_64_linux.mk | |
python: /opt/python/cp38-cp38/bin/python | |
wheeldir: wheelhouse/${{ runner.os }}/ | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels | |
path: wheelhouse/*/*.whl | |
windows-build: | |
name: Build wheel for windows AMD64 | |
runs-on: windows-2022 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare snap7 archive | |
uses: ./.github/actions/prepare_snap7 | |
- name: Build wheel | |
run: | | |
mkdir -p snap7/lib/ | |
Copy-Item .\snap7-full-1.4.2\release\Windows\Win64\snap7.dll .\snap7\lib | |
python3 -m build . --wheel -C="--plat-name=win_amd64" | |
mkdir -p wheelhouse/${{ runner.os }}/ | |
cp dist/*.whl wheelhouse/${{ runner.os }}/ | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels | |
path: wheelhouse/*/*.whl | |
osx-build: | |
name: Build wheel for osx AMD64 | |
runs-on: macos-11 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Prepare snap7 archive | |
uses: ./.github/actions/prepare_snap7 | |
- name: Prepare files | |
run: | | |
cp .github/build_scripts/arm64_osx.mk snap7-full-1.4.2/build/osx/ | |
pushd snap7-full-1.4.2/build/osx/ | |
make -f x86_64_osx.mk all | |
make -f arm64_osx.mk all | |
lipo -create -output /usr/local/lib/libsnap7.dylib ../bin/x86_64-osx/libsnap7.dylib ../bin/arm64-osx/libsnap7.dylib | |
install_name_tool -id /usr/local/lib/libsnap7.dylib /usr/local/lib/libsnap7.dylib | |
popd | |
mkdir -p snap7/lib/ | |
cp /usr/local/lib/libsnap7.dylib snap7/lib/ | |
- name: Build wheel | |
run: | | |
python3 -m build . --wheel -C="--plat-name=macosx_10_9_universal2" | |
mkdir -p wheelhouse/${{ runner.os }}/ | |
cp dist/*.whl wheelhouse/${{ runner.os }}/ | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels | |
path: wheelhouse/*/*.whl | |
test-wheels-86_64: | |
name: Testing wheels for AMD64 | |
needs: [linux-build, windows-build, osx-build] | |
continue-on-error: true | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-22.04, ubuntu-20.04, macos-14, macos-11, windows-2022, windows-2019] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install pytest | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install pytest | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: wheels | |
path: wheelhouse | |
- name: Install python-snap7 | |
run: python3 -m pip install $(ls wheelhouse/${{ runner.os }}/*.whl) | |
- name: Run pytest | |
run: | | |
which pytest | |
pytest -m "server or util or client or mainloop" | |
- name: Run tests required sudo | |
if: ${{ runner.os == 'Linux'}} | |
run: sudo /opt/hostedtoolcache/Python/${{ matrix.python-version }}*/x64/bin/pytest -m partner | |
- name: Run tests required sudo | |
if: ${{ runner.os == 'macOS'}} | |
run: sudo pytest -m partner | |
- name: Run tests required sudo | |
if: ${{ runner.os == 'Windows'}} | |
run: pytest -m partner |