From a2b2af8a58974888406fed4adbc73a8047743eb4 Mon Sep 17 00:00:00 2001 From: Riley Dixon Date: Thu, 12 Feb 2026 14:21:26 -0700 Subject: [PATCH 1/3] ci: move fio steps into separate job This is in preparation for calling out to the ROCm/fio workflow to build and package FIO with hipFile support separately. This workflow would then install the FIO packages produced instead of compiling it separately. This will allow us to at least sanity check the FIO packages we produce and publish. --- .github/workflows/test-ais-system.yml | 102 ++++++++++++++++++++++++-- 1 file changed, 95 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test-ais-system.yml b/.github/workflows/test-ais-system.yml index b10ab91..276cca8 100644 --- a/.github/workflows/test-ais-system.yml +++ b/.github/workflows/test-ais-system.yml @@ -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: @@ -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: | @@ -182,6 +175,101 @@ 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}/.* + run_FIO_tests: + runs-on: [linux, AIS] + 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 + - 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 }} + - 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 + ) + }} + ' - name: Configure fio run: | docker exec \ From 89335b45b953bf834cc70b5e3dbc52bb8433042f Mon Sep 17 00:00:00 2001 From: Riley Dixon Date: Tue, 17 Feb 2026 16:36:22 -0700 Subject: [PATCH 2/3] ci: test using fio callable workflow using WIP branch --- .github/workflows/test-ais-system.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/test-ais-system.yml b/.github/workflows/test-ais-system.yml index 276cca8..c51ea88 100644 --- a/.github/workflows/test-ais-system.yml +++ b/.github/workflows/test-ais-system.yml @@ -186,8 +186,18 @@ jobs: - name: Cleanup self-hosted runner workspace if: ${{ always() }} run: rm -rf ${GITHUB_WORKSPACE}/* ${GITHUB_WORKSPACE}/.* + build_FIO: + # Adds a level of indirection, but we no longer need to worry about + # adding logic to allow certain jobs to have been skipped depending + # on the platform of this current workflow, and all others downstream. + uses: ROCm/fio/.github/workflows/build-fio-for-hipfile.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 }} run_FIO_tests: runs-on: [linux, AIS] + 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}" From e9896fc97b60acdcd13e779e8f1939913cde7714 Mon Sep 17 00:00:00 2001 From: Riley Dixon Date: Wed, 18 Feb 2026 18:17:46 -0700 Subject: [PATCH 3/3] fio-ci: use new distro-agnostic workflow directly. --- .github/workflows/test-ais-system.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/test-ais-system.yml b/.github/workflows/test-ais-system.yml index c51ea88..b9700ee 100644 --- a/.github/workflows/test-ais-system.yml +++ b/.github/workflows/test-ais-system.yml @@ -187,10 +187,7 @@ jobs: if: ${{ always() }} run: rm -rf ${GITHUB_WORKSPACE}/* ${GITHUB_WORKSPACE}/.* build_FIO: - # Adds a level of indirection, but we no longer need to worry about - # adding logic to allow certain jobs to have been skipped depending - # on the platform of this current workflow, and all others downstream. - uses: ROCm/fio/.github/workflows/build-fio-for-hipfile.yml@rildixon/ci-hook-for-hipfile + 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 }}