Merge pull request #489 from 3dgeo-heidelberg/updated-dockerfiles #137
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 + Test | |
on: | |
push: | |
branches: | |
- main | |
- dev | |
- alpha-dev | |
pull_request: | |
branches: | |
- main | |
- dev | |
- alpha-dev | |
workflow_dispatch: | |
inputs: | |
upload-outputs: | |
description: 'Whether to upload outputs' | |
default: false | |
type: boolean | |
jobs: | |
build-and-test: | |
runs-on: ${{ matrix.os }} | |
name: Testing on ${{ matrix.os }} with Python ${{ matrix.python }} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
- macos-latest | |
- windows-latest | |
python: | |
- "3.9" | |
- "3.13" | |
defaults: | |
run: | |
# Conda requires a login shell in order to work properly | |
shell: bash -l {0} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Create Helios dev environment | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
auto-activate-base: false | |
activate-environment: helios-dev | |
environment-file: environment-dev.yml | |
python-version: ${{ matrix.python }} | |
miniconda-version: "latest" | |
- name: Install Conda GCC | |
if: runner.os == 'Linux' | |
run: | | |
conda install -y -c conda-forge gcc gxx | |
- name: Install Helios | |
run: | | |
python -m pip install -v . | |
env: | |
SETUPTOOLS_SCM_SUBPROCESS_TIMEOUT: "120" | |
# Do not run on MacOS for now - we do not yet officially support it and we need to invest a bit | |
# more efforts into investigating broken LAZ files written by Helios on MacOS. | |
- name: Run tests (incl. regression tests) | |
if: runner.os == 'Windows' | |
run: | | |
python -m pytest --regression-tests | |
- name: Run tests (excl. regression tests) | |
if: runner.os == 'Linux' | |
run: | | |
python -m pytest | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
if: github.event.inputs.upload-outputs == 'true' | |
with: | |
name: test-results | |
path: output/* | |
retention-days: 1 |