From d698d6facced8c8dd62597dddba7183da7a80074 Mon Sep 17 00:00:00 2001 From: Carles Onielfa Date: Wed, 19 Aug 2026 12:09:34 +0200 Subject: [PATCH 1/8] ci: Single Action for all packages --- .../hyperforge_conditional_workflow.yaml | 89 ------ .../hyperforge_external_workflow.yaml | 90 ------ .../hyperforge_generate_workflow.yaml | 90 ------ .../workflows/hyperforge_google_workflow.yaml | 90 ------ .../hyperforge_historical_workflow.yaml | 90 ------ .../workflows/hyperforge_http_workflow.yaml | 90 ------ .../workflows/hyperforge_mcp_workflow.yaml | 90 ------ .../hyperforge_nucliadb_workflow.yaml | 91 ------ .../hyperforge_passthrough_workflow.yaml | 89 ------ ...hyperforge_perplexity_search_workflow.yaml | 90 ------ .../hyperforge_perplexity_workflow.yaml | 90 ------ .../hyperforge_related_workflow.yaml | 90 ------ .../workflows/hyperforge_remi_workflow.yaml | 92 ------ .../hyperforge_rephrase_workflow.yaml | 94 ------- .../hyperforge_restart_workflow.yaml | 90 ------ .../hyperforge_restricted_workflow.yaml | 90 ------ .../workflows/hyperforge_smart_workflow.yaml | 90 ------ .../hyperforge_static_string_workflow.yaml | 90 ------ .../workflows/hyperforge_static_workflow.yaml | 90 ------ .../hyperforge_summarize_workflow.yaml | 90 ------ .github/workflows/hyperforge_workflow.yaml | 168 ----------- .github/workflows/package-tests.yaml | 262 ++++++++++++++++++ 22 files changed, 262 insertions(+), 1973 deletions(-) delete mode 100644 .github/workflows/hyperforge_conditional_workflow.yaml delete mode 100644 .github/workflows/hyperforge_external_workflow.yaml delete mode 100644 .github/workflows/hyperforge_generate_workflow.yaml delete mode 100644 .github/workflows/hyperforge_google_workflow.yaml delete mode 100644 .github/workflows/hyperforge_historical_workflow.yaml delete mode 100644 .github/workflows/hyperforge_http_workflow.yaml delete mode 100644 .github/workflows/hyperforge_mcp_workflow.yaml delete mode 100644 .github/workflows/hyperforge_nucliadb_workflow.yaml delete mode 100644 .github/workflows/hyperforge_passthrough_workflow.yaml delete mode 100644 .github/workflows/hyperforge_perplexity_search_workflow.yaml delete mode 100644 .github/workflows/hyperforge_perplexity_workflow.yaml delete mode 100644 .github/workflows/hyperforge_related_workflow.yaml delete mode 100644 .github/workflows/hyperforge_remi_workflow.yaml delete mode 100644 .github/workflows/hyperforge_rephrase_workflow.yaml delete mode 100644 .github/workflows/hyperforge_restart_workflow.yaml delete mode 100644 .github/workflows/hyperforge_restricted_workflow.yaml delete mode 100644 .github/workflows/hyperforge_smart_workflow.yaml delete mode 100644 .github/workflows/hyperforge_static_string_workflow.yaml delete mode 100644 .github/workflows/hyperforge_static_workflow.yaml delete mode 100644 .github/workflows/hyperforge_summarize_workflow.yaml delete mode 100644 .github/workflows/hyperforge_workflow.yaml create mode 100644 .github/workflows/package-tests.yaml diff --git a/.github/workflows/hyperforge_conditional_workflow.yaml b/.github/workflows/hyperforge_conditional_workflow.yaml deleted file mode 100644 index 7c12fcd2..00000000 --- a/.github/workflows/hyperforge_conditional_workflow.yaml +++ /dev/null @@ -1,89 +0,0 @@ -name: Conditional Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/conditional/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_conditional_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/conditional/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_conditional_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/conditional - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/conditional - run: make lint - - - name: Run tests - working-directory: agents/conditional - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/conditional - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/conditional - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_external_workflow.yaml b/.github/workflows/hyperforge_external_workflow.yaml deleted file mode 100644 index 53b1cb62..00000000 --- a/.github/workflows/hyperforge_external_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: External Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/external/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_external_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/external/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_external_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/external - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/external - run: make lint - - - name: Run tests - working-directory: agents/external - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/external - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/external - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_generate_workflow.yaml b/.github/workflows/hyperforge_generate_workflow.yaml deleted file mode 100644 index 32dac5f6..00000000 --- a/.github/workflows/hyperforge_generate_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Generate Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/generate/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_generate_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/generate/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_generate_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/generate - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/generate - run: make lint - - - name: Run tests - working-directory: agents/generate - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/generate - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/generate - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_google_workflow.yaml b/.github/workflows/hyperforge_google_workflow.yaml deleted file mode 100644 index 58a2633b..00000000 --- a/.github/workflows/hyperforge_google_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Google Agent Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/google/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_google_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/google/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_google_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/google - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/google - run: make lint - - - name: Run tests - working-directory: agents/google - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/google - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/google - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_historical_workflow.yaml b/.github/workflows/hyperforge_historical_workflow.yaml deleted file mode 100644 index 979c9e10..00000000 --- a/.github/workflows/hyperforge_historical_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Historical Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/historical/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_historical_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/historical/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_historical_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/historical - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/historical - run: make lint - - - name: Run tests - working-directory: agents/historical - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/historical - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/historical - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_http_workflow.yaml b/.github/workflows/hyperforge_http_workflow.yaml deleted file mode 100644 index 1c94ce62..00000000 --- a/.github/workflows/hyperforge_http_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: HTTP Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/http/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_http_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/http/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_http_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/http - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/http - run: make lint - - - name: Run tests - working-directory: agents/http - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/http - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/http - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_mcp_workflow.yaml b/.github/workflows/hyperforge_mcp_workflow.yaml deleted file mode 100644 index 243ffa85..00000000 --- a/.github/workflows/hyperforge_mcp_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: MCP Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/mcp/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_mcp_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/mcp/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_mcp_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/mcp - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/mcp - run: make lint - - - name: Run tests - working-directory: agents/mcp - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/mcp - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/mcp - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_nucliadb_workflow.yaml b/.github/workflows/hyperforge_nucliadb_workflow.yaml deleted file mode 100644 index a99d8ad8..00000000 --- a/.github/workflows/hyperforge_nucliadb_workflow.yaml +++ /dev/null @@ -1,91 +0,0 @@ -name: NucliaDB Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/nucliadb/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_nucliadb_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/nucliadb/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_nucliadb_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/nucliadb - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/nucliadb - run: make lint - - - name: Run tests - working-directory: agents/nucliadb - run: make test - env: # Or as an environment variable - NUA_KEY: ${{ secrets.NUA_KEY }} - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/nucliadb - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/nucliadb - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_passthrough_workflow.yaml b/.github/workflows/hyperforge_passthrough_workflow.yaml deleted file mode 100644 index 6fb7004a..00000000 --- a/.github/workflows/hyperforge_passthrough_workflow.yaml +++ /dev/null @@ -1,89 +0,0 @@ -name: Passthrough Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/passthrough/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_passthrough_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/passthrough/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_passthrough_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read -jobs: - test: - name: Test agents/passthrough - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/passthrough - run: make lint - - - name: Run tests - working-directory: agents/passthrough - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/passthrough - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/passthrough - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_perplexity_search_workflow.yaml b/.github/workflows/hyperforge_perplexity_search_workflow.yaml deleted file mode 100644 index 7ba8995d..00000000 --- a/.github/workflows/hyperforge_perplexity_search_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Perplexity Search Agent Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/perplexity_search/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_perplexity_search_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/perplexity_search/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_perplexity_search_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/perplexity_search - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/perplexity_search - run: make lint - - - name: Run tests - working-directory: agents/perplexity_search - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/perplexity_search - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/perplexity_search - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_perplexity_workflow.yaml b/.github/workflows/hyperforge_perplexity_workflow.yaml deleted file mode 100644 index 9ea7900b..00000000 --- a/.github/workflows/hyperforge_perplexity_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Perplexity Agent Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/perplexity/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_perplexity_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/perplexity/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_perplexity_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/perplexity - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/perplexity - run: make lint - - - name: Run tests - working-directory: agents/perplexity - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/perplexity - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/perplexity - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_related_workflow.yaml b/.github/workflows/hyperforge_related_workflow.yaml deleted file mode 100644 index 769b19cc..00000000 --- a/.github/workflows/hyperforge_related_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Related Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/related/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_related_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/related/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_related_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/related - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/related - run: make lint - - - name: Run tests - working-directory: agents/related - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/related - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/related - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_remi_workflow.yaml b/.github/workflows/hyperforge_remi_workflow.yaml deleted file mode 100644 index a615c50d..00000000 --- a/.github/workflows/hyperforge_remi_workflow.yaml +++ /dev/null @@ -1,92 +0,0 @@ -name: Remi Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/remi/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_remi_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/remi/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_remi_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/remi - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/remi - run: make lint - - - name: Run tests - working-directory: agents/remi - run: make test - env: # Or as an environment variable - NUA_KEY: ${{ secrets.NUA_KEY }} - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/remi - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/remi - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_rephrase_workflow.yaml b/.github/workflows/hyperforge_rephrase_workflow.yaml deleted file mode 100644 index b23906dd..00000000 --- a/.github/workflows/hyperforge_rephrase_workflow.yaml +++ /dev/null @@ -1,94 +0,0 @@ -name: Rephrase Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/rephrase/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_rephrase_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/rephrase/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_rephrase_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/rephrase - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/rephrase - run: make lint - - - name: Run tests - working-directory: agents/rephrase - run: make test - env: # Or as an environment variable - NUA_KEY: ${{ secrets.NUA_KEY }} - KB_DF8B4C24_2807_4888_AD6C_AE97357A638B: ${{ secrets.KB_DF8B4C24_2807_4888_AD6C_AE97357A638B }} - KB_DE48CFAA_3209_4041_BB64_8604AFF061FB: ${{ secrets.KB_DE48CFAA_3209_4041_BB64_8604AFF061FB }} - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/rephrase - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/rephrase - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_restart_workflow.yaml b/.github/workflows/hyperforge_restart_workflow.yaml deleted file mode 100644 index 47d1af7d..00000000 --- a/.github/workflows/hyperforge_restart_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Restart Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/restart/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_restart_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/restart/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_restart_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/restart - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/restart - run: make lint - - - name: Run tests - working-directory: agents/restart - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/restart - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/restart - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_restricted_workflow.yaml b/.github/workflows/hyperforge_restricted_workflow.yaml deleted file mode 100644 index 1aa85e8d..00000000 --- a/.github/workflows/hyperforge_restricted_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Restricted Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/restricted/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_restricted_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/restricted/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_restricted_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/restricted - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/restricted - run: make lint - - - name: Run tests - working-directory: agents/restricted - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/restricted - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/restricted - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_smart_workflow.yaml b/.github/workflows/hyperforge_smart_workflow.yaml deleted file mode 100644 index 2faa38da..00000000 --- a/.github/workflows/hyperforge_smart_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Smart Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/smart/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_smart_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/smart/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_smart_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/smart - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/smart - run: make lint - - - name: Run tests - working-directory: agents/smart - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/smart - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/smart - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_static_string_workflow.yaml b/.github/workflows/hyperforge_static_string_workflow.yaml deleted file mode 100644 index f78d4dbf..00000000 --- a/.github/workflows/hyperforge_static_string_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Static String Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/static_string/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_static_string_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/static_string/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_static_string_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/static_string - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/static_string - run: make lint - - - name: Run tests - working-directory: agents/static_string - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/static_string - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/static_string - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_static_workflow.yaml b/.github/workflows/hyperforge_static_workflow.yaml deleted file mode 100644 index 3b3360ad..00000000 --- a/.github/workflows/hyperforge_static_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Static Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/static/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_static_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/static/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_static_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/static - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/static - run: make lint - - - name: Run tests - working-directory: agents/static - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/static - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/static - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_summarize_workflow.yaml b/.github/workflows/hyperforge_summarize_workflow.yaml deleted file mode 100644 index 25e4472c..00000000 --- a/.github/workflows/hyperforge_summarize_workflow.yaml +++ /dev/null @@ -1,90 +0,0 @@ -name: Summarize Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "agents/summarize/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_summarize_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "agents/summarize/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_summarize_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test agents/summarize - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: agents/summarize - run: make lint - - - name: Run tests - working-directory: agents/summarize - run: make test - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: agents/summarize - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: agents/summarize - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 diff --git a/.github/workflows/hyperforge_workflow.yaml b/.github/workflows/hyperforge_workflow.yaml deleted file mode 100644 index ed569306..00000000 --- a/.github/workflows/hyperforge_workflow.yaml +++ /dev/null @@ -1,168 +0,0 @@ -name: Hyperforge Main Agents Tests - -on: - push: - branches: - - main - - dev - paths: - - "hyperforge/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - pull_request: - branches: - - main - - dev - paths: - - "hyperforge/**" - - "hyperforge.mk" - - ".github/workflows/hyperforge_workflow.yaml" - - ".github/workflows/hyperforge_agent_package_workflow.yaml" - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - test: - name: Test hyperforge - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Install package dependencies with uv - run: uv sync --group dev - - - name: Lint - working-directory: hyperforge - run: make lint - - - name: Run tests - working-directory: hyperforge - run: make test - env: # Or as an environment variable - NUA_KEY: ${{ secrets.NUA_KEY }} - - build_wheels: - name: Build wheels - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - test - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Install uv - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Setup env - run: | - uv tool install twine - - - name: Set dependency versions in requirements - run: | - python bump.py --package=${INPUTS_PACKAGE} --build=${{ github.run_number }} - env: - INPUTS_PACKAGE: hyperforge - - - name: Install package - run: | - uv sync - - - name: Build wheels - run: uv build ./${INPUTS_PACKAGE} - env: - INPUTS_PACKAGE: hyperforge - - - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 - - build_and_push_docker_image: - name: Build and push Docker image - runs-on: ubuntu-24.04 - if: github.event_name == 'push' - needs: - - build_wheels - permissions: - contents: read - packages: write - steps: - - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - - name: Log in to GitHub Container Registry - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITHUB_ACTOR: ${{ github.actor }} - run: echo "$GITHUB_TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin - - - name: Build Docker image - env: - REPOSITORY_OWNER: ${{ github.repository_owner }} - IMAGE_SHA_TAG: ${{ github.sha }} - IMAGE_REF_TAG: ${{ github.ref_name }} - run: docker build -f HYPERFORGE.Dockerfile -t "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" -t "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" . - - - name: Push Docker image - env: - REPOSITORY_OWNER: ${{ github.repository_owner }} - IMAGE_SHA_TAG: ${{ github.sha }} - IMAGE_REF_TAG: ${{ github.ref_name }} - run: | - docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" - docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" - - notify-teams-fail: - name: Notify Teams on failure - needs: - - test - - build_wheels - - build_and_push_docker_image - if: (failure() || cancelled()) && github.event_name == 'push' - runs-on: ubuntu-24.04 - steps: - - name: Send Teams notification - env: - REF_NAME: ${{ github.ref_name }} - RUN_NUMBER: ${{ github.run_number }} - RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - COMMIT_SHA: ${{ github.sha }} - TEAMS_WEBHOOK_URL: ${{ secrets.TEAMS_WEBHOOK_URL }} - run: | - curl -s -o /dev/null -w "%{http_code}" \ - -H "Content-Type: application/json" \ - -d "{ - \"@type\": \"MessageCard\", - \"@context\": \"http://schema.org/extensions\", - \"themeColor\": \"FF0000\", - \"summary\": \"Hyperforge CI failed\", - \"sections\": [{ - \"activityTitle\": \"**Hyperforge CI failed on \`${REF_NAME}\`**\", - \"activityText\": \"Run [#${RUN_NUMBER}](${RUN_URL}) failed for commit \`${COMMIT_SHA}\`.\" - }] - }" \ - "$TEAMS_WEBHOOK_URL" diff --git a/.github/workflows/package-tests.yaml b/.github/workflows/package-tests.yaml new file mode 100644 index 00000000..caf2046f --- /dev/null +++ b/.github/workflows/package-tests.yaml @@ -0,0 +1,262 @@ +name: Package Tests + +on: + push: + branches: [main, dev] + pull_request: + branches: [main, dev] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + changes: + name: Detect changed packages + runs-on: ubuntu-24.04 + outputs: + all: ${{ steps.filter.outputs.all }} + packages: ${{ steps.filter.outputs.packages }} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + persist-credentials: false + + - id: filter + shell: bash + run: | + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + base="${{ github.event.pull_request.base.sha }}" + else + base="${{ github.event.before }}" + fi + + # A first push has no previous commit to compare against. + if [[ "$base" == "0000000000000000000000000000000000000000" ]]; then + base="$(git rev-parse HEAD^)" + fi + + changed="$(git diff --name-only "$base" "$GITHUB_SHA")" + all=false + if grep -Eq '^(hyperforge/|hyperforge\.mk|pyproject\.toml|uv\.lock|mypy\.ini|ruff\.toml|bump\.py|HYPERFORGE\.Dockerfile|\.github/workflows/package-tests\.yaml)' <<< "$changed"; then + all=true + fi + + packages='[]' + for package in hyperforge agents/conditional agents/external agents/generate agents/google agents/historical agents/http agents/mcp agents/nucliadb agents/passthrough agents/perplexity agents/perplexity_search agents/related agents/remi agents/rephrase agents/restart agents/restricted agents/smart agents/static agents/static_string agents/summarize; do + if [[ "$all" == true ]] || grep -qF "${package}/" <<< "$changed"; then + packages="$(jq -cn --argjson packages "$packages" --arg package "$package" '$packages + [$package]')" + fi + done + + echo "all=$all" >> "$GITHUB_OUTPUT" + echo "packages=$packages" >> "$GITHUB_OUTPUT" + + test: + name: Test ${{ matrix.package }} + needs: changes + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + package: + - hyperforge + - agents/conditional + - agents/external + - agents/generate + - agents/google + - agents/historical + - agents/http + - agents/mcp + - agents/nucliadb + - agents/passthrough + - agents/perplexity + - agents/perplexity_search + - agents/related + - agents/remi + - agents/rephrase + - agents/restart + - agents/restricted + - agents/smart + - agents/static + - agents/static_string + - agents/summarize + steps: + - id: selected + shell: bash + run: | + if [[ "${{ needs.changes.outputs.all }}" == true ]] || jq -e --arg package "${{ matrix.package }}" 'index($package)' <<< '${{ needs.changes.outputs.packages }}' > /dev/null; then + echo "run=true" >> "$GITHUB_OUTPUT" + else + echo "run=false" >> "$GITHUB_OUTPUT" + fi + + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + if: steps.selected.outputs.run == 'true' + with: + persist-credentials: false + + - name: Install uv + if: steps.selected.outputs.run == 'true' + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + enable-cache: false + python-version: "3.12" + + - name: Install package dependencies with uv + if: steps.selected.outputs.run == 'true' + run: uv sync --group dev + + - name: Lint + if: steps.selected.outputs.run == 'true' + working-directory: ${{ matrix.package }} + run: make lint + + - name: Run tests + if: steps.selected.outputs.run == 'true' + working-directory: ${{ matrix.package }} + run: make test + env: + NUA_KEY: ${{ secrets.NUA_KEY }} + KB_DF8B4C24_2807_4888_AD6C_AE97357A638B: ${{ secrets.KB_DF8B4C24_2807_4888_AD6C_AE97357A638B }} + KB_DE48CFAA_3209_4041_BB64_8604AFF061FB: ${{ secrets.KB_DE48CFAA_3209_4041_BB64_8604AFF061FB }} + + - name: Skip unchanged package + if: steps.selected.outputs.run != 'true' + run: echo "${{ matrix.package }} was not affected by this change." + + build_wheels: + name: Build wheels ${{ matrix.package }} + if: github.event_name == 'push' + needs: [changes, test] + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + package: + - hyperforge + - agents/conditional + - agents/external + - agents/generate + - agents/google + - agents/historical + - agents/http + - agents/mcp + - agents/nucliadb + - agents/passthrough + - agents/perplexity + - agents/perplexity_search + - agents/related + - agents/remi + - agents/rephrase + - agents/restart + - agents/restricted + - agents/smart + - agents/static + - agents/static_string + - agents/summarize + steps: + - id: selected + shell: bash + run: | + if [[ "${{ needs.changes.outputs.all }}" == true ]] || jq -e --arg package "${{ matrix.package }}" 'index($package)' <<< '${{ needs.changes.outputs.packages }}' > /dev/null; then + echo "run=true" >> "$GITHUB_OUTPUT" + else + echo "run=false" >> "$GITHUB_OUTPUT" + fi + + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + if: steps.selected.outputs.run == 'true' + with: + persist-credentials: false + + - name: Install uv + if: steps.selected.outputs.run == 'true' + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + enable-cache: false + python-version: "3.12" + + - name: Set dependency versions in requirements + if: steps.selected.outputs.run == 'true' + run: python bump.py --package="${{ matrix.package }}" --build="${{ github.run_number }}" + + - name: Build wheels + if: steps.selected.outputs.run == 'true' + run: uv build "${{ matrix.package }}" + + - name: Publish package to PyPI + if: steps.selected.outputs.run == 'true' + uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 + + - name: Skip unchanged package + if: steps.selected.outputs.run != 'true' + run: echo "${{ matrix.package }} was not affected by this change." + + build_and_push_docker_image: + name: Build and push Docker image + if: github.event_name == 'push' && (needs.changes.outputs.all == 'true' || contains(fromJSON(needs.changes.outputs.packages), 'hyperforge')) + needs: [changes, build_wheels] + runs-on: ubuntu-24.04 + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Log in to GitHub Container Registry + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_ACTOR: ${{ github.actor }} + run: echo "$GITHUB_TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin + + - name: Build Docker image + env: + REPOSITORY_OWNER: ${{ github.repository_owner }} + IMAGE_SHA_TAG: ${{ github.sha }} + IMAGE_REF_TAG: ${{ github.ref_name }} + run: docker build -f HYPERFORGE.Dockerfile -t "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" -t "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" . + + - name: Push Docker image + env: + REPOSITORY_OWNER: ${{ github.repository_owner }} + IMAGE_SHA_TAG: ${{ github.sha }} + IMAGE_REF_TAG: ${{ github.ref_name }} + run: | + docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" + docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" + + notify-teams-fail: + name: Notify Teams on failure + needs: [test, build_wheels, build_and_push_docker_image] + if: failure() && github.event_name == 'push' + runs-on: ubuntu-24.04 + steps: + - name: Send Teams notification + env: + REF_NAME: ${{ github.ref_name }} + RUN_NUMBER: ${{ github.run_number }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + COMMIT_SHA: ${{ github.sha }} + TEAMS_WEBHOOK_URL: ${{ secrets.TEAMS_WEBHOOK_URL }} + run: | + curl -s -o /dev/null -w "%{http_code}" \ + -H "Content-Type: application/json" \ + -d "{ + \"@type\": \"MessageCard\", + \"@context\": \"http://schema.org/extensions\", + \"themeColor\": \"FF0000\", + \"summary\": \"Package CI failed\", + \"sections\": [{ + \"activityTitle\": \"**Package CI failed on \`${REF_NAME}\`**\", + \"activityText\": \"Run [#${RUN_NUMBER}](${RUN_URL}) failed for commit \`${COMMIT_SHA}\`.\" + }] + }" \ + "$TEAMS_WEBHOOK_URL" From 42e487ffc8c8e48d5b87813bfda8f3b364e2b9ba Mon Sep 17 00:00:00 2001 From: Carles Onielfa Date: Wed, 19 Aug 2026 12:11:10 +0200 Subject: [PATCH 2/8] fix zizmor --- .github/workflows/package-tests.yaml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/package-tests.yaml b/.github/workflows/package-tests.yaml index caf2046f..e65e3306 100644 --- a/.github/workflows/package-tests.yaml +++ b/.github/workflows/package-tests.yaml @@ -89,8 +89,12 @@ jobs: steps: - id: selected shell: bash + env: + ALL_CHANGED: ${{ needs.changes.outputs.all }} + CHANGED_PACKAGES: ${{ needs.changes.outputs.packages }} + PACKAGE: ${{ matrix.package }} run: | - if [[ "${{ needs.changes.outputs.all }}" == true ]] || jq -e --arg package "${{ matrix.package }}" 'index($package)' <<< '${{ needs.changes.outputs.packages }}' > /dev/null; then + if [[ "$ALL_CHANGED" == true ]] || jq -e --arg package "$PACKAGE" 'index($package)' <<< "$CHANGED_PACKAGES" > /dev/null; then echo "run=true" >> "$GITHUB_OUTPUT" else echo "run=false" >> "$GITHUB_OUTPUT" @@ -163,8 +167,12 @@ jobs: steps: - id: selected shell: bash + env: + ALL_CHANGED: ${{ needs.changes.outputs.all }} + CHANGED_PACKAGES: ${{ needs.changes.outputs.packages }} + PACKAGE: ${{ matrix.package }} run: | - if [[ "${{ needs.changes.outputs.all }}" == true ]] || jq -e --arg package "${{ matrix.package }}" 'index($package)' <<< '${{ needs.changes.outputs.packages }}' > /dev/null; then + if [[ "$ALL_CHANGED" == true ]] || jq -e --arg package "$PACKAGE" 'index($package)' <<< "$CHANGED_PACKAGES" > /dev/null; then echo "run=true" >> "$GITHUB_OUTPUT" else echo "run=false" >> "$GITHUB_OUTPUT" From 99277b78966e10544538ba93efeab1af5f5512e1 Mon Sep 17 00:00:00 2001 From: Carles Onielfa Date: Wed, 19 Aug 2026 12:19:29 +0200 Subject: [PATCH 3/8] disable dev push --- .github/workflows/package-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/package-tests.yaml b/.github/workflows/package-tests.yaml index e65e3306..4e4eb184 100644 --- a/.github/workflows/package-tests.yaml +++ b/.github/workflows/package-tests.yaml @@ -2,7 +2,7 @@ name: Package Tests on: push: - branches: [main, dev] + branches: [main] pull_request: branches: [main, dev] workflow_dispatch: From 8669f54f15aba233b5127d1f4d141c3341eb69ab Mon Sep 17 00:00:00 2001 From: Carles Onielfa Date: Wed, 19 Aug 2026 12:35:12 +0200 Subject: [PATCH 4/8] more elegant --- .github/packages.yaml | 34 +++++ .github/workflows/package-tests.yaml | 212 +++++++++------------------ 2 files changed, 105 insertions(+), 141 deletions(-) create mode 100644 .github/packages.yaml diff --git a/.github/packages.yaml b/.github/packages.yaml new file mode 100644 index 00000000..3f570f17 --- /dev/null +++ b/.github/packages.yaml @@ -0,0 +1,34 @@ +shared: + - hyperforge/ + - hyperforge.mk + - pyproject.toml + - uv.lock + - mypy.ini + - ruff.toml + - bump.py + - HYPERFORGE.Dockerfile + - .github/packages.yaml + - .github/workflows/package-tests.yaml + +packages: + - hyperforge + - agents/conditional + - agents/external + - agents/generate + - agents/google + - agents/historical + - agents/http + - agents/mcp + - agents/nucliadb + - agents/passthrough + - agents/perplexity + - agents/perplexity_search + - agents/related + - agents/remi + - agents/rephrase + - agents/restart + - agents/restricted + - agents/smart + - agents/static + - agents/static_string + - agents/summarize diff --git a/.github/workflows/package-tests.yaml b/.github/workflows/package-tests.yaml index 4e4eb184..8e50f453 100644 --- a/.github/workflows/package-tests.yaml +++ b/.github/workflows/package-tests.yaml @@ -19,110 +19,85 @@ jobs: name: Detect changed packages runs-on: ubuntu-24.04 outputs: - all: ${{ steps.filter.outputs.all }} - packages: ${{ steps.filter.outputs.packages }} + packages: ${{ steps.packages.outputs.packages }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: - fetch-depth: 0 + fetch-depth: ${{ github.event_name == 'pull_request' && 1 || 0 }} persist-credentials: false - - id: filter - shell: bash - run: | - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - base="${{ github.event.pull_request.base.sha }}" - else - base="${{ github.event.before }}" - fi - - # A first push has no previous commit to compare against. - if [[ "$base" == "0000000000000000000000000000000000000000" ]]; then - base="$(git rev-parse HEAD^)" - fi - - changed="$(git diff --name-only "$base" "$GITHUB_SHA")" - all=false - if grep -Eq '^(hyperforge/|hyperforge\.mk|pyproject\.toml|uv\.lock|mypy\.ini|ruff\.toml|bump\.py|HYPERFORGE\.Dockerfile|\.github/workflows/package-tests\.yaml)' <<< "$changed"; then - all=true - fi + - id: changed-files + uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47.0.0 + with: + json: true - packages='[]' - for package in hyperforge agents/conditional agents/external agents/generate agents/google agents/historical agents/http agents/mcp agents/nucliadb agents/passthrough agents/perplexity agents/perplexity_search agents/related agents/remi agents/rephrase agents/restart agents/restricted agents/smart agents/static agents/static_string agents/summarize; do - if [[ "$all" == true ]] || grep -qF "${package}/" <<< "$changed"; then - packages="$(jq -cn --argjson packages "$packages" --arg package "$package" '$packages + [$package]')" - fi - done + - name: Install uv + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + enable-cache: false + python-version: "3.12" - echo "all=$all" >> "$GITHUB_OUTPUT" + - id: packages + shell: bash + env: + CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} + run: | + packages="$(uv run --with pyyaml python <<'PYTHON' + import json + import os + + import yaml + + with open(".github/packages.yaml") as manifest: + config = yaml.safe_load(manifest) + + changed = json.loads(os.environ["CHANGED_FILES"]) + shared_changed = any( + path.startswith(entry) if entry.endswith("/") else path == entry + for path in changed + for entry in config["shared"] + ) + selected = config["packages"] if shared_changed else [ + package + for package in config["packages"] + if any(path.startswith(f"{package}/") for path in changed) + ] + print(json.dumps(selected, separators=(",", ":"))) + PYTHON + )" echo "packages=$packages" >> "$GITHUB_OUTPUT" test: name: Test ${{ matrix.package }} + if: needs.changes.outputs.packages != '[]' needs: changes runs-on: ubuntu-24.04 + permissions: + contents: read + id-token: write strategy: fail-fast: false matrix: - package: - - hyperforge - - agents/conditional - - agents/external - - agents/generate - - agents/google - - agents/historical - - agents/http - - agents/mcp - - agents/nucliadb - - agents/passthrough - - agents/perplexity - - agents/perplexity_search - - agents/related - - agents/remi - - agents/rephrase - - agents/restart - - agents/restricted - - agents/smart - - agents/static - - agents/static_string - - agents/summarize + package: ${{ fromJSON(needs.changes.outputs.packages) }} steps: - - id: selected - shell: bash - env: - ALL_CHANGED: ${{ needs.changes.outputs.all }} - CHANGED_PACKAGES: ${{ needs.changes.outputs.packages }} - PACKAGE: ${{ matrix.package }} - run: | - if [[ "$ALL_CHANGED" == true ]] || jq -e --arg package "$PACKAGE" 'index($package)' <<< "$CHANGED_PACKAGES" > /dev/null; then - echo "run=true" >> "$GITHUB_OUTPUT" - else - echo "run=false" >> "$GITHUB_OUTPUT" - fi - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - if: steps.selected.outputs.run == 'true' with: persist-credentials: false - name: Install uv - if: steps.selected.outputs.run == 'true' uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 with: enable-cache: false python-version: "3.12" - name: Install package dependencies with uv - if: steps.selected.outputs.run == 'true' run: uv sync --group dev - name: Lint - if: steps.selected.outputs.run == 'true' working-directory: ${{ matrix.package }} run: make lint - name: Run tests - if: steps.selected.outputs.run == 'true' working-directory: ${{ matrix.package }} run: make test env: @@ -130,86 +105,26 @@ jobs: KB_DF8B4C24_2807_4888_AD6C_AE97357A638B: ${{ secrets.KB_DF8B4C24_2807_4888_AD6C_AE97357A638B }} KB_DE48CFAA_3209_4041_BB64_8604AFF061FB: ${{ secrets.KB_DE48CFAA_3209_4041_BB64_8604AFF061FB }} - - name: Skip unchanged package - if: steps.selected.outputs.run != 'true' - run: echo "${{ matrix.package }} was not affected by this change." - - build_wheels: - name: Build wheels ${{ matrix.package }} - if: github.event_name == 'push' - needs: [changes, test] - runs-on: ubuntu-24.04 - strategy: - fail-fast: false - matrix: - package: - - hyperforge - - agents/conditional - - agents/external - - agents/generate - - agents/google - - agents/historical - - agents/http - - agents/mcp - - agents/nucliadb - - agents/passthrough - - agents/perplexity - - agents/perplexity_search - - agents/related - - agents/remi - - agents/rephrase - - agents/restart - - agents/restricted - - agents/smart - - agents/static - - agents/static_string - - agents/summarize - steps: - - id: selected - shell: bash + - name: Set dependency versions in requirements + if: github.event_name == 'push' env: - ALL_CHANGED: ${{ needs.changes.outputs.all }} - CHANGED_PACKAGES: ${{ needs.changes.outputs.packages }} PACKAGE: ${{ matrix.package }} - run: | - if [[ "$ALL_CHANGED" == true ]] || jq -e --arg package "$PACKAGE" 'index($package)' <<< "$CHANGED_PACKAGES" > /dev/null; then - echo "run=true" >> "$GITHUB_OUTPUT" - else - echo "run=false" >> "$GITHUB_OUTPUT" - fi - - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - if: steps.selected.outputs.run == 'true' - with: - persist-credentials: false - - - name: Install uv - if: steps.selected.outputs.run == 'true' - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 - with: - enable-cache: false - python-version: "3.12" - - - name: Set dependency versions in requirements - if: steps.selected.outputs.run == 'true' - run: python bump.py --package="${{ matrix.package }}" --build="${{ github.run_number }}" + run: python bump.py --package="$PACKAGE" --build="${{ github.run_number }}" - name: Build wheels - if: steps.selected.outputs.run == 'true' - run: uv build "${{ matrix.package }}" + if: github.event_name == 'push' + env: + PACKAGE: ${{ matrix.package }} + run: uv build "$PACKAGE" - name: Publish package to PyPI - if: steps.selected.outputs.run == 'true' + if: github.event_name == 'push' uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 - - name: Skip unchanged package - if: steps.selected.outputs.run != 'true' - run: echo "${{ matrix.package }} was not affected by this change." - - build_and_push_docker_image: + docker: name: Build and push Docker image - if: github.event_name == 'push' && (needs.changes.outputs.all == 'true' || contains(fromJSON(needs.changes.outputs.packages), 'hyperforge')) - needs: [changes, build_wheels] + if: always() && github.event_name == 'push' && contains(fromJSON(needs.changes.outputs.packages), 'hyperforge') && needs.test.result == 'success' + needs: [changes, test] runs-on: ubuntu-24.04 permissions: contents: read @@ -241,9 +156,24 @@ jobs: docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_SHA_TAG" docker push "ghcr.io/$REPOSITORY_OWNER/hyperforge:$IMAGE_REF_TAG" + package-tests: + name: Package tests + if: always() + needs: [changes, test] + runs-on: ubuntu-24.04 + steps: + - name: Verify package tests + env: + TEST_RESULT: ${{ needs.test.result }} + run: | + if [[ "$TEST_RESULT" != success && "$TEST_RESULT" != skipped ]]; then + exit 1 + fi + echo "All selected package tests completed successfully." + notify-teams-fail: name: Notify Teams on failure - needs: [test, build_wheels, build_and_push_docker_image] + needs: [test, docker, package-tests] if: failure() && github.event_name == 'push' runs-on: ubuntu-24.04 steps: From 4cff90eea625b6d82027ea82efcf82399d82a731 Mon Sep 17 00:00:00 2001 From: Carles Onielfa Date: Wed, 19 Aug 2026 12:37:36 +0200 Subject: [PATCH 5/8] fix --- .github/workflows/package-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/package-tests.yaml b/.github/workflows/package-tests.yaml index 8e50f453..8052d44b 100644 --- a/.github/workflows/package-tests.yaml +++ b/.github/workflows/package-tests.yaml @@ -29,7 +29,7 @@ jobs: - id: changed-files uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47.0.0 with: - json: true + matrix: true - name: Install uv uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 From 7333497142f2a6a443a0f168f838db91f9f771e5 Mon Sep 17 00:00:00 2001 From: Carles Onielfa Date: Wed, 19 Aug 2026 12:49:32 +0200 Subject: [PATCH 6/8] more robust --- .github/workflows/package-tests.yaml | 43 ++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/.github/workflows/package-tests.yaml b/.github/workflows/package-tests.yaml index 8052d44b..f2055c64 100644 --- a/.github/workflows/package-tests.yaml +++ b/.github/workflows/package-tests.yaml @@ -40,7 +40,7 @@ jobs: - id: packages shell: bash env: - CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} + CHANGED_FILES: ${{ steps.changed-files.outputs.all_modified_files }} run: | packages="$(uv run --with pyyaml python <<'PYTHON' import json @@ -74,7 +74,6 @@ jobs: runs-on: ubuntu-24.04 permissions: contents: read - id-token: write strategy: fail-fast: false matrix: @@ -100,31 +99,47 @@ jobs: - name: Run tests working-directory: ${{ matrix.package }} run: make test - env: - NUA_KEY: ${{ secrets.NUA_KEY }} - KB_DF8B4C24_2807_4888_AD6C_AE97357A638B: ${{ secrets.KB_DF8B4C24_2807_4888_AD6C_AE97357A638B }} - KB_DE48CFAA_3209_4041_BB64_8604AFF061FB: ${{ secrets.KB_DE48CFAA_3209_4041_BB64_8604AFF061FB }} + + publish: + name: Publish ${{ matrix.package }} + if: github.event_name == 'push' && needs.changes.outputs.packages != '[]' + needs: [changes, test] + runs-on: ubuntu-24.04 + permissions: + contents: read + id-token: write + strategy: + fail-fast: false + matrix: + package: ${{ fromJSON(needs.changes.outputs.packages) }} + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false + + - name: Install uv + uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 + with: + enable-cache: false + python-version: "3.12" - name: Set dependency versions in requirements - if: github.event_name == 'push' env: PACKAGE: ${{ matrix.package }} run: python bump.py --package="$PACKAGE" --build="${{ github.run_number }}" - name: Build wheels - if: github.event_name == 'push' env: PACKAGE: ${{ matrix.package }} run: uv build "$PACKAGE" - name: Publish package to PyPI - if: github.event_name == 'push' uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 docker: name: Build and push Docker image - if: always() && github.event_name == 'push' && contains(fromJSON(needs.changes.outputs.packages), 'hyperforge') && needs.test.result == 'success' - needs: [changes, test] + if: always() && github.event_name == 'push' && contains(fromJSON(needs.changes.outputs.packages), 'hyperforge') && needs.test.result == 'success' && needs.publish.result == 'success' + needs: [changes, test, publish] runs-on: ubuntu-24.04 permissions: contents: read @@ -164,8 +179,12 @@ jobs: steps: - name: Verify package tests env: + CHANGES_RESULT: ${{ needs.changes.result }} TEST_RESULT: ${{ needs.test.result }} run: | + if [[ "$CHANGES_RESULT" != success ]]; then + exit 1 + fi if [[ "$TEST_RESULT" != success && "$TEST_RESULT" != skipped ]]; then exit 1 fi @@ -173,7 +192,7 @@ jobs: notify-teams-fail: name: Notify Teams on failure - needs: [test, docker, package-tests] + needs: [changes, test, publish, docker, package-tests] if: failure() && github.event_name == 'push' runs-on: ubuntu-24.04 steps: From 86dbe9f7b40f8b69d68102cee3219f7236597677 Mon Sep 17 00:00:00 2001 From: Carles Onielfa Date: Wed, 19 Aug 2026 12:54:58 +0200 Subject: [PATCH 7/8] add AGENTS.md --- AGENTS.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..112cb1b6 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,57 @@ +# AGENTS.md + +## Project Overview + +Hyperforge is a Python monorepo containing the core framework and first-party +agent packages. Python 3.12 and `uv` are used for local development and package +management. + +## Development + +- Run development commands from the relevant subproject directory, such as + `hyperforge/` or `agents//`, rather than from the repository root. +- Install dependencies with `uv sync --group dev`. +- Format changes with `make fmt`. +- Run lint and type checks with `make lint`. +- Run the subproject's tests with `make test`. +- Keep changes focused and add or update tests for behavioral changes. + +### Tests And VCR Cassettes + +Many tests use VCR cassettes to replay previously recorded HTTP interactions. + +- `make test` runs tests with `--record-mode=none`. It replays existing + cassettes and does not record missing or changed interactions. Use this for + normal development and validation. CI also uses `--record-mode=none`, so + tests must not require an online connection. Tests that make external calls + must use VCR and commit the required cassettes. +- `make record` runs tests with `--record-mode=rewrite`. It calls live external + services and rewrites cassettes, so use it only when adding or intentionally + updating recorded interactions. Supply the required credentials locally and + review generated cassette changes carefully to ensure they contain no + secrets or unstable data. +- Both targets accept pytest arguments through `ARGS`, for example + `make test ARGS="tests/test_example.py -k test_name"`. + +## Creating A New Agent + +1. Use an existing package under `agents/` as the template for conventions and + create `agents//`. +2. Add package metadata in `agents//pyproject.toml`, using the package name + `hyperforge_` and a dependency on `hyperforge`. +3. Implement the package under + `agents//src/hyperforge_/`. Define an `AgentConfig`, register the + agent with `@agent`, and export the agent from `__init__.py`. +4. Add `README.md`, `CHANGELOG.md`, `VERSION`, `Makefile`, and tests consistent + with neighboring agent packages. +5. Register the package in the root `pyproject.toml`: add its dependency, + workspace member, and `[tool.uv.sources]` entry. +6. Run `uv lock` so `uv.lock` includes the new workspace package. +7. **Add `agents/` to the `packages` list in `.github/packages.yaml`.** + This is required for CI change detection, testing, and publishing; creating + the package without this entry leaves it outside the package workflow. +8. From `agents//`, run formatting, linting, and tests before submitting + the change. + +Do not add agent-specific secrets globally. If CI tests require credentials, +scope them only to that package in `.github/workflows/package-tests.yaml`. From ab78b1529ae3a29ced4aaaccdcfb4553218c3304 Mon Sep 17 00:00:00 2001 From: Carles Onielfa Date: Wed, 19 Aug 2026 15:02:09 +0200 Subject: [PATCH 8/8] simpler naming --- .github/workflows/package-tests.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/package-tests.yaml b/.github/workflows/package-tests.yaml index f2055c64..ca472e4c 100644 --- a/.github/workflows/package-tests.yaml +++ b/.github/workflows/package-tests.yaml @@ -68,7 +68,7 @@ jobs: echo "packages=$packages" >> "$GITHUB_OUTPUT" test: - name: Test ${{ matrix.package }} + name: Test if: needs.changes.outputs.packages != '[]' needs: changes runs-on: ubuntu-24.04 @@ -101,7 +101,7 @@ jobs: run: make test publish: - name: Publish ${{ matrix.package }} + name: Publish if: github.event_name == 'push' && needs.changes.outputs.packages != '[]' needs: [changes, test] runs-on: ubuntu-24.04 @@ -137,7 +137,7 @@ jobs: uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0 docker: - name: Build and push Docker image + name: Build and push image if: always() && github.event_name == 'push' && contains(fromJSON(needs.changes.outputs.packages), 'hyperforge') && needs.test.result == 'success' && needs.publish.result == 'success' needs: [changes, test, publish] runs-on: ubuntu-24.04