diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..d73a100d --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,49 @@ +name: CI + +on: [push, pull_request] + +jobs: + test: + runs-on: ${{ matrix.os }} + continue-on-error: ${{ matrix.experimental }} + strategy: + fail-fast: true + matrix: + os: ["ubuntu-latest"] + python-version: ["3.7", "3.8"] + experimental: [false] + + env: + PYTHON_VERSION: ${{ matrix.python-version }} + OS: ${{ matrix.os }} + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + PYGAC_CONFIG_FILE: etc/pygac.cfg.template + + steps: + - name: Checkout source + uses: actions/checkout@v2 + + - name: Setup Conda Environment + uses: conda-incubator/setup-miniconda@v2 + with: + miniconda-version: "latest" + python-version: ${{ matrix.python-version }} + environment-file: continuous_integration/environment.yaml + activate-environment: test-environment + + - name: Install pygac + shell: bash -l {0} + run: | + pip install --no-deps -e . + + - name: Run unit tests + shell: bash -l {0} + run: | + coverage run --source=pygac setup.py test + coverage xml + + - name: Upload unittest coverage + uses: codecov/codecov-action@v1 + with: + file: ./coverage.xml + env_vars: OS,PYTHON_VERSION diff --git a/continuous_integration/environment.yaml b/continuous_integration/environment.yaml new file mode 100644 index 00000000..a34f4d4f --- /dev/null +++ b/continuous_integration/environment.yaml @@ -0,0 +1,20 @@ +name: test-environment +channels: + - conda-forge +dependencies: + - numpy + - scipy + - bottleneck + - python-dateutil + - hdf5 + - h5py + - pytest + - pytest-cov + - pip + - pip: + - docutils + - pyorbital + - python-geotiepoints + - trollimage + - pyspectral + - pyorbital