# Copyright Advanced Micro Devices, Inc. # SPDX-License-Identifier: MIT name: Build Multi-Arch Tarballs on: workflow_dispatch: inputs: artifact_run_id: description: "Run ID to fetch artifacts from (defaults to current run)" type: string default: "" artifact_github_repo: description: "GitHub repository for artifact_run_id" type: string default: ROCm/TheRock dist_amdgpu_families: description: "Semicolon-separated list of GPU families (e.g. 'gfx94X-dcgpu;gfx110X-all')" type: string platform: type: choice description: "Platform to fetch artifacts for" options: - linux - windows default: "linux" package_version: description: "ROCm package version string (e.g. '7.13.0.dev0+abc123')" type: string release_type: description: 'Release type: "ci" or "dev"' type: choice options: - ci - dev default: ci include_test_tarballs: description: "Also build -tests tarballs that include test artifacts" type: boolean default: true workflow_call: inputs: artifact_run_id: type: string default: "" artifact_github_repo: type: string default: "" dist_amdgpu_families: type: string required: true platform: type: string default: "linux" package_version: type: string required: true release_type: type: string default: ci include_test_tarballs: type: boolean default: true repository: description: "Repository to checkout. Defaults to github.repository." type: string default: "" ref: description: "Branch, tag, or SHA to checkout. Defaults to the triggering ref." type: string default: "" outputs: tarball_urls: description: Tarball URLs keyed by family value: ${{ jobs.build_tarballs.outputs.tarball_urls }} permissions: contents: read run-name: Build Multi-Arch Tarballs (${{ inputs.dist_amdgpu_families }}, ${{ inputs.platform }}) jobs: build_tarballs: name: Build Tarballs runs-on: ${{ github.repository_owner == 'ROCm' && 'aws-linux-scale-rocm-prod-rc' || 'ubuntu-24.04' }} container: image: python:3.12-slim permissions: id-token: write outputs: tarball_urls: ${{ steps.upload.outputs.tarball_urls }} env: ARTIFACT_RUN_ID: "${{ inputs.artifact_run_id != '' && inputs.artifact_run_id || github.run_id }}" RELEASE_TYPE: ${{ inputs.release_type }} steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: repository: ${{ inputs.repository || github.repository }} ref: ${{ inputs.ref || github.ref_name }} - name: Install Python requirements run: pip install -r requirements.txt - name: Build tarballs shell: bash run: | EXTRA_ARGS=() if [[ "${{ inputs.include_test_tarballs }}" == "true" ]]; then EXTRA_ARGS+=(--include-test-tarballs) fi python build_tools/build_tarballs.py \ --run-id="${{ env.ARTIFACT_RUN_ID }}" \ --run-github-repo="${{ inputs.artifact_github_repo }}" \ --dist-amdgpu-families="${{ inputs.dist_amdgpu_families }}" \ --platform="${{ inputs.platform }}" \ --package-version="${{ inputs.package_version }}" \ --output-dir="${{ github.workspace }}/tarballs" \ "${EXTRA_ARGS[@]}" - name: Configure AWS Credentials uses: ./.github/actions/configure_aws_artifacts_credentials with: release_type: ${{ inputs.release_type }} - name: Upload tarballs id: upload run: | python build_tools/github_actions/upload_tarballs.py \ --input-tarballs-dir="${{ github.workspace }}/tarballs" \ --run-id="${{ github.run_id }}" \ --platform="${{ inputs.platform }}" \ --release-type="${{ inputs.release_type }}"