fix publish workflows

This commit is contained in:
Danglewood
2026-09-25 16:06:41 -07:00
parent 940c9b4804
commit fae8766008
29 changed files with 94 additions and 311 deletions

View File

@@ -1,7 +1,5 @@
name: 📦 publish openbb-bls
# Triggers exclusively on the merge of a ``release/openbb-bls-v*`` branch into ``develop``.
on:
pull_request:
types: [closed]
@@ -25,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -84,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -99,9 +97,6 @@ jobs:
key: bls-cache-${{ hashFiles('openbb_platform/providers/bls/openbb_bls/utils/generate_cache.py') }}
- name: Build sdist + wheel (fresh BLS cache)
# ``OPENBB_BLS_FORCE_CACHE_REBUILD=1`` makes the build hook
# bypass its idempotent skip and regenerate against live
# download.bls.gov so the published artifact is always current.
env:
OPENBB_BLS_FORCE_CACHE_REBUILD: "1"
run: uv build --no-sources
@@ -120,13 +115,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -139,7 +132,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -179,7 +172,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,11 +1,5 @@
name: 📦 publish openbb-cboe
# Triggers exclusively on the merge of a ``release/openbb-cboe-v*``
# branch into ``develop`` (or ``v5``). No push / tag triggers. Four
# sequential jobs — verify the version bump, build once, test the built
# source across the full cross-platform matrix, and only publish to PyPI
# if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -29,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -88,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -113,13 +107,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -132,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -154,7 +146,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,11 +1,5 @@
name: 📦 publish openbb-cftc
# Triggers exclusively on the merge of a ``release/openbb-cftc-v*``
# branch into ``develop`` (or ``v5``). No push / tag triggers. Four
# sequential jobs — verify the version bump, build once, test the built
# source across the full cross-platform matrix, and only publish to PyPI
# if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -29,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -88,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -113,13 +107,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -132,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -154,7 +146,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-charting
# Triggers exclusively on the merge of a ``release/openbb-charting-v*`` branch
# into ``develop``. No push / tag triggers. Three sequential jobs —
# build once, test the built artifact across the full cross-platform
# matrix, and only publish to PyPI if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -112,13 +107,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -131,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -146,18 +139,12 @@ jobs:
- run: python -m pip install --upgrade pip uv
- name: Install dependencies then openbb-charting wheel
# ``openbb-core>=2.0.0`` isn't on PyPI yet — install it from the sibling
# source tree first so the wheel's pinned deps resolve. ``--group dev``
# brings in pytest / pytest-cov.
run: |
uv pip install --system ../../core
uv pip install --system --group dev
uv pip install --system dist/openbb_charting-*.whl
- name: Test the installed wheel
# Remove the local ``openbb_charting/`` source so pytest imports the
# package from site-packages — i.e., the EXACT wheel that's about to be
# uploaded to PyPI.
run: |
rm -rf openbb_charting
pytest tests --cov=openbb_charting --cov-report=term-missing --cov-fail-under=100
@@ -167,7 +154,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-commodity
# Triggers exclusively on the merge of a ``release/openbb-commodity-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-core
# Triggers exclusively on the merge of a ``release/openbb-core-v*`` branch
# into ``develop``. No push / tag triggers. Three sequential jobs —
# build once, test the built artifact across the full cross-platform
# matrix, and only publish to PyPI if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -115,13 +110,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every supported Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -134,7 +127,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -155,10 +148,6 @@ jobs:
uv pip install --system pytest pytest-cov pytest-asyncio httpx coverage[toml]
- name: Test the installed wheel
# Remove the local ``openbb_core/`` and ``openbb/`` source trees so
# pytest imports the packages from site-packages — i.e., the EXACT
# wheel that's about to be uploaded to PyPI. This is a release
# pipeline; the source tree can't be allowed to shadow the artifact.
run: |
rm -rf openbb_core openbb
pytest tests --cov=openbb_core --cov-report=term-missing
@@ -168,7 +157,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-crypto
# Triggers exclusively on the merge of a ``release/openbb-crypto-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-currency
# Triggers exclusively on the merge of a ``release/openbb-currency-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-derivatives
# Triggers exclusively on the merge of a ``release/openbb-derivatives-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-ecb
# Triggers exclusively on the merge of a ``release/openbb-ecb-v*`` branch
# into ``develop``. No push / tag triggers. Sequential jobs — build once,
# test the built artifact across the full cross-platform matrix, and only
# publish to PyPI if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -120,13 +115,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -139,7 +132,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -154,10 +147,6 @@ jobs:
- run: python -m pip install --upgrade pip uv
- name: Seed the cache asset from the built wheel
# Extract the bundled cache out of the wheel into the source tree
# so the editable install below sees it on disk and the build
# hook's idempotent ``if _CACHE_PATH.exists(): reuse`` branch
# fires — guaranteeing no ECB fetch in this job.
run: |
WHEEL=$(ls dist/openbb_ecb-*.whl | head -1)
mkdir -p openbb_ecb/assets
@@ -171,13 +160,6 @@ jobs:
" "$WHEEL" openbb_ecb/assets/ecb_cache.json.xz
- name: Install with uv (resolves openbb-core / devtools via [tool.uv.sources])
# ``uv sync`` reads ``[tool.uv.sources]`` and installs ``openbb-core[pandas]``
# editable from the sibling tree at ``../../core`` (plus ``openbb-devtools``
# — pytest, pytest-asyncio, pytest-cov, pytest-recorder — and the ``dev``
# group). ``uv pip install`` ignores ``tool.uv.sources`` and would fail to
# resolve ``openbb-core>=2.0.0`` from PyPI until it ships; the wheel is still
# the artifact uploaded to PyPI by the ``publish`` job — this matrix just
# validates the source the wheel was built from.
run: uv sync --python ${{ matrix.python_version }}
- name: Run unit tests
@@ -188,7 +170,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-econometrics
# Triggers exclusively on the merge of a ``release/openbb-econometrics-v*``
# branch into ``develop`` (or ``v5``). Four sequential jobs — verify the
# version bump, build once, test the built source across the full
# cross-platform matrix, and only publish to PyPI if the matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -129,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -151,7 +146,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-economy
# Triggers exclusively on the merge of a ``release/openbb-economy-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-equity
# Triggers exclusively on the merge of a ``release/openbb-equity-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-etf
# Triggers exclusively on the merge of a ``release/openbb-etf-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,11 +1,5 @@
name: 📦 publish openbb-famafrench
# Triggers exclusively on the merge of a ``release/openbb-famafrench-v*``
# branch into ``develop`` (or ``v5``). No push / tag triggers. Four
# sequential jobs — verify the version bump, build once, test the built
# source across the full cross-platform matrix, and only publish to PyPI
# if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -29,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -88,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -113,13 +107,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -132,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -154,7 +146,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-federal-reserve
# Triggers exclusively on the merge of a ``release/openbb-federal-reserve-v*``
# branch into ``develop``. No push / tag triggers. Four sequential jobs —
# verify the version bump, build once, test the built artifact across the full
# cross-platform matrix, and only publish to PyPI if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -112,13 +107,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -131,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -162,7 +155,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-fixedincome
# Triggers exclusively on the merge of a ``release/openbb-fixedincome-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -23,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -82,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -124,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-imf
# Triggers exclusively on the merge of a ``release/openbb-imf-v*`` branch
# into ``develop``. No push / tag triggers. Three sequential jobs —
# build once, test the built artifact across the full cross-platform
# matrix, and only publish to PyPI if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -120,13 +115,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -139,7 +132,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -154,10 +147,6 @@ jobs:
- run: python -m pip install --upgrade pip uv
- name: Install dependencies then openbb-imf wheel
# ``openbb-core>=2.0.0`` and ``openbb-charting>=2.5.1`` aren't on
# PyPI yet — install them from sibling source trees first so
# the wheel's pinned deps resolve. ``--group dev`` brings in
# pytest / pytest-asyncio / pytest-cov / pytest-recorder.
run: |
uv pip install --system ../../core
uv pip install --system ../../obbject_extensions/charting
@@ -165,10 +154,6 @@ jobs:
uv pip install --system dist/openbb_imf-*.whl
- name: Test the installed wheel
# Remove the local ``openbb_imf/`` source so pytest imports the
# package from site-packages — i.e., the EXACT wheel that's
# about to be uploaded to PyPI. This is a release pipeline;
# the source tree can't be allowed to shadow the artifact.
run: |
rm -rf openbb_imf
pytest tests --cov=openbb_imf --cov-report=term-missing
@@ -178,7 +163,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-index
# Triggers exclusively on the merge of a ``release/openbb-index-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -23,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -82,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -124,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,11 +1,5 @@
name: 📦 publish openbb-nasdaq
# Triggers exclusively on the merge of a ``release/openbb-nasdaq-v*``
# branch into ``develop`` (or ``v5``). No push / tag triggers. Four
# sequential jobs — verify the version bump, build once, test the built
# source across the full cross-platform matrix, and only publish to PyPI
# if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -29,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -88,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -113,13 +107,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -132,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -154,7 +146,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-news
# Triggers exclusively on the merge of a ``release/openbb-news-v*``
# branch into ``develop`` (or ``v5``). Four sequential jobs — verify the
# version bump, build once, test the built source across the full
# cross-platform matrix, and only publish to PyPI if the matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -129,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -151,7 +146,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-oecd
# Triggers exclusively on the merge of a ``release/openbb-oecd-v*`` branch
# into ``develop``. No push / tag triggers. Three sequential jobs —
# build once, test the built artifact across the full cross-platform
# matrix, and only publish to PyPI if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -96,19 +91,12 @@ jobs:
- run: python -m pip install --upgrade pip uv
- name: Restore OECD SDMX cache (warming pool for PR workflow)
# Releases always force-rebuild (see env below); this step exists
# so the post-build ``save`` writes the fresh artifact back into
# the shared cache pool keyed by ``generate_cache.py``'s hash.
# The PR-test workflow reads from the same pool.
uses: actions/cache@v4
with:
path: openbb_platform/providers/oecd/openbb_oecd/assets/oecd_cache.json.xz
key: oecd-sdmx-${{ hashFiles('openbb_platform/providers/oecd/openbb_oecd/utils/generate_cache.py') }}
- name: Build sdist + wheel (fresh OECD cache)
# ``OPENBB_OECD_FORCE_CACHE_REBUILD=1`` makes the build hook
# bypass its idempotent skip and regenerate against live OECD
# SDMX so the published artifact is always current.
env:
OPENBB_OECD_FORCE_CACHE_REBUILD: "1"
run: uv build --no-sources
@@ -127,14 +115,12 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
- { os: ubuntu-latest, python_version: "3.15" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.15" }
- { os: windows-latest, python_version: "3.10" }
@@ -147,7 +133,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -162,10 +148,6 @@ jobs:
- run: python -m pip install --upgrade pip uv
- name: Seed the cache asset from the built wheel
# Extract the bundled cache out of the wheel into the source
# tree so the editable install below sees it on disk and the
# build hook's idempotent ``if _CACHE_PATH.exists(): reuse``
# branch fires — guaranteeing no OECD fetch in this job.
run: |
WHEEL=$(ls dist/openbb_oecd-*.whl | head -1)
mkdir -p openbb_oecd/assets
@@ -179,15 +161,6 @@ jobs:
" "$WHEEL" openbb_oecd/assets/oecd_cache.json.xz
- name: Install openbb-oecd from source (+ dev group)
# Source install via ``-e .`` reads ``[tool.uv.sources]`` and
# resolves ``openbb-core[pandas]`` from the sibling tree at
# ``../../core``. Installing the wheel directly would fail
# dependency resolution until ``openbb-core>=2.0.0`` ships
# to PyPI; the wheel is still the artifact uploaded to PyPI
# by the ``publish`` job — this matrix just validates the
# source the wheel was built from. ``--group dev`` installs
# ``openbb-devtools``, which bundles pytest, pytest-asyncio,
# pytest-cov, pytest-recorder, etc.
run: |
uv pip install --system -e .
uv pip install --system --group dev
@@ -200,7 +173,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,10 +1,5 @@
name: 📦 publish openbb-quantitative
# Triggers exclusively on the merge of a ``release/openbb-quantitative-v*``
# branch into ``develop`` (or ``v5``). Four sequential jobs — verify the
# version bump, build once, test the built source across the full
# cross-platform matrix, and only publish to PyPI if the matrix is green.
on:
pull_request:
types: [closed]
@@ -28,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -87,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -129,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -151,7 +146,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,12 +1,5 @@
name: 📦 publish openbb-sec
# Triggers exclusively on the merge of a ``release/openbb-sec-v*`` branch into
# ``develop`` (or ``v5``). No push / tag triggers. Four sequential jobs —
# verify the version bump, build once, test the built source across the full
# cross-platform matrix, and only publish to PyPI if the entire matrix is
# green. The matrix stops at 3.14 because the provider's lxml dependency has no
# prerelease (3.15) wheels yet.
on:
pull_request:
types: [closed]
@@ -30,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -89,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -114,13 +107,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -133,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -155,7 +146,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with:

View File

@@ -1,9 +1,5 @@
name: 📦 publish openbb-technical
# Triggers exclusively on the merge of a ``release/openbb-technical-v*``
# branch into ``develop``. Four sequential jobs — version-check,
# build, test, publish — with PyPI OIDC trusted publishing.
on:
pull_request:
types: [closed]
@@ -27,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -86,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -128,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -143,13 +139,6 @@ jobs:
- run: python -m pip install --upgrade pip uv
- name: Install openbb-technical from source (+ dev group)
# Source install via ``-e .`` reads ``[tool.uv.sources]`` and
# resolves ``openbb-core[pandas]`` from the sibling tree at
# ``../../core``. Installing the wheel directly would fail
# dependency resolution until ``openbb-core>=2.0.0`` ships to
# PyPI; the wheel is still the artifact uploaded to PyPI by
# the ``publish`` job — this matrix validates the source the
# wheel was built from.
run: |
uv pip install --system -e .
uv pip install --system --group dev

View File

@@ -23,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -82,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -124,7 +124,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:

View File

@@ -1,11 +1,5 @@
name: 📦 publish openbb-us-eia
# Triggers exclusively on the merge of a ``release/openbb-us-eia-v*`` branch
# into ``develop``. No push / tag triggers. Four sequential jobs — check the
# version is bumped, build once against a freshly crawled catalog, test the
# built artifact across the full cross-platform matrix, and only publish to
# PyPI if the entire matrix is green.
on:
pull_request:
types: [closed]
@@ -29,7 +23,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- name: Parse [project].version from pyproject.toml
id: parse
@@ -88,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -132,13 +126,11 @@ jobs:
fail-fast: false
matrix:
include:
# Linux: full sweep across every released Python.
- { os: ubuntu-latest, python_version: "3.10" }
- { os: ubuntu-latest, python_version: "3.11" }
- { os: ubuntu-latest, python_version: "3.12" }
- { os: ubuntu-latest, python_version: "3.13" }
- { os: ubuntu-latest, python_version: "3.14" }
# macOS + Windows: min and max supported.
- { os: macos-latest, python_version: "3.10" }
- { os: macos-latest, python_version: "3.14" }
- { os: windows-latest, python_version: "3.10" }
@@ -151,7 +143,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
ref: develop
ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }}
- uses: actions/setup-python@v6
with:
@@ -166,20 +158,12 @@ jobs:
- run: python -m pip install --upgrade pip uv
- name: Install dependencies then openbb-us-eia wheel
# ``openbb-core>=2.0.0`` isn't on PyPI yet — install it from the
# sibling source tree first so the wheel's pinned deps resolve.
# ``--group dev`` brings in pytest / pytest-asyncio / pytest-cov /
# pytest-recorder / ruff / ty.
run: |
uv pip install --system ../../core
uv pip install --system --group dev
uv pip install --system dist/openbb_us_eia-*.whl
- name: Test the installed wheel
# Remove the local ``openbb_us_eia/`` source so pytest imports the
# package from site-packages — i.e., the EXACT wheel that's about to
# be uploaded to PyPI. This is a release pipeline; the source tree
# can't be allowed to shadow the artifact.
run: |
rm -rf openbb_us_eia
pytest tests --cov=openbb_us_eia --cov-report=term-missing --cov-fail-under=100
@@ -189,7 +173,7 @@ jobs:
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write # required for PyPI OIDC trusted publishing
id-token: write
steps:
- uses: actions/download-artifact@v4
with: