CI: Test against RMS-locked environments #2
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: Tests | ||
on: | ||
push: | ||
branches: [main, "*postfix"] | ||
pull_request: | ||
branches: [main] | ||
release: | ||
types: | ||
- published | ||
schedule: | ||
# Run nightly to check that tests are working with latest dependencies | ||
- cron: "0 0 * * *" | ||
jobs: | ||
test: | ||
strategy: | ||
matrix: | ||
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | ||
os: [ubuntu-latest] | ||
include: | ||
- os: macos-latest | ||
python-version: 3.8 | ||
- os: macos-latest | ||
python-version: 3.12 | ||
- os: windows-latest | ||
python-version: 3.8 | ||
- os: windows-latest | ||
python-version: 3.12 | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Setup xtgeo | ||
uses: "./.github/actions/setup_xtgeo" | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Setup testdata | ||
uses: "./.github/actions/setup_testdata" | ||
- name: Run tests | ||
run: pytest -n 4 tests --disable-warnings | ||
hypothesis: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Setup xtgeo | ||
uses: "./.github/actions/setup_xtgeo" | ||
with: | ||
python-version: 3.9 | ||
- name: Setup testdata | ||
uses: "./.github/actions/setup_testdata" | ||
- name: Run just hypothesis tests with more examples | ||
run: pytest -n 4 tests --disable-warnings -m hypothesis --generate-plots | ||
rms: | ||
strategy: | ||
matrix: | ||
config: | ||
- { | ||
name: "RMS 12.1.4, 13.0.3, 13.1.0, 14.1.1" | ||
os: ubuntu-latest | ||
python: 3.8 | ||
pip: 23.2.1 | ||
wheel: 0.37.1 | ||
setuptools: 63.4.3 | ||
matplotlib: 3.3.2 | ||
numpy: 1.19.2 | ||
pandas: 1.1.3 | ||
scipy: 1.5.3 | ||
} | ||
name: "RMS 14.2" | ||
os: ubuntu-latest | ||
python: 3.11 | ||
pip: 23.3.1 | ||
wheel: 0.37.1 | ||
setuptools: 63.4.3 | ||
matplotlib: 3.7.1 | ||
numpy: 1.24.3 | ||
pandas: 2.0.2 | ||
scipy: 1.10.1 | ||
} | ||
name: ${{ matrix.config.name }} | ||
runs-on: ${{ matrix.config.os }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Setup testdata | ||
uses: "./.github/actions/setup_testdata" | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.config.python }} | ||
- name: Build and install xtgeo | ||
run: | | ||
pip install pip==${{ matrix.config.pip }} | ||
pip install \ | ||
wheel==${{ matrix.config.wheel }} \ | ||
setuptools==${{ matrix.config.setuptools }} \ | ||
matplotlib==${{ matrix.config.matplotlib }} \ | ||
numpy==${{ matrix.config.numpy }} \ | ||
pandas==${{ matrix.config.pandas }} \ | ||
scipy==${{ matrix.config.scipy }} | ||
pip install ".[dev]" | ||
- name: List dependencies | ||
run: pip freeze | ||
- name: Run tests | ||
run: pytest -n 4 tests --disable-warnings | ||
big: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Setup xtgeo | ||
uses: "./.github/actions/setup_xtgeo" | ||
with: | ||
python-version: 3.9 | ||
- name: Setup testdata | ||
uses: "./.github/actions/setup_testdata" | ||
- name: Run just tests marked big | ||
run: XTG_BIGTEST=1 pytest -n 4 tests --disable-warnings -m bigtest --generate-plots | ||
codecov: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Setup xtgeo | ||
uses: "./.github/actions/setup_xtgeo" | ||
with: | ||
python-version: 3.9 | ||
- name: Setup testdata | ||
uses: "./.github/actions/setup_testdata" | ||
- name: Generate coverage report | ||
run: pytest -n 4 tests --doctest-modules --generate-plots --disable-warnings --cov=xtgeo --cov-report=xml:xtgeocoverage.xml; | ||
- name: Upload coverage to Codecov | ||
uses: codecov/codecov-action@v2 | ||
with: | ||
files: xtgeocoverage.xml | ||
opm-integration: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: "./.github/actions/setup_xtgeo" | ||
with: | ||
python-version: 3.9 | ||
- name: Setup testdata | ||
uses: "./.github/actions/setup_testdata" | ||
- name: Set up OPM | ||
run: | | ||
sudo apt install software-properties-common && | ||
sudo apt-add-repository ppa:opm/ppa && | ||
sudo apt install mpi-default-bin libopm-simulators-bin | ||
- name: Integration test | ||
run: HAS_OPM=1 python -m pytest -m requires_opm --disable-warnings |