Linux arm64 #123
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: Linux arm64 | |
on: | |
workflow_dispatch: | |
inputs: | |
srcrev: | |
description: 'Flutter Engine Commit Hash' | |
required: True | |
default: '' | |
release: | |
description: 'Release' | |
required: false | |
default: 'false' | |
jobs: | |
linux-arm64: | |
runs-on: [self-hosted, linux, x64] | |
env: | |
arch: arm64 | |
linux_cpu: arm64 | |
target_triple: aarch64-unknown-linux-gnu | |
target_sysroot: debian_sid_arm64-sysroot | |
tag_debug: linux-engine-sdk-debug-arm64-${{ inputs.srcrev }} | |
tag_debug_unopt: linux-engine-sdk-debug-unopt-arm64-${{ inputs.srcrev }} | |
tag_release: linux-engine-sdk-release-arm64-${{ inputs.srcrev }} | |
tag_profile: linux-engine-sdk-profile-arm64-${{ inputs.srcrev }} | |
notes_debug: "Flutter Engine - runtime debug SDK" | |
notes_debug_unopt: "Flutter Engine - runtime debug SDK" | |
notes_release: "Flutter Engine - runtime release SDK" | |
notes_profile: "Flutter Engine - runtime profile SDK" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install packages | |
run: | | |
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git | |
- name: Get Flutter Source | |
run: | | |
export PATH=$PATH:$PWD/depot_tools | |
export VPYTHON_VIRTUALENV_ROOT=$PWD/vpython | |
git clone https://github.com/flutter/flutter.git | |
pushd flutter | |
gclient config --spec 'solutions=[{"managed":False,"name":".","url":"https://github.com/flutter/flutter.git","custom_deps":{},"custom_vars":{"download_android_deps":False,"download_windows_deps":False,"download_linux_deps":True},"deps_file":"DEPS","safesync_url":""}]' | |
gclient sync --force --shallow --no-history -R -D --revision ${{ inputs.SRCREV }} -j$(nproc) -v | |
popd | |
# fetch sysroot | |
cd flutter/engine/src | |
build/linux/sysroot_scripts/install-sysroot.py --arch=$arch | |
- name: Patch Flutter Source | |
run: | | |
PATCH_DIR=$PWD/patches | |
cd flutter | |
git apply $PATCH_DIR/0001-clang-toolchain.patch | |
- name: Build Debug | |
working-directory: flutter/engine/src | |
run: | | |
export PATH=$PATH:$PWD/../../../depot_tools | |
export VPYTHON_VIRTUALENV_ROOT=$PWD/../../../vpython | |
CLANG_ROOT=$(find -iname clang++) | |
CLANG_ROOT=$(dirname $CLANG_ROOT) | |
export CLANG_ROOT=$(dirname $CLANG_ROOT) | |
./flutter/tools/gn --runtime-mode=debug \ | |
--embedder-for-target \ | |
--no-build-embedder-examples \ | |
--enable-impeller-3d \ | |
--no-goma --no-rbe \ | |
--no-stripped --no-enable-unittests \ | |
--no-dart-version-git-info \ | |
--linux-cpu $linux_cpu \ | |
--target-os linux \ | |
--target-sysroot $PWD/build/linux/$target_sysroot \ | |
--target-toolchain $PWD/$CLANG_ROOT \ | |
--target-triple $target_triple | |
ninja -C out/linux_debug_$arch | |
- name: Prepare Debug Artifacts | |
run: | | |
scripts/prepare-sdk-$arch.sh flutter/engine/src/out/linux_debug_$arch $PWD/flutter/engine/src/build/linux/$target_sysroot | |
tar czfhv $tag_debug.tar.gz flutter/engine/src/out/linux_debug_$arch/engine-sdk/ | |
sha256sum -b $tag_debug.tar.gz > $tag_debug.tar.gz.sha256 | |
- name: Publish Debug | |
if: ${{ inputs.release != 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: engine-sdk-debug | |
path: | | |
linux-engine-sdk-debug-arm64-${{ inputs.srcrev }}.tar.gz | |
linux-engine-sdk-debug-arm64-${{ inputs.srcrev }}.tar.gz.sha256 | |
- name: Release - Debug Release | |
if: ${{ inputs.release == 'true' }} | |
env: | |
GH_TOKEN: ${{ github.token }} | |
GH_REPO: ${{ github.repository }} | |
run: | | |
gh release delete "$tag_debug" --cleanup-tag -y |true | |
gh release create --draft "$tag_debug" --title "$tag_debug" --notes "$notes_debug" | |
gh release upload "$tag_debug" "$tag_debug.tar.gz" "$tag_debug.tar.gz.sha256" | |
gh release edit "$tag_debug" --draft=false | |
- name: Build Debug Unoptimized | |
working-directory: flutter/engine/src | |
run: | | |
export PATH=$PATH:$PWD/../../../depot_tools | |
export VPYTHON_VIRTUALENV_ROOT=$PWD/../../../vpython | |
CLANG_ROOT=$(find -iname clang++) | |
CLANG_ROOT=$(dirname $CLANG_ROOT) | |
export CLANG_ROOT=$(dirname $CLANG_ROOT) | |
./flutter/tools/gn --runtime-mode=debug \ | |
--unoptimized \ | |
--embedder-for-target \ | |
--no-build-embedder-examples \ | |
--enable-impeller-3d \ | |
--no-goma --no-rbe \ | |
--no-stripped --no-enable-unittests \ | |
--no-dart-version-git-info \ | |
--linux-cpu $linux_cpu \ | |
--target-os linux \ | |
--target-sysroot $PWD/build/linux/$target_sysroot \ | |
--target-toolchain $PWD/$CLANG_ROOT \ | |
--target-triple $target_triple | |
ninja -C out/linux_debug_unopt_$arch | |
- name: Prepare Debug Unoptimized Artifacts | |
run: | | |
scripts/prepare-sdk-$arch.sh flutter/engine/src/out/linux_debug_unopt_$arch $PWD/flutter/engine/src/build/linux/$target_sysroot | |
tar czfhv $tag_debug_unopt.tar.gz flutter/engine/src/out/linux_debug_unopt_$arch/engine-sdk/ | |
sha256sum -b $tag_debug_unopt.tar.gz > $tag_debug_unopt.tar.gz.sha256 | |
- name: Publish Debug Unoptimized | |
if: ${{ inputs.release != 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: engine-sdk-debug-unoptimized | |
path: | | |
linux-engine-sdk-debug-unopt-arm64-${{ inputs.srcrev }}.tar.gz | |
linux-engine-sdk-debug-unopt-arm64-${{ inputs.srcrev }}.tar.gz.sha256 | |
- name: Release - Debug Unoptimized Release | |
if: ${{ inputs.release == 'true' }} | |
env: | |
GH_TOKEN: ${{ github.token }} | |
GH_REPO: ${{ github.repository }} | |
run: | | |
gh release delete "$tag_debug_unopt" --cleanup-tag -y |true | |
gh release create --draft "$tag_debug_unopt" --title "$tag_debug_unopt" --notes "$notes_debug_unopt" | |
gh release upload "$tag_debug_unopt" "$tag_debug_unopt.tar.gz" "$tag_debug_unopt.tar.gz.sha256" | |
gh release edit "$tag_debug_unopt" --draft=false | |
- name: Build Release | |
working-directory: flutter/engine/src | |
run: | | |
export PATH=$PATH:$PWD/../../../depot_tools | |
export VPYTHON_VIRTUALENV_ROOT=$PWD/../../../vpython | |
CLANG_ROOT=$(find -iname clang++) | |
CLANG_ROOT=$(dirname $CLANG_ROOT) | |
export CLANG_ROOT=$(dirname $CLANG_ROOT) | |
./flutter/tools/gn --runtime-mode=release \ | |
--embedder-for-target \ | |
--no-build-embedder-examples \ | |
--enable-impeller-3d \ | |
--no-goma --no-rbe \ | |
--no-stripped --no-enable-unittests \ | |
--no-dart-version-git-info \ | |
--linux-cpu $linux_cpu \ | |
--target-os linux \ | |
--target-sysroot $PWD/build/linux/$target_sysroot \ | |
--target-toolchain $PWD/$CLANG_ROOT \ | |
--target-triple $target_triple | |
ninja -C out/linux_release_$arch | |
- name: Prepare Release Artifacts | |
run: | | |
scripts/prepare-sdk-$arch.sh flutter/engine/src/out/linux_release_$arch $PWD/flutter/engine/src/build/linux/$target_sysroot | |
tar czfhv $tag_release.tar.gz flutter/engine/src/out/linux_release_$arch/engine-sdk/ | |
sha256sum -b $tag_release.tar.gz > $tag_release.tar.gz.sha256 | |
- name: Publish Release | |
if: ${{ inputs.release != 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: engine-sdk-release | |
path: | | |
linux-engine-sdk-release-arm64-${{ inputs.srcrev }}.tar.gz | |
linux-engine-sdk-release-arm64-${{ inputs.srcrev }}.tar.gz.sha256 | |
- name: Release - Publish Release | |
if: ${{ inputs.release == 'true' }} | |
env: | |
GH_TOKEN: ${{ github.token }} | |
GH_REPO: ${{ github.repository }} | |
run: | | |
gh release delete "$tag_release" --cleanup-tag -y |true | |
gh release create --draft "$tag_release" --title "$tag_release" --notes "$notes_release" | |
gh release upload "$tag_release" "$tag_release.tar.gz" "$tag_release.tar.gz.sha256" | |
gh release edit "$tag_release" --draft=false | |
- name: Build Profile | |
working-directory: flutter/engine/src | |
run: | | |
export PATH=$PATH:$PWD/../../../depot_tools | |
export VPYTHON_VIRTUALENV_ROOT=$PWD/../../../vpython | |
CLANG_ROOT=$(find -iname clang++) | |
CLANG_ROOT=$(dirname $CLANG_ROOT) | |
export CLANG_ROOT=$(dirname $CLANG_ROOT) | |
./flutter/tools/gn --runtime-mode=profile \ | |
--embedder-for-target \ | |
--no-build-embedder-examples \ | |
--enable-impeller-3d \ | |
--no-goma --no-rbe \ | |
--no-stripped --no-enable-unittests \ | |
--no-dart-version-git-info \ | |
--linux-cpu $linux_cpu \ | |
--target-os linux \ | |
--target-sysroot $PWD/build/linux/$target_sysroot \ | |
--target-toolchain $PWD/$CLANG_ROOT \ | |
--target-triple $target_triple | |
ninja -C out/linux_profile_$arch | |
- name: Prepare Profile Artifacts | |
run: | | |
scripts/prepare-sdk-$arch.sh flutter/engine/src/out/linux_profile_$arch $PWD/flutter/engine/src/build/linux/$target_sysroot | |
tar czfhv $tag_profile.tar.gz flutter/engine/src/out/linux_profile_$arch/engine-sdk/ | |
sha256sum -b $tag_profile.tar.gz > $tag_profile.tar.gz.sha256 | |
- name: Publish Profile | |
if: ${{ inputs.release != 'true' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: engine-sdk-profile | |
path: | | |
linux-engine-sdk-profile-arm64-${{ inputs.srcrev }}.tar.gz | |
linux-engine-sdk-profile-arm64-${{ inputs.srcrev }}.tar.gz.sha256 | |
- name: Release - Publish Profile | |
if: ${{ inputs.release == 'true' }} | |
env: | |
GH_TOKEN: ${{ github.token }} | |
GH_REPO: ${{ github.repository }} | |
run: | | |
gh release delete "$tag_profile" --cleanup-tag -y |true | |
gh release create --draft "$tag_profile" --title "$tag_profile" --notes "$notes_profile" | |
gh release upload "$tag_profile" "$tag_profile.tar.gz" "$tag_profile.tar.gz.sha256" | |
gh release edit "$tag_profile" --draft=false |