GitHub actions #17
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 Python Package | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
build_ubuntu: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libgsl-dev libgslcblas0 | |
pip install --upgrade pip setuptools wheel auditwheel patchelf | |
- name: Build the wheel | |
run: python setup.py bdist_wheel | |
- name: Repair wheel with auditwheel | |
run: | | |
auditwheel show dist/*.whl | |
auditwheel repair dist/*.whl --plat manylinux_2_31_x86_64 -w wheelhouse/ | |
- name: Upload wheel artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ubuntu-wheel | |
path: wheelhouse/*.whl | |
build_windows: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Install dependencies | |
shell: powershell | |
run: | | |
vcpkg install gsl:x64-windows-static | |
pip install --upgrade pip setuptools wheel | |
- name: Build the wheel | |
run: python setup.py bdist_wheel | |
- name: Upload wheel artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows-wheel | |
path: dist/*.whl | |
test_ubuntu: | |
needs: build_ubuntu | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y gmsh | |
- name: Download wheel artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: ubuntu-wheel | |
path: ./ | |
- name: Print system information | |
run: | | |
echo $PATH | |
pwd | |
ls | |
- name: Create Python environment | |
run: | | |
python -m venv test-environment | |
source ./test-environment/bin/activate | |
- name: Install the wheel | |
run: | | |
pip install traceon-*.whl | |
pip show traceon | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Run unit tests | |
run: python -m unittest tests.unit_tests | |
test_windows: | |
needs: build_windows | |
runs-on: windows-latest | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Download wheel artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: windows-wheel | |
path: ./ | |
- name: Print system information | |
run: | | |
echo $env:Path | |
pwd | |
ls | |
- name: Create Python environment | |
run: | | |
python -m venv test-environment | |
./test-environment/bin/activate.ps1 | |
- name: Install the wheel | |
run: | | |
pip install (get-item traceon-*.whl) | |
pip show traceon | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Run unit tests | |
run: python -m unittest tests.unit_tests |