tools/corrosion/.github/actions/setup_test/action.yaml
branchtransitional_engine
changeset 16067 d903f8d2395a
parent 16065 7b8d96fc8799
--- a/tools/corrosion/.github/actions/setup_test/action.yaml	Wed Sep 18 14:10:51 2024 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-name: Setup Corrosion Tests
-description: "Internal helper action to setup the Environment for Corrosions tests"
-inputs:
-  target_arch:
-    required: true
-    description: CMake target architecture
-  abi:
-    required: false
-    description: msvc, gnu or darwin
-    default: default
-  cmake:
-    required: true
-    description: Cmake version
-  rust:
-    required: true
-    description: Rust version
-  generator:
-    required: true
-    description: CMake Generator (e.g Ninja)
-  build_dir:
-    required: true
-    description: Path of the CMake build directory
-  configure_params:
-    required: false
-    description: Additional parameters to pass to CMake configure step
-  install_path:
-    required: false
-    description: CMake install prefix
-    default: ""
-  compiler:
-    required: false
-    description: Compiler to use. Valid options are clang, gcc, cl, default, or an empty string.
-    default: "default"
-
-runs:
-  using: composite
-  steps:
-    - name: Cache Cargo registry
-      id: cache-registry
-      uses: actions/cache@v4
-      with:
-        path: ~/.cargo/registry
-        key: ${{ runner.os }}-cargo-registry
-    - name: Determine Rust OS
-      id: determine_rust_os
-      shell: bash
-      run: |
-        if [ "${{ runner.os }}" == "Windows" ]; then
-          echo "os=pc-windows" >> $GITHUB_OUTPUT
-          echo "host_abi=msvc" >> $GITHUB_OUTPUT
-        elif [ "${{ runner.os }}" == "Linux" ]; then
-          echo "os=unknown-linux" >> $GITHUB_OUTPUT
-          echo "host_abi=gnu" >> $GITHUB_OUTPUT
-        elif [ "${{ runner.os }}" == "macOS" ]; then
-          echo "os=apple" >> $GITHUB_OUTPUT
-          echo "host_abi=darwin" >> $GITHUB_OUTPUT
-        fi
-    - name: Determine Rust ABI
-      id: determine_abi
-      shell: bash
-      run: |
-        if [[ ! ( -z "${{ inputs.abi }}" || "${{ inputs.abi }}" == "default" ) ]]; then
-           echo "abi=${{ inputs.abi }}" >> $GITHUB_OUTPUT
-         elif [ "${{ runner.os }}" == "Linux" ]; then
-           echo "abi=gnu" >> $GITHUB_OUTPUT
-         elif [ "${{ runner.os }}" == "macOS" ]; then
-           echo "abi=darwin" >> $GITHUB_OUTPUT
-         else 
-           echo "abi=msvc" >> $GITHUB_OUTPUT
-         fi
-    - name: Determine if Cross-compiling
-      id: determine_cross_compile
-      shell: bash
-      run: |
-        # For now it is safe to assume that all github runners are x86_64
-        if [[ "${{ inputs.target_arch }}" != "x86_64" ]]; then
-          echo "Cross-Compiling to ${{ inputs.target_arch }}"
-          if [[ "${{ runner.os }}" == "macOS" ]]; then
-            echo "system_name=-DCMAKE_SYSTEM_NAME=Darwin" >> $GITHUB_OUTPUT
-          else
-            # Either `Linux` or `Windows`
-            echo "system_name=-DCMAKE_SYSTEM_NAME=${{ runner.os }}" >> $GITHUB_OUTPUT
-          fi
-        fi
-    - name: Pick Compiler
-      id: pick_compiler
-      shell: bash
-      run: > 
-        ./.github/scripts/determine_compiler.sh 
-        "${{ inputs.compiler }}"
-        "${{ runner.os }}"
-        "${{ steps.determine_abi.outputs.abi }}"
-        "${{steps.determine_cross_compile.outputs.system_name}}"
-        "${{inputs.target_arch}}"
-    - name: Pick Generator
-      id: pick_generator
-      shell: bash
-      run: |
-        if [ "${{ inputs.generator }}" == "ninja" ]; then
-          echo "generator=-GNinja" >> $GITHUB_OUTPUT
-        elif [ "${{ inputs.generator }}" == "ninja-multiconfig" ];then
-          echo "generator=-GNinja Multi-Config" >> $GITHUB_OUTPUT
-        fi
-    - name: Arch Flags
-      id: arch_flags
-      shell: bash
-      run: | # Cross-compiling is currently only supported on Windows+MSVC with the default generator
-        if [ "${{ runner.os }}" == "Windows" ]; then
-          if [ "${{inputs.generator}}" == "default" ]; then
-            if [ "${{ inputs.target_arch }}" == "x86_64" ]; then
-              echo "msvc=amd64" >> $GITHUB_OUTPUT
-              echo "cmake=-Ax64" >> $GITHUB_OUTPUT
-            elif [ "${{ inputs.target_arch }}" == "i686" ]; then
-              echo "msvc=amd64_x86" >> $GITHUB_OUTPUT
-              echo "cmake=-AWin32" >> $GITHUB_OUTPUT
-            elif [ "${{ inputs.target_arch }}" == "aarch64" ]; then
-              echo "msvc=amd64_arm64" >> $GITHUB_OUTPUT
-              echo "cmake=-AARM64" >> $GITHUB_OUTPUT
-            fi
-          elif [ "${{inputs.generator}}" == "ninja" ]; then
-            # We don't do cross-compiling builds with Ninja
-            # Todo: Why not (cross-compile)?
-            echo "msvc=amd64" >> $GITHUB_OUTPUT
-          fi
-        elif [ "${{ runner.os }}" == "Linux" ]; then
-          echo "cmake=-DRust_CARGO_TARGET=${{inputs.target_arch}}-${{steps.determine_rust_os.outputs.os}}-${{steps.determine_abi.outputs.abi}}" >> $GITHUB_OUTPUT
-        fi
-    - name: Determine Install Prefix
-      id: install_prefix
-      shell: bash
-      run: |
-        if [ ! -z "${{ inputs.install_path }}" ]; then
-          echo "install_path=-DCMAKE_INSTALL_PREFIX=${{ inputs.install_path }}" >> $GITHUB_OUTPUT
-        fi
-    - name: Setup MSVC Development Environment
-      uses: ilammy/msvc-dev-cmd@v1
-      with:
-        arch: ${{ steps.arch_flags.outputs.msvc }}
-      if: ${{ 'msvc' == steps.determine_abi.outputs.abi }}
-    - name: Install CMake
-      uses: lukka/get-cmake@519de0c7b4812477d74976b2523a9417f552d126
-      with:
-        cmakeVersion: "${{ inputs.cmake }}"
-        ninjaVersion: "~1.10.0"
-    - name: Install Rust
-      id: install_rust
-      uses: dtolnay/rust-toolchain@master
-      with:
-        toolchain: ${{inputs.rust}}
-        targets: ${{inputs.target_arch}}-${{steps.determine_rust_os.outputs.os}}-${{steps.determine_abi.outputs.abi}}
-    - name: Install Cross Compiler
-      shell: bash
-      run: |
-        if [[ "${{ inputs.target_arch }}" != 'x86_64' ]]; then
-          echo "::group::apt-install"
-          sudo apt-get update
-          sudo apt-get install -y g++-$(echo "${{inputs.target_arch}}" | tr _ -)-linux-gnu
-          echo "::endgroup::"
-        fi
-      if: ${{ 'Linux' == runner.os }}
-    - name: Determine Configure Shell
-      id: configure_shell
-      shell: bash
-      run: |
-        if [ "${{ runner.os }}" == "Windows" ]; then
-            echo "shell=pwsh" >> $GITHUB_OUTPUT
-        else
-            echo "shell=bash" >> $GITHUB_OUTPUT
-        fi
-    - name: Configure
-      shell: ${{steps.configure_shell.outputs.shell}}
-      run: >
-        cmake
-        "-S."
-        "-B${{inputs.build_dir}}"
-        "-DCORROSION_VERBOSE_OUTPUT=ON"
-        "${{steps.arch_flags.outputs.cmake}}"
-        "${{steps.pick_compiler.outputs.c_compiler}}"
-        "${{steps.pick_compiler.outputs.cxx_compiler}}"
-        "${{steps.determine_cross_compile.outputs.system_name}}"
-        "${{steps.pick_generator.outputs.generator}}"
-        ${{steps.install_prefix.outputs.install_path}}
-        "-DRust_TOOLCHAIN=${{steps.install_rust.outputs.name}}"
-        ${{ inputs.configure_params }}