name: TheRock CI Linux on: workflow_call: inputs: cmake_options: type: string project_to_test: type: string subtree_checkout: type: string permissions: contents: read jobs: therock-build-linux: name: Build Linux Packages runs-on: azure-linux-scale-rocm permissions: id-token: write container: image: ghcr.io/rocm/therock_build_manylinux_x86_64@sha256:044b113562629f4bd2ec5d2e64b32eee11562d48fb1a75d7493daec9dd8d8292 strategy: fail-fast: true env: CACHE_DIR: ${{ github.workspace }}/.container-cache CCACHE_DIR: "${{ github.workspace }}/.container-cache/ccache" CCACHE_MAXSIZE: "700M" AMDGPU_FAMILIES: "gfx94X-dcgpu" TEATIME_FORCE_INTERACTIVE: 0 steps: - name: Generate a token for rocm-libraries id: generate-token uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 with: app-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} owner: ${{ github.repository_owner }} - name: "Checking out repository for rocm-libraries" uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: sparse-checkout: | .github ${{ inputs.subtree_checkout }} token: ${{ steps.generate-token.outputs.token }} - name: Checkout TheRock repository uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: "ROCm/TheRock" path: "TheRock" - name: Runner Health Settings run: | echo "CCACHE_DIR=${CCACHE_DIR}" df -h ccache -z mkdir -p $CCACHE_DIR cmake --version echo "Installed Python versions:" ls -d /opt/python echo "python: $(which python), python3: $(which python3)" echo "Git version: $(git --version)" git config --global --add safe.directory $PWD git config fetch.parallel 10 - name: Fetch sources run: | ./TheRock/build_tools/fetch_sources.py --jobs 12 --no-include-math-libs - name: Install python deps run: | pip install -r TheRock/requirements.txt pip freeze - name: Configure Projects env: amdgpu_families: ${{ env.AMDGPU_FAMILIES }} package_version: ADHOCBUILD extra_cmake_options: "-DTHEROCK_USE_EXTERNAL_ROCM_LIBRARIES=ON -DTHEROCK_ROCM_LIBRARIES_SOURCE_DIR=../ ${{ inputs.cmake_options }}" BUILD_DIR: build run: | python3 TheRock/build_tools/github_actions/build_configure.py - name: Build therock-dist run: cmake --build TheRock/build --target therock-dist - name: Build therock-archives run: cmake --build TheRock/build --target therock-archives - name: Report if: ${{ !cancelled() }} run: | echo "Full SDK du:" echo "------------" du -h -d 1 TheRock/build/dist/rocm echo "Artifact Archives:" echo "------------------" ls -lh TheRock/build/artifacts/*.tar.xz echo "Artifacts:" echo "----------" du -h -d 1 TheRock/build/artifacts echo "CCache Stats:" echo "-------------" ccache -s - name: Configure AWS Credentials if: always() uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0 with: aws-region: us-east-2 role-to-assume: arn:aws:iam::692859939525:role/therock-artifacts-external - name: Create Logs index Files if: always() run: | python3 TheRock/build_tools/github_actions/create_log_index.py \ --build-dir=TheRock/build \ --amdgpu-family=${{ env.AMDGPU_FAMILIES }} - name: Upload artifacts run: | python TheRock/build_tools/github_actions/upload_build_artifacts.py \ --run-id ${{ github.run_id }} \ --amdgpu-family ${{ env.AMDGPU_FAMILIES }} \ --build-dir TheRock/build - name: Upload Logs if: always() run: | python3 TheRock/build_tools/github_actions/upload_build_logs_to_s3.py \ --build-dir=TheRock/build \ --run-id ${{ github.run_id }} \ --amdgpu-family ${{ env.AMDGPU_FAMILIES }} - name: Add Links to Job Summary if: always() run: | python TheRock/build_tools/github_actions/upload_build_summary.py \ --run-id ${{ github.run_id }} \ --amdgpu-family ${{ env.AMDGPU_FAMILIES }} \ --build-dir TheRock/build therock-test-linux: name: "Test" needs: [therock-build-linux] uses: ./.github/workflows/therock-test-packages.yml with: project_to_test: ${{ inputs.project_to_test }} amdgpu_families: "gfx94X-dcgpu" test_runs_on: "linux-mi300-1gpu-ossci-rocm" platform: "linux"