Skip to content

Commit

Permalink
chore: Build linux aot cross
Browse files Browse the repository at this point in the history
  • Loading branch information
jeromelaban authored Aug 2, 2024
1 parent b77c25a commit 0460059
Showing 1 changed file with 108 additions and 3 deletions.
111 changes: 108 additions & 3 deletions .github/workflows/runtime-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ concurrency:

jobs:
##
## Build Job
## Windows AOT Cross
##
build_aot_windows_job:
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
Expand Down Expand Up @@ -75,7 +75,7 @@ jobs:
cd runtime
.\build.cmd -arch wasm -os browser -subset mono+libs /p:RuntimeFlavor=Mono -c $env:BUILD_CONFIGURATION $env:ADDITIONAL_BUILD_ARGS "/p:MonoWasmBuildVariant=singlethread" /p:TestAssemblies=false /p:CrossBuild=false /bl:ci-artifacts\msbuild.binlog
- name: Create artifact structure
- name: Create NuGet Package
run: |
New-Item -ItemType Directory -Force -Path $env:GITHUB_WORKSPACE/nuget/tools
New-Item -ItemType Directory -Force -Path $env:GITHUB_WORKSPACE/ci-output
Expand All @@ -92,6 +92,111 @@ jobs:
name: nuget
path: ci-output

##
## Build Linux AOT Cross
##
build_aot_linux_job:
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
container: 'mcr.microsoft.com/dotnet/sdk:8.0.303-jammy'

strategy:
matrix:
BUILD_CONFIGURATION: [Release]

steps:
- uses: actions/checkout@v2
with:
submodules: true
fetch-depth: 0

- name: Setup GitVersion
uses: gittools/actions/gitversion/[email protected]
with:
versionSpec: ${{ env.GitVersion_Version }}

- name: GitVersion
id: gitversion
uses: gittools/actions/gitversion/[email protected]
with:
useConfigFile: true
configFilePath: build/gitversion.yml

- name: Setup .NET SDK
uses: actions/[email protected]
with:
dotnet-version: 8.0.303

- name: Setup .NET SDK
uses: actions/[email protected]
with:
dotnet-version: ${{ env.DOTNETSDK_VERSION }}

- name: Install dependencies
run: |
set -e
apt-get update
apt-get install -y sudo
sudo apt-get install -y python3-pip locales p7zip-full zip
sudo apt-get install -y lsb-release wget software-properties-common gnupg
sudo apt-get install -y unzip zip libc6 ninja-build \
libtool build-essential curl git \
libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev \
libssl-dev libnuma-dev libkrb5-dev zlib1g-dev locales
sudo locale-gen en_US.UTF-8
- name: Install LLVM
run: |
set -e
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 18
- name: Trust My Directory
run: git config --global --add safe.directory /__w/Uno.DotnetRuntime.WebAssembly/Uno.DotnetRuntime.WebAssembly

- name: Set Variable from current Commit
run: |
set -e
echo "BUILD_CONFIGURATION=${{ matrix.BUILD_CONFIGURATION }}" >> $GITHUB_ENV
- name: Clone dotnet/runtime
run: |
git clone --recursive https://github.com/dotnet/runtime
- run: ./scripts/apply-patches.ps1
name: Apply uno-specific patches
shell: pwsh

- name: Install cmake
run: |
set -e
wget -qO- https://github.com/Kitware/CMake/releases/download/v3.27.2/cmake-3.27.2-linux-x86_64.tar.gz | \
sudo tar --strip-components=1 -xz -C /usr/local
- name: Build Wasm Runtime
run: |
set -e
cd runtime
./build.sh -arch wasm -os browser -c $BUILD_CONFIGURATION $ADDITIONAL_BUILD_ARGS /p:TestAssemblies=false
- name: Create NuGet Package
run: |
mkdir -p $GITHUB_WORKSPACE/nuget/tools
mkdir -p $GITHUB_WORKSPACE/ci-output
# Move cross compiler to appropriate location
move $GITHUB_WORKSPACE/runtime/artifacts/bin/mono/Browser.wasm.Release/cross $GITHUB_WORKSPACE/nuget/tools
cd $env:GITHUB_WORKSPACE/nuget
dotnet pack Uno.NETCore.App.Runtime.AOT.Cross.browser-wasm.csproj /p:OutputPath=$GITHUB_WORKSPACE/ci-output "/p:Version=${{ steps.gitversion.outputs.semVer }}"
- uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: nuget
path: ci-output

##
## Build Job
##
Expand Down Expand Up @@ -269,7 +374,7 @@ jobs:
name: Sign Package
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release/')) }}
runs-on: windows-latest
needs: [package_job,build_aot_windows_job]
needs: [package_job,build_aot_windows_job,build_aot_linux_job]
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down

0 comments on commit 0460059

Please sign in to comment.