(CI) factor out shared setup into standalone action

This commit is contained in:
Nick Fisher
2025-06-25 16:23:09 +08:00
parent f4b473b9ae
commit cb4479d8ce
2 changed files with 59 additions and 28 deletions

View File

@@ -0,0 +1,29 @@
name: 'Setup Build Environment'
description: 'Set up LLVM, MESA, and Flutter for builds'
runs:
using: 'composite'
steps:
- uses: actions/checkout@v4
- name: Setup LLVM
uses: KyleMayes/install-llvm-action@v1
with:
version: "16"
- name: Add LLVM to PATH
shell: bash
run: |
echo "${{ github.workspace }}/llvm/bin" >> $GITHUB_PATH
echo "LD_LIBRARY_PATH=${{ github.workspace }}/llvm/lib/x86_64-unknown-linux-gnu/" >> $GITHUB_ENV
- name: Verify installation
shell: bash
run: clang --version
- name: Install MESA
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y xvfb
sudo apt-get install -y libosmesa6-dev
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: master
architecture: X64

View File

@@ -10,40 +10,42 @@ jobs:
update-goldens: update-goldens:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4 # This must come first!
- name: Setup LLVM - uses: ./.github/actions/setup-build-env
uses: KyleMayes/install-llvm-action@v1 #- uses: actions/checkout@v4
with: #- name: Setup LLVM
version: "16" # uses: KyleMayes/install-llvm-action@v1
- name: Add LLVM to PATH # with:
run: | # version: "16"
echo "${{ github.workspace }}/llvm/bin" >> $GITHUB_PATH #- name: Add LLVM to PATH
echo "LD_LIBRARY_PATH=${{ github.workspace }}/llvm/lib/x86_64-unknown-linux-gnu/" >> $GITHUB_ENV # run: |
- name: Verify installation # echo "${{ github.workspace }}/llvm/bin" >> $GITHUB_PATH
run: clang --version # echo "LD_LIBRARY_PATH=${{ github.workspace }}/llvm/lib/x86_64-unknown-linux-gnu/" >> $GITHUB_ENV
- name: Install MESA #- name: Verify installation
run: | # run: clang --version
sudo apt-get update #- name: Install MESA
sudo apt-get install -y xvfb # run: |
sudo apt-get install -y libosmesa6-dev # sudo apt-get update
#sudo apt-get -y build-dep mesa # sudo apt-get install -y xvfb
#git clone https://gitlab.freedesktop.org/mesa/mesa.git # sudo apt-get install -y libosmesa6-dev
#cd mesa # #sudo apt-get -y build-dep mesa
#git checkout mesa-23.2.1 # #git clone https://gitlab.freedesktop.org/mesa/mesa.git
#mkdir -p out # #cd mesa
#meson setup builddir/ -Dprefix="$(pwd)/out" -Dosmesa=true -Dglx=xlib -Dgallium-drivers=swrast -Dvulkan-drivers=swrast # #git checkout mesa-23.2.1
#meson install -C builddir/ # #mkdir -p out
# #meson setup builddir/ -Dprefix="$(pwd)/out" -Dosmesa=true -Dglx=xlib -Dgallium-drivers=swrast -Dvulkan-drivers=swrast
# #meson install -C builddir/
#- name: Install Vulkan SDK and dependencies #- name: Install Vulkan SDK and dependencies
# run: | # run: |
# wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - # wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add -
# sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list # sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-jammy.list https://packages.lunarg.com/vulkan/lunarg-vulkan-jammy.list
# sudo apt-get update # sudo apt-get update
# sudo apt-get install -y vulkan-sdk # sudo apt-get install -y vulkan-sdk
- name: Set up Flutter #- name: Set up Flutter
uses: subosito/flutter-action@v2 # uses: subosito/flutter-action@v2
with: # with:
channel: master # channel: master
architecture: X64 # architecture: X64
- run: cd thermion_dart && dart pub get && xvfb-run dart --enable-experiment=native-assets test test/asset_tests.dart - run: cd thermion_dart && dart pub get && xvfb-run dart --enable-experiment=native-assets test test/asset_tests.dart
- name: Zip goldens - name: Zip goldens
run: zip -r goldens.zip ./thermion_dart/test/output run: zip -r goldens.zip ./thermion_dart/test/output