Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
632d904
Fix escape sequences
dagardner-nv Apr 1, 2025
53a5a76
Fix handling of github/gitlab and local git variables
dagardner-nv Apr 1, 2025
b1568da
Change location of the uv venv to not clash when running locally
dagardner-nv Apr 1, 2025
2b86009
temp
dagardner-nv Apr 1, 2025
864970b
WIP
dagardner-nv Apr 1, 2025
9b77b6d
WIP
dagardner-nv Apr 1, 2025
2497062
WIP
dagardner-nv Apr 1, 2025
a73a30d
WIP
dagardner-nv Apr 1, 2025
cfe382a
Remove debug logging
dagardner-nv Apr 1, 2025
2831460
Use the --active flag
dagardner-nv Apr 1, 2025
6b7b518
Adding local CI scripts
dagardner-nv Apr 1, 2025
73f5080
WIP
dagardner-nv Apr 1, 2025
ab1fd6a
Change venv name
dagardner-nv Apr 1, 2025
16368e4
Log completion
dagardner-nv Apr 2, 2025
e258920
Fix location of workspace_tmp allowing artifact storage
dagardner-nv Apr 2, 2025
e40653c
Merge branch 'develop' of github.com:NVIDIA/AgentIQ into david-run-ci…
dagardner-nv Apr 2, 2025
85347f3
Move the venv allowing for local caching
dagardner-nv Apr 2, 2025
e6bc0ff
Cache uv and pre-commit packages locally
dagardner-nv Apr 2, 2025
00f8136
Don't fetch lfs files when using host git as this will modify the hos…
dagardner-nv Apr 2, 2025
eeee4a9
Avoid ssh verification by trusting github.com
dagardner-nv Apr 2, 2025
13b7f7b
Cleanup CI locations
dagardner-nv Apr 2, 2025
826402d
Add new documentation to index
dagardner-nv Apr 2, 2025
780a89e
Add CR header
dagardner-nv Apr 2, 2025
3e91312
Fix CR Year
dagardner-nv Apr 2, 2025
4b0f5bb
Fix GitHub casing
dagardner-nv Apr 2, 2025
360dfa6
Install all groups for tests, fixes a missing dep issue on Arm
dagardner-nv Apr 2, 2025
3034fe5
Revert "Install all groups for tests, fixes a missing dep issue on Arm"
dagardner-nv Apr 2, 2025
96490d0
Mark tests as not working on Arm
dagardner-nv Apr 2, 2025
87b26d9
Move CI files to be arch specific
dagardner-nv Apr 2, 2025
fa9f632
Document faiss as unsupported on Arm
dagardner-nv Apr 2, 2025
7598a55
Set arch matrix
dagardner-nv Apr 2, 2025
bf5ef82
Document using qemu to run CI locally on Arm
dagardner-nv Apr 2, 2025
8433101
Spelling fix
dagardner-nv Apr 3, 2025
3c8fc4a
Fix artifact names
dagardner-nv Apr 3, 2025
8b853e6
Merge branch 'develop' of github.com:NVIDIA/AgentIQ into david-ci-arm-p2
dagardner-nv Apr 3, 2025
794a374
No need to build wheels twice
dagardner-nv Apr 3, 2025
d01e8bd
Remove unused matrix
dagardner-nv Apr 3, 2025
0fe67da
Fetch all history for the build wheel stage
dagardner-nv Apr 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/workflows/ci_pipe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,14 @@ jobs:
test:
name: Test
needs: [check]
runs-on: linux-amd64-cpu4
runs-on: linux-${{ matrix.arch }}-cpu4
timeout-minutes: 30
container:
image: ${{ inputs.container }}
strategy:
fail-fast: true
matrix:
arch: ["amd64", "arm64"]

steps:
- name: Checkout
Expand All @@ -94,7 +96,7 @@ jobs:
fetch-tags: true
path: 'agentiq'

- name: Test:linux
- name: Test:linux:${{ matrix.arch }}
shell: bash
run: ./agentiq/ci/scripts/github/tests.sh

Expand All @@ -103,7 +105,7 @@ jobs:
# Upload test results even if the tests fail
if: ${{ always() }}
with:
name: "test-results"
name: "test-results-${{ matrix.arch }}"
path: "${{ github.workspace }}/tmp/*.xml"
if-no-files-found: error

Expand Down Expand Up @@ -152,6 +154,7 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
path: 'agentiq'

Expand Down
2 changes: 1 addition & 1 deletion ci/scripts/run_ci_local.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ GIT_COMMIT=$(git log -n 1 --pretty=format:%H)
# Specifies whether to mount the current git repo or to use a clean clone (the default)
USE_HOST_GIT=${USE_HOST_GIT:-0}

LOCAL_CI_TMP=${LOCAL_CI_TMP:-${AGENTIQ_ROOT}/.tmp/local_ci_tmp}
LOCAL_CI_TMP=${LOCAL_CI_TMP:-${AGENTIQ_ROOT}/.tmp/local_ci_tmp/${CI_ARCH}}
DOCKER_EXTRA_ARGS=${DOCKER_EXTRA_ARGS:-""}

CI_CONTAINER=${CI_CONTAINER:-"ghcr.io/astral-sh/uv:python3.12-bookworm"}
Expand Down
1 change: 1 addition & 0 deletions ci/vale/styles/config/vocabularies/aiq/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ DB(s?)
[Ee]ngineerable
[Ee]val
[Ee]xplainability
Faiss
[Gg]eneratable
glog
GPU(s?)
Expand Down
36 changes: 32 additions & 4 deletions docs/source/advanced/running-ci-locally.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,37 @@ From this point you can manually copy/paste the commands which would normally be

| Name | Description | Location |
|--|--|--|
| Artifacts | Test results, wheels, and documentation | `.tmp/local_ci_tmp/local_ci_workspace` |
| Cache | `uv` and `pre-commit` package caches | `.tmp/local_ci_tmp/cache` |
| Virtual Environment | Python virtual environment | `.tmp/local_ci_tmp/local_ci_workspace/.venv` |
| Bootstrap Script | The script used to bootstrap the CI environment within the CI container | `.tmp/local_ci_tmp/bootstrap_local_ci.sh` |
| Artifacts | Test results, wheels, and documentation | `.tmp/local_ci_tmp/<arch>local_ci_workspace` |
| Cache | `uv` and `pre-commit` package caches | `.tmp/local_ci_tmp/<arch>cache` |
| Virtual Environment | Python virtual environment | `.tmp/local_ci_tmp/<arch>local_ci_workspace/.venv` |
| Bootstrap Script | The script used to bootstrap the CI environment within the CI container | `.tmp/local_ci_tmp/<arch>bootstrap_local_ci.sh` |

Where `<arch>` is the architecture of the host machine at time of writing this will be either `amd64` or `arm64`.

> Note: In some situations it may be necessary to delete the `.tmp/local_ci_tmp` directory to clear out old artifacts and caches. This is especially true if you are switching between branches or if you are running into issues with the CI pipeline.

## Multi-Architecture CI
To run the CI pipeline on a different architecture other than your own, QEMU can be used to emulate the target architecture.

> Note: This assumes you have an amd64 system and want to run the CI pipeline on arm64. If you are using an arm64 and want to emulate amd64, you will need to adjust the commands accordingly.

On an apt based system, this can be done with the following commands:
```bash
sudo apt install qemu-utils qemu-system-arm qemu-user-static
```

Register QEMU with Docker:
```bash
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
```

Verify that the registration was successful:
```bash
docker run --platform=linux/arm64 --rm -t ubuntu:noble uname -m
```

### Run CI on arm64
The `CI_ARCH` environment variable can be set to the desired architecture to run CI, for example to run the CI pipeline on arm64, you can use the following command:
```bash
CI_ARCH=arm64 ./ci/scripts/run_ci_local.sh all
```
1 change: 1 addition & 0 deletions docs/source/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@ This is the first general release of AgentIQ.
- LlamaIndex

## Known Issues
- Faiss is currently broken on Arm64. This is a known issue [#72](https://github.com/NVIDIA/AgentIQ/issues/72) caused by an upstream bug in the Faiss library [https://github.com/facebookresearch/faiss/issues/3936](https://github.com/facebookresearch/faiss/issues/3936).
- AgentIQ applications must use the same name for both the distribution and root package. This is a current implementation limitation and will be addressed in a future release.
- Refer to [https://github.com/NVIDIA/AgentIQ/issues](https://github.com/NVIDIA/AgentIQ/issues) for an up to date list of current issues.
7 changes: 7 additions & 0 deletions examples/simple/tests/test_web_query_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.

import platform

import pytest
from aiq_simple.register import WebQueryToolConfig

from aiq.builder.workflow_builder import WorkflowBuilder
from aiq.test.embedder import EmbedderTestConfig


@pytest.mark.skipif(platform.machine() == "aarch64",
reason="faiss not working on arm64 https://github.com/NVIDIA/AgentIQ/issues/72")
async def test_web_query_config():

config = WebQueryToolConfig(webpage_url="https://www.google.com",
Expand All @@ -36,6 +41,8 @@ async def test_web_query_config():
assert fn.description == config.description


@pytest.mark.skipif(platform.machine() == "aarch64",
reason="faiss not working on arm64 https://github.com/NVIDIA/AgentIQ/issues/72")
async def test_web_query_tool():

config = WebQueryToolConfig(webpage_url="https://www.google.com",
Expand Down