linux-riscv64 dotnet-runtime aot #150
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: linux-riscv64 dotnet-runtime aot | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| runtimeForkName: | |
| description: fork | |
| required: true | |
| default: dotnet | |
| runtimeBranchName: | |
| description: branch | |
| required: true | |
| default: main | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Maximize build space | |
| uses: AdityaGarg8/[email protected] | |
| with: | |
| remove-dotnet: 'true' | |
| remove-android: 'true' | |
| remove-haskell: 'true' | |
| remove-codeql: 'true' | |
| remove-cached-tools: 'true' | |
| - name: runtime, libs and nativeaot smoke tests build | |
| run: | | |
| git clone https://github.com/${{ github.event.inputs.runtimeForkName }}/runtime --branch ${{ github.event.inputs.runtimeBranchName }} --single-branch --depth 1 | |
| echo "git HEAD is at: $(git -C runtime rev-parse HEAD)" | |
| docker run --rm -v$(pwd)/runtime:/runtime -e ROOTFS_DIR=/crossrootfs/riscv64 \ | |
| mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net11.0-cross-riscv64 \ | |
| sh -c ' | |
| /runtime/build.sh -ci -arch riscv64 -cross -s clr+libs+host+packs+tools.cdac -c Debug -rc Checked --keepnativesymbols true --bootstrap && | |
| SysRoot=$ROOTFS_DIR LinkerFlavor=lld /runtime/src/tests/build.sh -ci -riscv64 -cross -nativeaot -tree:nativeaot -Checked -p:TasksConfiguration=Debug -p:LibrariesConfiguration=Debug -keepnativesymbols -p:UseLocalAppHostPack=true -p:UseNativeAotForComponents=true -p:TestNativeAot=true | |
| ' | |
| - name: run tests in qemu | |
| run: | | |
| docker run --privileged --rm tonistiigi/binfmt --install all | |
| docker run --rm -v$(pwd)/runtime:/runtime -e ROOTFS_DIR=/crossrootfs/riscv64 -e DOTNET_RuntimeAsync=1 \ | |
| -e CORE_ROOT=/runtime/artifacts/tests/coreclr/linux.riscv64.Checked/Tests/Core_Root \ | |
| --platform linux/riscv64 ubuntu \ | |
| sh -c ' | |
| apt update && apt install -y file llvm && | |
| mkdir -p $CORE_ROOT/SuperFileCheck/runtimes/linux-riscv64/native && | |
| ln -s /usr/bin/llvm-dwarfdump $CORE_ROOT/SuperFileCheck/runtimes/linux-riscv64/native; | |
| fail=0; | |
| find /runtime/artifacts/tests/coreclr/linux.riscv64.Checked/nativeaot/SmokeTests -path "*/native/*" -type f -exec file {} \; | | |
| grep ELF.*executable | while IFS=: read -r test _; do | |
| echo "Running $test..."; | |
| cd "$(dirname "$test")/.." | |
| "$test" | |
| exitcode=$? | |
| if [ "$exitcode" -ne 100 ]; then | |
| echo "$test failed with exit code $exitcode" | |
| fail=1 | |
| fi | |
| done | |
| if [ "$fail" -eq 1 ]; then exit 1; fi | |
| ' |