Skip to content

Replace websockets with zmq #13454

Replace websockets with zmq

Replace websockets with zmq #13454

name: Build and test
on:
push:
branches:
- main
- 'version-**'
tags: "*"
pull_request:
env:
ERT_SHOW_BACKTRACE: 1
ECL_SKIP_SIGNAL: 1
UV_SYSTEM_PYTHON: 1
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
build-wheels:
strategy:
fail-fast: false
matrix:
python-version: [ '3.11', '3.12' ]
uses: ./.github/workflows/build-wheels.yml
with:
python-version: ${{ matrix.python-version }}
test-linux-ert:
strategy:
fail-fast: false
matrix:
test-type: [ 'performance-tests', 'unit-tests', 'gui-tests', 'cli-tests' ]
python-version: [ '3.11', '3.12' ]
os: [ ubuntu-latest ]
uses: ./.github/workflows/test_ert.yml
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
test-type: ${{ matrix.test-type }}
secrets: inherit
test-linux-everest:
strategy:
fail-fast: false
matrix:
test-type: [ 'test', 'integration-test', 'everest-models-test', 'doc', 'everest-docs-entry-test' ]
python-version: [ '3.11', '3.12' ]
os: [ ubuntu-latest ]
uses: ./.github/workflows/test_everest.yml
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
test-type: ${{ matrix.test-type }}
secrets: inherit
test-slurm:
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
python-version: [ '3.11', '3.12' ]
uses: ./.github/workflows/test_ert_with_slurm.yml
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
secrets: inherit
test-mac-ert:
if: github.ref_type != 'tag' # when not tag
strategy:
fail-fast: false
matrix:
test-type: [ 'performance-tests', 'unit-tests', 'gui-tests', 'cli-tests' ]
python-version: [ '3.12' ]
os: [ 'macos-latest' ]
uses: ./.github/workflows/test_ert.yml
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
test-type: ${{ matrix.test-type }}
secrets: inherit
test-mac-everest:
if: github.ref_type != 'tag' # when not tag
strategy:
fail-fast: false
matrix:
test-type: [ 'test', 'integration-test', 'everest-models-test' ]
python-version: [ '3.12' ]
os: [ 'macos-latest' ]
uses: ./.github/workflows/test_everest.yml
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
test-type: ${{ matrix.test-type }}
secrets: inherit
test-mac-for-tags-everest:
if: github.ref_type == 'tag' # only test all variants for tags
strategy:
fail-fast: false
matrix:
test-type: [ 'test', 'integration-test', 'everest-models-test' ]
os: [ 'macos-13', 'macos-14', 'macos-14-large']
python-version: [ '3.12' ]
exclude:
- os: 'macos-13'
python-version: '3.12'
uses: ./.github/workflows/test_everest.yml
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
test-type: ${{ matrix.test-type }}
secrets: inherit
test-mac-for-tags-ert:
if: github.ref_type == 'tag' # only test all variants for tags
strategy:
fail-fast: false
matrix:
test-type: [ 'performance-tests', 'unit-tests', 'gui-tests', 'cli-tests' ]
python-version: [ '3.12' ]
os: [ 'macos-13', 'macos-14']
exclude:
- os: 'macos-13'
python-version: '3.12'
uses: ./.github/workflows/test_ert.yml
with:
os: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
test-type: ${{ matrix.test-type }}
secrets: inherit
docs-ert:
name: Test ert docs
strategy:
fail-fast: false
matrix:
python-version: ['3.12']
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: './.github/actions/install_dependencies'
with:
os: ${{ matrix.os }}
- name: Install pandoc
run: |
sudo apt install pandoc
- uses: actions/setup-python@v5
id: setup_python
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Install ert
run: |
uv pip install ".[dev, everest]"
- name: Make test directory
run: |
mkdir tmp_tests
mv tests tmp_tests/tests
mv test-data tmp_tests/test-data
mkdir tmp_tests/.git
- name: Test docs
run: |
sphinx-build -n -v -E -W ./docs/ert ./tmp/ert_docs
publish:
name: Publish to PyPI
runs-on: ubuntu-latest
needs: [build-wheels, test-linux-ert, test-linux-everest, test-mac-for-tags-ert, test-mac-for-tags-everest, docs-ert]
permissions:
id-token: write
# If this is a tagged release
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps:
- name: Get wheels
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Move to dist/
run: |
mkdir dist
find artifacts -name "*.whl" -exec mv '{}' dist/ \;
- name: Publish to PyPI
uses: pypa/[email protected]