From c17bebe0194bcab340ae195433065395ce3ef788 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 18:55:16 +0000 Subject: [PATCH 1/8] Initial plan From a713e2bf4913428ea1d7bad2b86ca3cc9ab92468 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 18:57:26 +0000 Subject: [PATCH 2/8] Add CI tests for non-editable and GitHub installs Co-authored-by: mawad-amd <112003944+mawad-amd@users.noreply.github.com> --- .github/workflows/intellikit-ci-test.yml | 119 +++++++++++++++++++++-- 1 file changed, 110 insertions(+), 9 deletions(-) diff --git a/.github/workflows/intellikit-ci-test.yml b/.github/workflows/intellikit-ci-test.yml index 3788cb7..7100630 100644 --- a/.github/workflows/intellikit-ci-test.yml +++ b/.github/workflows/intellikit-ci-test.yml @@ -38,8 +38,8 @@ jobs: run: | bash .github/scripts/container_build.sh - test-installation: - name: Test Installation + test-editable-install: + name: Test Editable Install needs: build-container-image runs-on: [self-hosted, mi3xx] timeout-minutes: 30 @@ -48,7 +48,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Test Installation - all tools + - name: Test Editable Install - all tools run: | bash .github/scripts/container_exec.sh " pip install -e accordo @@ -66,44 +66,145 @@ jobs: python3 -c 'import uprof_mcp' " - - name: Test Installation - accordo + - name: Test Editable Install - accordo run: | bash .github/scripts/container_exec.sh " pip install -e accordo python3 -c 'import accordo' " - - name: Test Installation - linex + - name: Test Editable Install - linex run: | bash .github/scripts/container_exec.sh " pip install -e linex python3 -c 'import linex' " - - name: Test Installation - metrix + - name: Test Editable Install - metrix run: | bash .github/scripts/container_exec.sh " pip install -e metrix python3 -c 'import metrix' " - - name: Test Installation - nexus + - name: Test Editable Install - nexus run: | bash .github/scripts/container_exec.sh " pip install -e nexus python3 -c 'import nexus' " - - name: Test Installation - rocm_mcp + - name: Test Editable Install - rocm_mcp run: | bash .github/scripts/container_exec.sh " pip install -e rocm_mcp python3 -c 'import rocm_mcp' " - - name: Test Installation - uprof_mcp + - name: Test Editable Install - uprof_mcp run: | bash .github/scripts/container_exec.sh " pip install -e uprof_mcp python3 -c 'import uprof_mcp' " + + test-non-editable-install: + name: Test Non-Editable Install + needs: build-container-image + runs-on: [self-hosted, mi3xx] + timeout-minutes: 30 + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Test Non-Editable Install - accordo + run: | + bash .github/scripts/container_exec.sh " + pip install ./accordo + python3 -c 'import accordo' + " + + - name: Test Non-Editable Install - linex + run: | + bash .github/scripts/container_exec.sh " + pip install ./linex + python3 -c 'import linex' + " + + - name: Test Non-Editable Install - metrix + run: | + bash .github/scripts/container_exec.sh " + pip install ./metrix + python3 -c 'import metrix' + " + + - name: Test Non-Editable Install - nexus + run: | + bash .github/scripts/container_exec.sh " + pip install ./nexus + python3 -c 'import nexus' + " + + - name: Test Non-Editable Install - rocm_mcp + run: | + bash .github/scripts/container_exec.sh " + pip install ./rocm_mcp + python3 -c 'import rocm_mcp' + " + + - name: Test Non-Editable Install - uprof_mcp + run: | + bash .github/scripts/container_exec.sh " + pip install ./uprof_mcp + python3 -c 'import uprof_mcp' + " + + test-github-install: + name: Test GitHub Install + needs: build-container-image + runs-on: [self-hosted, mi3xx] + timeout-minutes: 30 + + steps: + - name: Test GitHub Install - accordo + run: | + bash .github/scripts/container_exec.sh " + pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=accordo + python3 -c 'import accordo' + " + + - name: Test GitHub Install - linex + run: | + bash .github/scripts/container_exec.sh " + pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=linex + python3 -c 'import linex' + " + + - name: Test GitHub Install - metrix + run: | + bash .github/scripts/container_exec.sh " + pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=metrix + python3 -c 'import metrix' + " + + - name: Test GitHub Install - nexus + run: | + bash .github/scripts/container_exec.sh " + pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=nexus + python3 -c 'import nexus' + " + + - name: Test GitHub Install - rocm_mcp + run: | + bash .github/scripts/container_exec.sh " + pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=rocm_mcp + python3 -c 'import rocm_mcp' + " + + - name: Test GitHub Install - uprof_mcp + run: | + bash .github/scripts/container_exec.sh " + pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=uprof_mcp + python3 -c 'import uprof_mcp' + " From db6c1babf97f54bc145d2325f53470e4ab7fd42b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 19:00:24 +0000 Subject: [PATCH 3/8] Add security: set minimal workflow permissions Co-authored-by: mawad-amd <112003944+mawad-amd@users.noreply.github.com> --- .github/workflows/intellikit-ci-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/intellikit-ci-test.yml b/.github/workflows/intellikit-ci-test.yml index 7100630..2f6c7e0 100644 --- a/.github/workflows/intellikit-ci-test.yml +++ b/.github/workflows/intellikit-ci-test.yml @@ -14,6 +14,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} +permissions: + contents: read + jobs: build-container-image: runs-on: [self-hosted, mi3xx] From 2ecfcedebc8552fe388511066ebae4640a356a6e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 19:04:28 +0000 Subject: [PATCH 4/8] Refactor CI to use matrix strategy for install methods Co-authored-by: mawad-amd <112003944+mawad-amd@users.noreply.github.com> --- .github/workflows/intellikit-ci-test.yml | 190 ++++------------------- 1 file changed, 27 insertions(+), 163 deletions(-) diff --git a/.github/workflows/intellikit-ci-test.yml b/.github/workflows/intellikit-ci-test.yml index 2f6c7e0..3406ca1 100644 --- a/.github/workflows/intellikit-ci-test.yml +++ b/.github/workflows/intellikit-ci-test.yml @@ -41,173 +41,37 @@ jobs: run: | bash .github/scripts/container_build.sh - test-editable-install: - name: Test Editable Install + test-installation: + name: Test ${{ matrix.install-method }} - ${{ matrix.package }} needs: build-container-image runs-on: [self-hosted, mi3xx] timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + package: [accordo, linex, metrix, nexus, rocm_mcp, uprof_mcp] + install-method: [editable, non-editable, github] steps: - name: Checkout repository uses: actions/checkout@v4 - - - name: Test Editable Install - all tools - run: | - bash .github/scripts/container_exec.sh " - pip install -e accordo - pip install -e linex - pip install -e metrix - pip install -e nexus - pip install -e rocm_mcp - pip install -e uprof_mcp - pip install -e . - python3 -c 'import accordo' - python3 -c 'import linex' - python3 -c 'import metrix' - python3 -c 'import nexus' - python3 -c 'import rocm_mcp' - python3 -c 'import uprof_mcp' - " - - - name: Test Editable Install - accordo - run: | - bash .github/scripts/container_exec.sh " - pip install -e accordo - python3 -c 'import accordo' - " - - - name: Test Editable Install - linex - run: | - bash .github/scripts/container_exec.sh " - pip install -e linex - python3 -c 'import linex' - " - - - name: Test Editable Install - metrix - run: | - bash .github/scripts/container_exec.sh " - pip install -e metrix - python3 -c 'import metrix' - " - - - name: Test Editable Install - nexus - run: | - bash .github/scripts/container_exec.sh " - pip install -e nexus - python3 -c 'import nexus' - " - - - name: Test Editable Install - rocm_mcp - run: | - bash .github/scripts/container_exec.sh " - pip install -e rocm_mcp - python3 -c 'import rocm_mcp' - " - - - name: Test Editable Install - uprof_mcp - run: | - bash .github/scripts/container_exec.sh " - pip install -e uprof_mcp - python3 -c 'import uprof_mcp' - " - - test-non-editable-install: - name: Test Non-Editable Install - needs: build-container-image - runs-on: [self-hosted, mi3xx] - timeout-minutes: 30 - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Test Non-Editable Install - accordo - run: | - bash .github/scripts/container_exec.sh " - pip install ./accordo - python3 -c 'import accordo' - " - - - name: Test Non-Editable Install - linex - run: | - bash .github/scripts/container_exec.sh " - pip install ./linex - python3 -c 'import linex' - " - - - name: Test Non-Editable Install - metrix - run: | - bash .github/scripts/container_exec.sh " - pip install ./metrix - python3 -c 'import metrix' - " - - - name: Test Non-Editable Install - nexus - run: | - bash .github/scripts/container_exec.sh " - pip install ./nexus - python3 -c 'import nexus' - " - - - name: Test Non-Editable Install - rocm_mcp - run: | - bash .github/scripts/container_exec.sh " - pip install ./rocm_mcp - python3 -c 'import rocm_mcp' - " - - - name: Test Non-Editable Install - uprof_mcp - run: | - bash .github/scripts/container_exec.sh " - pip install ./uprof_mcp - python3 -c 'import uprof_mcp' - " - - test-github-install: - name: Test GitHub Install - needs: build-container-image - runs-on: [self-hosted, mi3xx] - timeout-minutes: 30 - - steps: - - name: Test GitHub Install - accordo - run: | - bash .github/scripts/container_exec.sh " - pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=accordo - python3 -c 'import accordo' - " - - - name: Test GitHub Install - linex - run: | - bash .github/scripts/container_exec.sh " - pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=linex - python3 -c 'import linex' - " - - - name: Test GitHub Install - metrix - run: | - bash .github/scripts/container_exec.sh " - pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=metrix - python3 -c 'import metrix' - " - - - name: Test GitHub Install - nexus - run: | - bash .github/scripts/container_exec.sh " - pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=nexus - python3 -c 'import nexus' - " - - - name: Test GitHub Install - rocm_mcp - run: | - bash .github/scripts/container_exec.sh " - pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=rocm_mcp - python3 -c 'import rocm_mcp' - " - - - name: Test GitHub Install - uprof_mcp - run: | - bash .github/scripts/container_exec.sh " - pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=uprof_mcp - python3 -c 'import uprof_mcp' - " + if: matrix.install-method != 'github' + + - name: Test ${{ matrix.install-method }} install - ${{ matrix.package }} + run: | + if [ "${{ matrix.install-method }}" = "editable" ]; then + bash .github/scripts/container_exec.sh " + pip install -e ${{ matrix.package }} + python3 -c 'import ${{ matrix.package }}' + " + elif [ "${{ matrix.install-method }}" = "non-editable" ]; then + bash .github/scripts/container_exec.sh " + pip install ./${{ matrix.package }} + python3 -c 'import ${{ matrix.package }}' + " + elif [ "${{ matrix.install-method }}" = "github" ]; then + bash .github/scripts/container_exec.sh " + pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=${{ matrix.package }} + python3 -c 'import ${{ matrix.package }}' + " + fi From 53b780a8589ba4ddb3a7abd309d7e8878202041a Mon Sep 17 00:00:00 2001 From: Muhammad Awad <112003944+mawad-amd@users.noreply.github.com> Date: Tue, 3 Mar 2026 14:51:26 -0800 Subject: [PATCH 5/8] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/intellikit-ci-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/intellikit-ci-test.yml b/.github/workflows/intellikit-ci-test.yml index 3406ca1..5a32b0c 100644 --- a/.github/workflows/intellikit-ci-test.yml +++ b/.github/workflows/intellikit-ci-test.yml @@ -55,7 +55,7 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - if: matrix.install-method != 'github' + - name: Test ${{ matrix.install-method }} install - ${{ matrix.package }} run: | @@ -71,7 +71,7 @@ jobs: " elif [ "${{ matrix.install-method }}" = "github" ]; then bash .github/scripts/container_exec.sh " - pip install git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=${{ matrix.package }} + pip install \"git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=${{ matrix.package }}\" python3 -c 'import ${{ matrix.package }}' " fi From 36a8676e6a5770b078e863431b6cd7395256ffb7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 23:01:25 +0000 Subject: [PATCH 6/8] Fix matrix key naming and add root project tests Co-authored-by: mawad-amd <112003944+mawad-amd@users.noreply.github.com> --- .github/workflows/intellikit-ci-test.yml | 56 ++++++++++++++++-------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/.github/workflows/intellikit-ci-test.yml b/.github/workflows/intellikit-ci-test.yml index 5a32b0c..be93e77 100644 --- a/.github/workflows/intellikit-ci-test.yml +++ b/.github/workflows/intellikit-ci-test.yml @@ -42,36 +42,54 @@ jobs: bash .github/scripts/container_build.sh test-installation: - name: Test ${{ matrix.install-method }} - ${{ matrix.package }} + name: Test ${{ matrix.install_method }} - ${{ matrix.package }} needs: build-container-image runs-on: [self-hosted, mi3xx] timeout-minutes: 30 strategy: fail-fast: false matrix: - package: [accordo, linex, metrix, nexus, rocm_mcp, uprof_mcp] - install-method: [editable, non-editable, github] + package: [accordo, linex, metrix, nexus, rocm_mcp, uprof_mcp, root] + install_method: [editable, non-editable, github] steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Test ${{ matrix.install-method }} install - ${{ matrix.package }} + - name: Test ${{ matrix.install_method }} install - ${{ matrix.package }} run: | - if [ "${{ matrix.install-method }}" = "editable" ]; then - bash .github/scripts/container_exec.sh " - pip install -e ${{ matrix.package }} - python3 -c 'import ${{ matrix.package }}' - " - elif [ "${{ matrix.install-method }}" = "non-editable" ]; then - bash .github/scripts/container_exec.sh " - pip install ./${{ matrix.package }} - python3 -c 'import ${{ matrix.package }}' - " - elif [ "${{ matrix.install-method }}" = "github" ]; then - bash .github/scripts/container_exec.sh " - pip install \"git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=${{ matrix.package }}\" - python3 -c 'import ${{ matrix.package }}' - " + if [ "${{ matrix.package }}" = "root" ]; then + # Root project installation (no import test as there's no top-level module) + if [ "${{ matrix.install_method }}" = "editable" ]; then + bash .github/scripts/container_exec.sh " + pip install -e . + " + elif [ "${{ matrix.install_method }}" = "non-editable" ]; then + bash .github/scripts/container_exec.sh " + pip install . + " + elif [ "${{ matrix.install_method }}" = "github" ]; then + bash .github/scripts/container_exec.sh " + pip install \"git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}\" + " + fi + else + # Subpackage installation with import test + if [ "${{ matrix.install_method }}" = "editable" ]; then + bash .github/scripts/container_exec.sh " + pip install -e ${{ matrix.package }} + python3 -c 'import ${{ matrix.package }}' + " + elif [ "${{ matrix.install_method }}" = "non-editable" ]; then + bash .github/scripts/container_exec.sh " + pip install ./${{ matrix.package }} + python3 -c 'import ${{ matrix.package }}' + " + elif [ "${{ matrix.install_method }}" = "github" ]; then + bash .github/scripts/container_exec.sh " + pip install \"git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=${{ matrix.package }}\" + python3 -c 'import ${{ matrix.package }}' + " + fi fi From 51d985472ce008b4d64804f2eeb98a4ee0d40da4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 23:40:27 +0000 Subject: [PATCH 7/8] Fix quoting and SHA handling for GitHub installs Co-authored-by: mawad-amd <112003944+mawad-amd@users.noreply.github.com> --- .github/workflows/intellikit-ci-test.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/intellikit-ci-test.yml b/.github/workflows/intellikit-ci-test.yml index be93e77..2b08158 100644 --- a/.github/workflows/intellikit-ci-test.yml +++ b/.github/workflows/intellikit-ci-test.yml @@ -59,6 +59,13 @@ jobs: - name: Test ${{ matrix.install_method }} install - ${{ matrix.package }} run: | + # Determine the correct SHA to use for GitHub installs + if [ "${{ github.event_name }}" = "pull_request" ]; then + GIT_SHA="${{ github.event.pull_request.head.sha }}" + else + GIT_SHA="${{ github.sha }}" + fi + if [ "${{ matrix.package }}" = "root" ]; then # Root project installation (no import test as there's no top-level module) if [ "${{ matrix.install_method }}" = "editable" ]; then @@ -71,7 +78,7 @@ jobs: " elif [ "${{ matrix.install_method }}" = "github" ]; then bash .github/scripts/container_exec.sh " - pip install \"git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}\" + pip install 'git+https://github.com/AMDResearch/intellikit.git@${GIT_SHA}' " fi else @@ -88,7 +95,7 @@ jobs: " elif [ "${{ matrix.install_method }}" = "github" ]; then bash .github/scripts/container_exec.sh " - pip install \"git+https://github.com/AMDResearch/intellikit.git@${{ github.sha }}#subdirectory=${{ matrix.package }}\" + pip install 'git+https://github.com/AMDResearch/intellikit.git@${GIT_SHA}#subdirectory=${{ matrix.package }}' python3 -c 'import ${{ matrix.package }}' " fi From 2174af52677a9a9a4e49135d42f9c2700a8216a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 23:44:24 +0000 Subject: [PATCH 8/8] Remove root project testing from matrix Co-authored-by: mawad-amd <112003944+mawad-amd@users.noreply.github.com> --- .github/workflows/intellikit-ci-test.yml | 51 ++++++++---------------- 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/.github/workflows/intellikit-ci-test.yml b/.github/workflows/intellikit-ci-test.yml index 2b08158..d3f6c21 100644 --- a/.github/workflows/intellikit-ci-test.yml +++ b/.github/workflows/intellikit-ci-test.yml @@ -49,7 +49,7 @@ jobs: strategy: fail-fast: false matrix: - package: [accordo, linex, metrix, nexus, rocm_mcp, uprof_mcp, root] + package: [accordo, linex, metrix, nexus, rocm_mcp, uprof_mcp] install_method: [editable, non-editable, github] steps: @@ -66,37 +66,20 @@ jobs: GIT_SHA="${{ github.sha }}" fi - if [ "${{ matrix.package }}" = "root" ]; then - # Root project installation (no import test as there's no top-level module) - if [ "${{ matrix.install_method }}" = "editable" ]; then - bash .github/scripts/container_exec.sh " - pip install -e . - " - elif [ "${{ matrix.install_method }}" = "non-editable" ]; then - bash .github/scripts/container_exec.sh " - pip install . - " - elif [ "${{ matrix.install_method }}" = "github" ]; then - bash .github/scripts/container_exec.sh " - pip install 'git+https://github.com/AMDResearch/intellikit.git@${GIT_SHA}' - " - fi - else - # Subpackage installation with import test - if [ "${{ matrix.install_method }}" = "editable" ]; then - bash .github/scripts/container_exec.sh " - pip install -e ${{ matrix.package }} - python3 -c 'import ${{ matrix.package }}' - " - elif [ "${{ matrix.install_method }}" = "non-editable" ]; then - bash .github/scripts/container_exec.sh " - pip install ./${{ matrix.package }} - python3 -c 'import ${{ matrix.package }}' - " - elif [ "${{ matrix.install_method }}" = "github" ]; then - bash .github/scripts/container_exec.sh " - pip install 'git+https://github.com/AMDResearch/intellikit.git@${GIT_SHA}#subdirectory=${{ matrix.package }}' - python3 -c 'import ${{ matrix.package }}' - " - fi + # Subpackage installation with import test + if [ "${{ matrix.install_method }}" = "editable" ]; then + bash .github/scripts/container_exec.sh " + pip install -e ${{ matrix.package }} + python3 -c 'import ${{ matrix.package }}' + " + elif [ "${{ matrix.install_method }}" = "non-editable" ]; then + bash .github/scripts/container_exec.sh " + pip install ./${{ matrix.package }} + python3 -c 'import ${{ matrix.package }}' + " + elif [ "${{ matrix.install_method }}" = "github" ]; then + bash .github/scripts/container_exec.sh " + pip install 'git+https://github.com/AMDResearch/intellikit.git@${GIT_SHA}#subdirectory=${{ matrix.package }}' + python3 -c 'import ${{ matrix.package }}' + " fi