Skip to content
Draft
Changes from all commits
Commits
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
109 changes: 102 additions & 7 deletions .github/workflows/test-ais-system.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,6 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
with:
path: hipFile
- name: Fetching fio repository...
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
with:
repository: ROCm/fio
ref: hipFile
path: fio
- name: Download hipFile runtime package
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 #v7.0.0
with:
Expand Down Expand Up @@ -101,7 +95,6 @@ jobs:
/bin/bash -c '
cp -R /mnt/ais /ais
mkdir /ais/hipFile/build
mkdir /ais/fio/build
'
- name: Copy the hipFile packages into the container
run: |
Expand Down Expand Up @@ -182,6 +175,108 @@ jobs:
/ais/hipFile/util/ci-aiscp-test.sh \
/ais/hipFile/build/examples/aiscp/aiscp
'
- name: Destroy hipfile IO test directory
if: ${{ always() }}
run: |
docker exec -t "${AIS_CONTAINER_NAME}" /bin/bash -c "rm -fr /mnt/ais-fs/${AIS_CONTAINER_NAME}"
- name: Cleanup & Stop the Docker container
if: ${{ always() }}
run: |
docker stop "${AIS_CONTAINER_NAME}"
- name: Cleanup self-hosted runner workspace
if: ${{ always() }}
run: rm -rf ${GITHUB_WORKSPACE}/* ${GITHUB_WORKSPACE}/.*
build_FIO:
uses: ROCm/fio/.github/workflows/build-fio.yml@rildixon/ci-hook-for-hipfile
with:
ais_hipfile_pkg_filename: ${{ inputs.ais_hipfile_pkg_filename }}
ais_hipfile_pkg_dev_filename: ${{ inputs.ais_hipfile_pkg_dev_filename }}
platform: ${{ inputs.platform }}
Comment on lines +189 to +194
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build_FIO job references a reusable workflow from an external repository branch (rildixon/ci-hook-for-hipfile). This introduces several concerns:

  1. Using a personal branch as a dependency creates instability - if the branch is deleted, renamed, or force-pushed, this workflow will break
  2. There's no verification that the called workflow will produce artifacts needed by run_FIO_tests
  3. The build_FIO job doesn't specify needs dependencies, but it requires artifacts (hipFile packages) that should be produced by a prior build job

Consider either:

  • Using a stable tag/release of the ROCm/fio repository instead of a personal branch
  • Or ensuring the branch is merged and using the default branch
  • Adding explicit needs dependencies if the build_FIO job requires artifacts from other jobs

Copilot uses AI. Check for mistakes.
run_FIO_tests:
runs-on: [linux, AIS]
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new run_FIO_tests job is missing a dependency on the run_system_tests job. Without specifying 'needs: run_system_tests', both jobs could run concurrently on the same AIS self-hosted runner, potentially causing resource contention (competing for GPU devices, disk I/O, etc.). Consider adding 'needs: run_system_tests' to ensure sequential execution and avoid resource conflicts, unless parallel execution is intentionally desired.

Suggested change
runs-on: [linux, AIS]
runs-on: [linux, AIS]
needs: run_system_tests

Copilot uses AI. Check for mistakes.
needs: [build_FIO]
steps:
- name: Set early AIS CI environment variables
run: echo "AIS_PR_NUMBER=$(echo ${{ github.ref }} | sed 's|[^0-9]||g')" >> "${GITHUB_ENV}"
- name: Set AIS CI container name
run: |
echo "AIS_CONTAINER_NAME=${AIS_PR_NUMBER}_${{ github.job }}_${AIS_INPUT_PLATFORM}_${AIS_INPUT_ROCM_VERSION}" >> "${GITHUB_ENV}"
# hipFile repo needed for //util directory
- name: Fetching hipFile repository...
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
with:
path: hipFile
- name: Fetching fio repository...
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
with:
repository: ROCm/fio
ref: hipFile
path: fio
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new run_FIO_tests job is missing the checkout of the hipFile repository. The FIO configure step (line 280-281) references HIPFILE=/ais/hipFile and HIPFILELIB paths, and the FIO test steps (lines 305, 316) reference /ais/hipFile/util/fio/write-read-verify.fio. Without checking out the hipFile repository, these paths won't exist and the job will fail. Add a checkout step for the hipFile repository similar to line 48-51 in the run_system_tests job.

Suggested change
path: fio
path: fio
- name: Fetching hipFile repository...
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
with:
repository: ROCm/hipFile
path: hipFile

Copilot uses AI. Check for mistakes.
- name: Download hipFile runtime package
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 #v7.0.0
with:
name: ${{ inputs.ais_hipfile_pkg_filename }}
- name: Download hipFile development package
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 #v7.0.0
with:
name: ${{ inputs.ais_hipfile_pkg_dev_filename }}
Comment on lines +215 to +222
Copy link

Copilot AI Feb 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new run_FIO_tests job is missing the download of the hipFile build directory artifact. The FIO configure step at line 281 references HIPFILELIB=${HIPFILE}/build/src/amd_detail/ which expects the hipFile build artifacts to be present. Without downloading the hipfile-build-dir artifact (as done in line 60-64 of run_system_tests), the FIO configuration and build will fail. Add a step to download the hipfile-build-dir artifact and copy it into the container similar to lines 60-64 and 133-137 in the run_system_tests job.

Copilot uses AI. Check for mistakes.
- name: Authenticating to GitHub Container Registry
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 #v3.7.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Starting Docker Container
run: |
docker run \
-dt \
--rm \
--device=/dev/kfd \
--device=/dev/dri \
--security-opt seccomp=unconfined \
--pull always \
-v ${GITHUB_WORKSPACE}:/mnt/ais:ro \
-v "${AIS_MOUNT_PATH}:/mnt/ais-fs" \
--name "${AIS_CONTAINER_NAME}" \
"${AIS_INPUT_CI_IMAGE}"
- name: Create hipfile IO test directory
run: |
docker exec -t "${AIS_CONTAINER_NAME}" /bin/bash -c "mkdir -p /mnt/ais-fs/${AIS_CONTAINER_NAME}"
- name: Make copy of the code repository and create build directories
run: |
docker exec \
-t \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
cp -R /mnt/ais /ais
mkdir /ais/fio/build
'
- name: Copy the hipFile packages into the container
run: |
docker cp \
"${GITHUB_WORKSPACE}/${AIS_INPUT_HIPFILE_PKG_FILENAME}" \
"${AIS_CONTAINER_NAME}:/root"
docker cp \
"${GITHUB_WORKSPACE}/${AIS_INPUT_HIPFILE_PKG_DEV_FILENAME}" \
"${AIS_CONTAINER_NAME}:/root"
- name: Install the hipFile packages
run: |
docker exec \
-t \
-w /root \
"${AIS_CONTAINER_NAME}" \
/bin/bash -c '
${{
format(
env.AIS_PKG_MGR == 'apt' && 'apt install -y "./{0}" "./{1}"' ||
env.AIS_PKG_MGR == 'dnf' && 'dnf install -y --cacheonly "./{0}" "./{1}"' ||
env.AIS_PKG_MGR == 'zypper' && 'zypper --no-refresh install -y --allow-unsigned-rpm "./{0}" "./{1}"' ||
'echo "Unknown platform."; exit 1',
inputs.ais_hipfile_pkg_filename,
inputs.ais_hipfile_pkg_dev_filename
)
}}
'
Comment on lines +209 to +279
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The run_FIO_tests job depends on build_FIO but never downloads the artifacts produced by that job. Instead, it checks out the FIO repository again (line 212-217) and builds FIO from source (lines 283-306). This defeats the purpose of having a separate build_FIO job. Either the job should download and use the FIO artifacts from build_FIO, or the build_FIO job and its dependency are unnecessary.

Copilot uses AI. Check for mistakes.
Comment on lines +199 to +279
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The run_FIO_tests job duplicates significant infrastructure setup code from the run_system_tests job (approximately 80 lines of identical code including Docker setup, authentication, container startup, package installation, etc.). This duplication makes the workflow harder to maintain - any changes to the infrastructure setup would need to be made in both places.

Consider extracting the common setup steps into a reusable workflow or composite action that both jobs can use. At minimum, ensure that any future changes to Docker setup, package installation, or cleanup steps are synchronized between both jobs.

Copilot uses AI. Check for mistakes.
- name: Configure fio
run: |
docker exec \
Expand Down