Refactor ES update using strategy pattern #24993
This file contains hidden or 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 | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - 'version-**' | |
| tags: "*" | |
| pull_request: | |
| permissions: | |
| contents: read | |
| env: | |
| ERT_SHOW_BACKTRACE: 1 # resdata print on failure https://github.com/equinor/resdata/blob/5fdf0280726a2670161ed536705dc9156aea39be/lib/util/util_abort.cpp#L96 | |
| UV_FROZEN: true # https://docs.astral.sh/uv/configuration/environment/#uv_frozen | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| run-pre-commit: | |
| uses: ./.github/workflows/run_pre_commit.yml | |
| check-typing: | |
| uses: ./.github/workflows/typing.yml | |
| run-testdata: | |
| needs: [run-pre-commit, check-typing] | |
| uses: ./.github/workflows/run_ert_test_data_setups.yml | |
| run-dummy-site-config: | |
| needs: [run-pre-commit, check-typing] | |
| uses: ./.github/workflows/test_ert_with_site_config.yml | |
| build-wheels: | |
| needs: [run-pre-commit, check-typing] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [ '3.11', '3.12', '3.13' ] | |
| uses: ./.github/workflows/build-wheels.yml | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| test-linux-ert: | |
| needs: [run-pre-commit, check-typing] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-type: [ 'performance-and-unit-tests', 'gui-tests', 'cli-tests' ] | |
| python-version: [ '3.11', '3.12', '3.13' ] | |
| 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: | |
| needs: [run-pre-commit, check-typing] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-type: [ 'test', 'everviz-test', 'doc' ] | |
| python-version: [ '3.11', '3.12', '3.13' ] | |
| os: [ ubuntu-latest ] | |
| exclude: | |
| - os: 'ubuntu-latest' | |
| test-type: 'doc' | |
| python-version: '3.11' | |
| - os: 'ubuntu-latest' | |
| test-type: 'doc' | |
| 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-slurm: | |
| needs: [run-pre-commit, check-typing] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest ] | |
| python-version: [ '3.13' ] | |
| uses: ./.github/workflows/test_ert_with_slurm.yml | |
| with: | |
| os: ${{ matrix.os }} | |
| python-version: ${{ matrix.python-version }} | |
| secrets: inherit | |
| test-ert-with-flow: | |
| needs: [run-pre-commit, check-typing] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ ubuntu-latest ] | |
| python-version: [ '3.13' ] | |
| uses: ./.github/workflows/test_ert_with_flow.yml | |
| with: | |
| os: ${{ matrix.os }} | |
| python-version: ${{ matrix.python-version }} | |
| secrets: inherit | |
| test-mac-main-everest: | |
| if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') # only perform mac tests on main branch and tags | |
| needs: [run-pre-commit, check-typing] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-type: [ 'test' ] | |
| os: [ 'macos-latest' ] | |
| 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-main-ert: | |
| if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') # only perform mac tests on main branch and tags | |
| needs: [run-pre-commit, check-typing] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| test-type: [ 'performance-and-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 | |
| docs-ert: | |
| needs: [run-pre-commit, check-typing] | |
| name: Test ert docs | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ['3.13'] | |
| os: [ubuntu-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| filter: tree:0 | |
| - uses: ./.github/actions/install_dependencies_qt | |
| with: | |
| os: ${{ matrix.os }} | |
| - name: Install pandoc | |
| run: | | |
| sudo apt install pandoc | |
| - uses: actions/setup-python@v6 | |
| id: setup_python | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| enable-cache: true | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install ert | |
| run: | | |
| uv sync --group dev | |
| - name: Test docs | |
| run: | | |
| uv run just build-ert-docs | |
| run-codspeed: | |
| needs: [build-wheels, test-linux-ert, test-linux-everest, test-slurm, test-ert-with-flow, run-testdata, run-dummy-site-config, docs-ert] | |
| uses: ./.github/workflows/codspeed.yml | |
| test_everest_models: | |
| needs: [build-wheels, test-linux-ert, test-linux-everest, test-slurm, test-ert-with-flow, run-testdata, run-dummy-site-config, docs-ert] | |
| uses: ./.github/workflows/test_everest_models.yml | |
| test_semeio: | |
| needs: [build-wheels, test-linux-ert, test-linux-everest, test-slurm, test-ert-with-flow, run-testdata, run-dummy-site-config, docs-ert] | |
| uses: ./.github/workflows/test_semeio.yml | |
| publish: | |
| name: Publish to PyPI | |
| runs-on: ubuntu-latest | |
| needs: [build-wheels, test-linux-ert, test-linux-everest, test-mac-main-ert, test-mac-main-everest, test-slurm, test-ert-with-flow, run-testdata, run-dummy-site-config, 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@v7 | |
| 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] |