name: hipfile-ci run-name: Main hipFile CI workflow to coordinate jobs for a single platform on: workflow_call: inputs: ci_image: description: "Full CI image name & tag" required: true type: string ci_image_nvidia: description: "Full CI image name & nvidia tag" required: true type: string cxx_compiler: description: "C++ compiler to use" required: true type: string cxx_standard: description: "C++ standard to use for building" required: true type: number platform: required: true type: string rocm_version: description: "Target ROCm MAJOR.MINOR.PATCH Version" required: true type: string permissions: contents: read packages: read jobs: build_and_test: uses: ./.github/workflows/hipfile-build.yml with: ci_image: ${{ inputs.ci_image }} cxx_compiler: ${{ inputs.cxx_compiler }} cxx_standard: ${{ inputs.cxx_standard }} generate_coverage: ${{ inputs.cxx_standard == 20 && inputs.cxx_compiler == 'amdclang++' }} platform: ${{ inputs.platform }} rocm_version: ${{ inputs.rocm_version }} upload_artifacts: true python_bindings: needs: [build_and_test] uses: ./.github/workflows/hipfile-python-bindings.yml with: ais_hipfile_pkg_dev_filename: ${{ needs.build_and_test.outputs.ais_hipfile_pkg_dev_filename }} ais_hipfile_pkg_filename: ${{ needs.build_and_test.outputs.ais_hipfile_pkg_filename }} ci_image: ${{ needs.build_and_test.outputs.ci_image }} cxx_compiler: ${{ inputs.cxx_compiler }} cxx_standard: ${{ inputs.cxx_standard }} platform: ${{ inputs.platform }} rocm_version: ${{ inputs.rocm_version }} AIS_system_tests: needs: [build_and_test] uses: ./.github/workflows/hipfile-ci-system.yml with: ais_hipfile_pkg_dev_filename: ${{ needs.build_and_test.outputs.ais_hipfile_pkg_dev_filename }} ais_hipfile_pkg_filename: ${{ needs.build_and_test.outputs.ais_hipfile_pkg_filename }} ci_image: ${{ needs.build_and_test.outputs.ci_image }} cxx_compiler: ${{ inputs.cxx_compiler }} cxx_standard: ${{ inputs.cxx_standard }} platform: ${{ inputs.platform }} rocm_version: ${{ inputs.rocm_version }} build_and_test_NVIDIA: # NVIDIA can't build with amdclang++; its meaningful compilers (clang++, g++) # arrive via the cxx_compiler axis, so skip the amdclang++ legs here. Only # run on the default C++20 standard. if: ${{ !startsWith(inputs.rocm_version, '7.13.') && inputs.rocm_version != 'nightly' && inputs.cxx_compiler != 'amdclang++' && inputs.cxx_standard == 20 }} uses: ./.github/workflows/hipfile-build-nvidia.yml with: ci_image: ${{ inputs.ci_image_nvidia }} cxx_compiler: ${{ inputs.cxx_compiler }} platform: ${{ inputs.platform }} rocm_version: ${{ inputs.rocm_version }}