name: TheRock CI Windows on: workflow_call: inputs: cmake_options: type: string projects_to_test: type: string test_type: type: string default: "standard" package_version: type: string required: true amdgpu_families: type: string default: "gfx1151" test_runs_on: type: string default: "windows-gfx1151-gpu-rocm" build_runs_on: type: string default: "azure-windows-scale-rocm" permissions: contents: read jobs: therock-build-windows: name: Build Windows Packages runs-on: ${{ inputs.build_runs_on }} outputs: AMDGPU_FAMILIES: ${{ env.AMDGPU_FAMILIES }} permissions: contents: read id-token: write defaults: run: shell: bash env: BUILD_DIR: B:\build CCACHE_DIR: "${{ github.workspace }}/.container-cache/ccache" CCACHE_MAXSIZE: "700M" AMDGPU_FAMILIES: ${{ inputs.amdgpu_families }} steps: - name: "Checking out repository for rocm-systems" uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Checkout TheRock repository uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: "ROCm/TheRock" path: "TheRock" ref: release/therock-10.0 - name: Set up Python uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 with: python-version: '3.12' - name: Install python deps run: | pip install -r TheRock/requirements.txt - name: Patch rocm-systems run: | # Remove patches here if they cannot be applied cleanly, and they have not been deleted from TheRock repo # rm ./TheRock/patches/amd-mainline/rocm-systems/0003-Use-is_versioned-true-consistently-in-both-Comgr-Loa.patch - name: Install requirements run: | choco source disable -n=chocolatey choco source add -n=internal -s http://10.0.167.96:8081/repository/choco-group/ --priority=1 choco install --no-progress -y ccache # ninja pinned due to a bug in the 1.13.0 release: # https://github.com/ninja-build/ninja/issues/2616 choco install --no-progress -y ninja --version 1.12.1 choco install --no-progress -y strawberryperl echo "$PATH;C:\Strawberry\c\bin" >> $GITHUB_PATH choco install --no-progress -y awscli echo "$PATH;C:\Program Files\Amazon\AWSCLIV2" >> $GITHUB_PATH choco install --no-progress -y pkgconfiglite - uses: iterative/setup-dvc@4bdfd2b0f6f1ad7e08afadb03b1a895c352a5239 # v2.0.0 with: version: '3.62.0' # After other installs, so MSVC get priority in the PATH. - name: Configure MSVC uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 - name: Runner health status run: | ccache --zero-stats python ./TheRock/build_tools/health_status.py - name: Fetch sources timeout-minutes: 30 run: | git config --global core.longpaths true python ./TheRock/build_tools/fetch_sources.py --jobs 12 --no-include-rocm-systems dvc pull - name: Configure Projects env: cmake_preset: windows-release amdgpu_families: ${{ env.AMDGPU_FAMILIES }} package_version: ${{ inputs.package_version }} extra_cmake_options: "-DTHEROCK_ROCM_SYSTEMS_SOURCE_DIR=../ -DTHEROCK_ENABLE_ML_LIBS=OFF ${{ inputs.cmake_options }}" run: | # clear cache before build and after download ccache -z python TheRock/build_tools/github_actions/build_configure.py - name: Build therock-artifacts and therock-dist run: cmake --build "${{ env.BUILD_DIR }}" --target therock-artifacts therock-dist -- -k 0 - name: Report if: ${{ !cancelled() }} run: | echo "Build dir:" echo "------------" ls -lh "${{ env.BUILD_DIR }}" echo "Artifacts:" echo "----------" du -h -d 1 "${{ env.BUILD_DIR }}"/artifacts echo "CCache Stats:" echo "-------------" ccache -s - name: "Build size report" if: always() shell: powershell run: | $fs = Get-PSDrive -PSProvider "FileSystem" $fsout = $fs | Select-Object -Property Name,Used,Free,Root $fsout | % {$_.Used/=1GB;$_.Free/=1GB;$_} | Write-Host get-disk | Select-object @{Name="Size(GB)";Expression={$_.Size/1GB}} | Write-Host - name: Configure AWS Credentials if: ${{ always() && !github.event.pull_request.head.repo.fork }} 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-ci-external special-characters-workaround: true - name: Push artifacts run: | python3 TheRock/build_tools/artifact_manager.py push \ --run-id ${{ github.run_id }} \ --build-dir=${{ env.BUILD_DIR }} \ --stage=all - name: Post Build Upload if: always() run: | python TheRock/build_tools/github_actions/post_build_upload.py \ --run-id ${{ github.run_id }} \ --artifact-group ${{ env.AMDGPU_FAMILIES }} \ --build-dir ${{ env.BUILD_DIR }} \ --upload therock-test-windows: name: "Test" needs: [therock-build-windows] uses: ./.github/workflows/therock-test-packages.yml with: projects_to_test: ${{ inputs.projects_to_test }} test_type: ${{ inputs.test_type }} amdgpu_families: ${{ inputs.amdgpu_families }} test_runs_on: ${{ inputs.test_runs_on }} platform: "windows"