chore: Update to latest main #703
This file contains 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: runtime CI | |
on: | |
push: | |
branches: | |
- master | |
- release/** | |
pull_request: | |
types: [opened, synchronize, reopened, closed] | |
branches: | |
- master | |
- release/** | |
env: | |
DOTNETRUNTIME_COMMIT: be32947d322ae71526ad1dde412a1dca44ea4fba | |
DOTNETSDK_VERSION: 9.0.100-preview.6.24328.19 | |
ADDITIONAL_BUILD_ARGS: '/p:MonoEnableAssertMessages=true /p:WasmEnableES6=true /p:WasmExceptionHandling=true' | |
concurrency: | |
group: ${{github.workflow}} - ${{github.ref}} | |
cancel-in-progress: true | |
jobs: | |
## | |
## Build Job | |
## | |
build_aot_windows_job: | |
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed') | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
BUILD_CONFIGURATION: [Release] | |
steps: | |
- name: Setup .NET SDK | |
uses: actions/[email protected] | |
with: | |
dotnet-version: ${{ env.DOTNETSDK_VERSION }} | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Set Variable from current Commit | |
run: | | |
Invoke-Expression "git rev-parse --short HEAD" | Out-String -NoNewLine -OutVariable CURRENT_COMMIT | |
echo "CURRENT_COMMIT=$CURRENT_COMMIT" >> $env:GITHUB_ENV | |
echo "CurrentCommit=$CURRENT_COMMIT" | |
echo "BUILD_CONFIGURATION=${{ matrix.BUILD_CONFIGURATION }}" >> $env:GITHUB_ENV | |
echo "MONO_WASM_THREADS=${{ matrix.MONO_WASM_THREADS }}" >> $env:GITHUB_ENV | |
- name: Clone dotnet/runtime | |
run: | | |
git clone --recursive https://github.com/dotnet/runtime -c core.longpaths=true | |
- run: ./scripts/apply-patches.ps1 | |
name: Apply uno-specific patches | |
shell: pwsh | |
- name: 'Setup Ninja' | |
run: | | |
choco install ninja | |
- name: Build Wasm Runtime | |
run: | | |
$env:MonoEnableAssertMessages=true # enable emsdk assert messages | |
cd runtime | |
.\build.cmd -arch wasm -os browser /p:RuntimeFlavor=Mono -c $env:BUILD_CONFIGURATION $env:ADDITIONAL_BUILD_ARGS /p:TestAssemblies=false "/p:MonoWasmBuildVariant=$env:MONO_WASM_THREADS" /p:CrossBuild=false /bl:ci-artifacts\msbuild.binlog | |
- name: Create artifact structure | |
run: | | |
New-Item -ItemType Directory -Force -Path ./runtime/artifacts/packages/Release/Shipping/uno | |
cd ./runtime/artifacts/packages/Release/Shipping/uno | |
# Move cross compiler to appropriate location | |
move $env:GITHUB_WORKSPACE\runtime\artifacts\bin\mono\Browser.wasm.Release\cross runtimes\browser-wasm\native | |
- name: Zip Archive | |
run: | | |
Invoke-Expression "Get-Location | select -ExpandProperty Path" | Out-String -NoNewLine -OutVariable Current_Path | |
$ARTIFACTS_FOLDER="$Current_Path\ci-artifacts" | |
mkdir -p $ARTIFACTS_FOLDER | |
cd .\runtime\artifacts\packages\Release\Shipping\uno | |
Compress-Archive -DestinationPath $ARTIFACTS_FOLDER\dotnet-aot-wasm-windows-$env:CURRENT_COMMIT-$env:BASE_DOTNET_SHORT_COMMIT-${{ github.run_id }}-$env:BUILD_CONFIGURATION$archiveConfiguration.zip -Path * | |
- uses: actions/upload-artifact@v2 | |
if: ${{ always() }} | |
with: | |
name: wasm | |
path: ci-artifacts | |
## | |
## Build Job | |
## | |
build_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] | |
MONO_WASM_THREADS: ['multithread', 'singlethread'] | |
steps: | |
- 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 unzip zip libc6 ninja-build | |
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 | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Set Variable from current Commit | |
run: | | |
set -e | |
CURRENT_COMMIT=`git rev-parse --short HEAD` | |
echo "CURRENT_COMMIT=$CURRENT_COMMIT" >> $GITHUB_ENV | |
echo "CurrentCommit=$CURRENT_COMMIT" | |
echo "BUILD_CONFIGURATION=${{ matrix.BUILD_CONFIGURATION }}" >> $GITHUB_ENV | |
echo "MONO_WASM_THREADS=${{ matrix.MONO_WASM_THREADS }}" >> $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 "/p:MonoWasmBuildVariant=$MONO_WASM_THREADS" | |
- name: Create artifact structure | |
run: | | |
set -e | |
cd ./runtime/artifacts/packages/Release/Shipping | |
rm *.symbols.nupkg | |
rm *.Templates.*.nupkg | |
rm *ToolChain.net6.Manifest*.nupkg | |
rm *ToolChain.net7.Manifest*.nupkg | |
rm *ToolChain.net8.Manifest*.nupkg | |
unzip -o '*.nupkg' -d uno | |
cd uno | |
rm *.nuspec | |
rm -fR _rels | |
rm -fR package | |
- name: Zip Archive | |
run: | | |
if [ '${{ matrix.MONO_WASM_THREADS }}' != 'singlethread' ]; then | |
ARCHIVE_CONFIGURATION="-threads"; | |
fi | |
ARTIFACTS_FOLDER=`pwd`/ci-artifacts | |
mkdir -p $ARTIFACTS_FOLDER | |
cd ./runtime/artifacts/packages/Release/Shipping/uno | |
/usr/bin/zip -r $ARTIFACTS_FOLDER/sdk-${{ matrix.MONO_WASM_THREADS }}.zip * | |
- uses: actions/upload-artifact@v2 | |
if: ${{ always() }} | |
with: | |
name: wasm-sdk | |
path: ci-artifacts | |
package_job: | |
needs: [build_linux_job,build_aot_windows_job] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Setup .NET SDK | |
uses: actions/[email protected] | |
with: | |
dotnet-version: 8.0.303 | |
- name: Download package | |
uses: actions/download-artifact@v2 | |
with: | |
name: wasm-sdk | |
path: nuget | |
- name: Create NuGet SDK Packages | |
run: | | |
cd nuget | |
dotnet pack /p:OutputPath=$GITHUB_WORKSPACE/ci-output | |
- uses: actions/upload-artifact@v2 | |
if: ${{ always() }} | |
with: | |
name: nuget | |
path: ci-output | |
## | |
## Release Job | |
## | |
release_job: | |
if: github.event_name == 'push' | |
needs: [package_job] | |
runs-on: ubuntu-latest | |
environment: | |
name: Release | |
steps: | |
- name: Download package | |
uses: actions/download-artifact@v2 | |
with: | |
name: wasm | |
- uses: azure/login@v1 | |
with: | |
creds: ${{ secrets.AZURE_STORAGE_CREDENTIALS }} | |
- name: Upload to blob storage | |
uses: azure/CLI@v1 | |
with: | |
inlineScript: | | |
az storage blob upload-batch --account-name unowasmbootstrap -d 'runtime' -s . | |