From 1727c4d26429dd256fb2cd90fa83085e976794cc Mon Sep 17 00:00:00 2001 From: Rye Date: Fri, 24 Oct 2025 01:38:56 -0400 Subject: Reintroduce llappearanceutility to viewer tree from archive/develop Signed-off-by: Rye --- .github/workflows/build.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to '.github') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4c948e5586..db7d21b961 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -298,6 +298,16 @@ jobs: path: | ${{ steps.build.outputs.physicstpv }} + - name: Upload appearance utility package + uses: actions/upload-artifact@v4 + if: steps.build.outputs.appearanceutility + with: + name: "${{ steps.build.outputs.artifact }}-appearanceutility" + # emitted by build.sh, zero or one lines + path: | + ${{ steps.build.outputs.appearanceutility }} + + sign-and-package-windows: env: AZURE_KEY_VAULT_URI: ${{ secrets.AZURE_KEY_VAULT_URI }} -- cgit v1.3 From 4abc945bd9dd666c99965adecdfc29aa1c1fdb0d Mon Sep 17 00:00:00 2001 From: Rye Date: Sun, 19 Oct 2025 23:23:27 -0400 Subject: Start to fix up GHA workflow for linux Signed-off-by: Rye --- .github/workflows/build.yaml | 42 +++++++++++++++++++++++++++++++++++++++--- build.sh | 15 ++++++++------- 2 files changed, 47 insertions(+), 10 deletions(-) (limited to '.github') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index db7d21b961..2fe666680f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -43,7 +43,7 @@ jobs: needs: setup strategy: matrix: - runner: ${{ fromJson((github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/Second_Life')) && '["windows-large","macos-15-xlarge"]' || '["windows-2022","macos-15-xlarge"]') }} + runner: ${{ fromJson((github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/Second_Life')) && '["windows-large","macos-15-xlarge","linux-large"]' || '["windows-2022","macos-15-xlarge","ubuntu-22.04"]') }} configuration: ${{ fromJson(needs.setup.outputs.configurations) }} runs-on: ${{ matrix.runner }} outputs: @@ -90,6 +90,20 @@ jobs: with: ref: ${{ github.event.pull_request.head.sha || github.sha }} + - name: Linux Disk Cleanup + if: runner.os == 'Linux' + run: | + # Prune various unused files from linux builder to fix free runner disk space exhaustion + df -h + sudo docker container prune -f + sudo docker image prune -a -f + sudo rm -rf /usr/local/share/boost + sudo rm -rf /usr/share/dotnet + sudo rm -rf /usr/local/lib/android + sudo rm -rf /opt/ghc + sudo rm -rf /usr/local/.ghcup + df -h + - name: Setup python uses: actions/setup-python@v5 with: @@ -120,6 +134,21 @@ jobs: ${{ runner.os }}-64-${{ matrix.configuration }}- ${{ runner.os }}-64- + - name: Install Linux dependencies + if: runner.os == 'Linux' + run: | + sudo apt update + sudo apt install -y \ + libpulse-dev libunwind-dev \ + libgl1-mesa-dev libglu1-mesa-dev libxinerama-dev \ + libxcursor-dev libxfixes-dev libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev ninja-build libxft-dev \ + libpipewire-0.3-dev libdbus-1-dev libvlc-dev \ + libosmesa6-dev + sudo locale-gen en_US.UTF-8 + sudo locale-gen en_GB.UTF-8 + sudo locale-gen fr_FR.UTF-8 + - name: Determine source branch id: which-branch uses: secondlife/viewer-build-util/which-branch@v2 @@ -435,20 +464,26 @@ jobs: runs-on: ubuntu-latest if: needs.setup.outputs.release_run steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v5 with: pattern: "*-installer" - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v5 with: pattern: "*-metadata" + - uses: actions/download-artifact@v5 + with: + name: "Linux-app" + - name: Rename metadata run: | cp Windows-metadata/autobuild-package.xml Windows-autobuild-package.xml cp Windows-metadata/newview/viewer_version.txt Windows-viewer_version.txt cp macOS-metadata/autobuild-package.xml macOS-autobuild-package.xml cp macOS-metadata/newview/viewer_version.txt macOS-viewer_version.txt + cp Linux-metadata/autobuild-package.xml Linux-autobuild-package.xml + cp Linux-metadata/newview/viewer_version.txt Linux-viewer_version.txt # forked from softprops/action-gh-release - name: Create GitHub release @@ -472,6 +507,7 @@ jobs: files: | macOS-installer/*.dmg Windows-installer/*.exe + *.tar.xz *-autobuild-package.xml *-viewer_version.txt diff --git a/build.sh b/build.sh index 0a55941812..c9f366d64c 100755 --- a/build.sh +++ b/build.sh @@ -45,7 +45,7 @@ build_dir_Darwin() build_dir_Linux() { - echo build-linux-i686 + echo build-linux-x86_64 } build_dir_CYGWIN() @@ -165,6 +165,12 @@ pre_build() fi fi + if [[ "$arch" == "Linux" ]] + then + # RELEASE_CRASH_REPORTING is tuned on unconditionaly, this is fine but not for Linux as of now (due to missing breakpad/crashpad support) + RELEASE_CRASH_REPORTING=OFF + fi + if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] then case "$arch" in @@ -396,12 +402,7 @@ do python_cmd "$helpers/codeticket.py" addoutput "Autobuild Metadata" "$build_dir/autobuild-package.xml" --mimetype text/xml \ || fatal "Upload of autobuild metadata failed" metadata+=("$build_dir/autobuild-package.xml") - if [ "$arch" != "Linux" ] - then - record_dependencies_graph "$build_dir/autobuild-package.xml" # defined in buildscripts/hg/bin/build.sh - else - record_event "TBD - no dependency graph for linux (probable python version dependency)" - fi + record_dependencies_graph "$build_dir/autobuild-package.xml" # defined in buildscripts/hg/bin/build.sh end_section "Autobuild metadata" else record_event "no autobuild metadata at '$build_dir/autobuild-package.xml'" -- cgit v1.3 From 7e40addc3afb9a667f350a487c31ee431ee5fb64 Mon Sep 17 00:00:00 2001 From: Rye Date: Fri, 12 Dec 2025 01:09:50 -0500 Subject: Prune files from macOS GHA runner to fix build failure from disk space exhaustion --- .github/workflows/build.yaml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to '.github') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index df927eb187..f0508cd537 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -93,7 +93,7 @@ jobs: - name: Linux Disk Cleanup if: runner.os == 'Linux' run: | - # Prune various unused files from linux builder to fix free runner disk space exhaustion + # Prune various unused files from linux builder to fix runner disk space exhaustion df -h sudo docker container prune -f sudo docker image prune -a -f @@ -104,6 +104,24 @@ jobs: sudo rm -rf /usr/local/.ghcup df -h + - name: macOS Disk Cleanup + if: runner.os == 'macOS' + run: | + # Prune various unused files from macOS builder to fix runner disk space exhaustion + df -h + sudo rm -rf /opt/ghc + sudo rm -rf /opt/google/chrome + sudo rm -rf /opt/microsoft/msedge + sudo rm -rf /opt/microsoft/powershell + sudo rm -rf /usr/lib/mono + sudo rm -rf /usr/local/julia* + sudo rm -rf /usr/local/lib/android + sudo rm -rf /usr/local/share/chromium + sudo rm -rf /usr/local/share/powershell + sudo rm -rf /usr/local/share/boost + sudo rm -rf /usr/share/dotnet + df -h + - name: Setup python uses: actions/setup-python@v6 with: -- cgit v1.3 From 3ff35b8c2b530bc7d4e6fbdeb688506b27af2d66 Mon Sep 17 00:00:00 2001 From: Rye Date: Tue, 16 Dec 2025 18:42:21 -0500 Subject: Split Viewer and Test builds into separate jobs in GHA to reduce potential for disk space exhaustion Signed-off-by: Rye --- .github/workflows/build.yaml | 39 ++++++++++++--------------------------- build.sh | 25 +++++++++++++++++++------ 2 files changed, 31 insertions(+), 33 deletions(-) (limited to '.github') diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f0508cd537..b6b3ba55ac 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -45,6 +45,7 @@ jobs: matrix: runner: ${{ fromJson((github.ref_type == 'tag' && startsWith(github.ref, 'refs/tags/Second_Life')) && '["windows-large","macos-15-xlarge","linux-large"]' || '["windows-2022","macos-15-xlarge","ubuntu-22.04"]') }} configuration: ${{ fromJson(needs.setup.outputs.configurations) }} + build_variant: [Viewer, Tests] runs-on: ${{ matrix.runner }} outputs: viewer_channel: ${{ steps.build.outputs.viewer_channel }} @@ -68,9 +69,9 @@ jobs: DEVELOPER_DIR: "/Applications/Xcode_16.4.app/Contents/Developer" # Ensure that Linden viewer builds engage Bugsplat. BUGSPLAT_DB: ${{ needs.setup.outputs.bugsplat_db }} - build_coverity: false build_log_dir: ${{ github.workspace }}/.logs - build_viewer: true + build_viewer: ${{ matrix.build_variant == 'Viewer' }} + build_tests: ${{ matrix.build_variant == 'Tests' }} BUILDSCRIPTS_SHARED: ${{ github.workspace }}/.shared # extracted and committed to viewer repo BUILDSCRIPTS_SUPPORT_FUNCTIONS: ${{ github.workspace }}/buildscripts_support_functions @@ -91,9 +92,9 @@ jobs: ref: ${{ github.event.pull_request.head.sha || github.sha }} - name: Linux Disk Cleanup - if: runner.os == 'Linux' + if: matrix.build_variant == 'Viewer' && runner.os == 'Linux' run: | - # Prune various unused files from linux builder to fix runner disk space exhaustion + # Prune various unused files from linux builder for Viewer build to fix runner disk space exhaustion df -h sudo docker container prune -f sudo docker image prune -a -f @@ -104,24 +105,6 @@ jobs: sudo rm -rf /usr/local/.ghcup df -h - - name: macOS Disk Cleanup - if: runner.os == 'macOS' - run: | - # Prune various unused files from macOS builder to fix runner disk space exhaustion - df -h - sudo rm -rf /opt/ghc - sudo rm -rf /opt/google/chrome - sudo rm -rf /opt/microsoft/msedge - sudo rm -rf /opt/microsoft/powershell - sudo rm -rf /usr/lib/mono - sudo rm -rf /usr/local/julia* - sudo rm -rf /usr/local/lib/android - sudo rm -rf /usr/local/share/chromium - sudo rm -rf /usr/local/share/powershell - sudo rm -rf /usr/local/share/boost - sudo rm -rf /usr/share/dotnet - df -h - - name: Setup python uses: actions/setup-python@v6 with: @@ -147,8 +130,9 @@ jobs: uses: actions/cache@v4 with: path: .autobuild-installables - key: ${{ runner.os }}-64-${{ matrix.configuration }}-${{ hashFiles('autobuild.xml') }} + key: ${{ runner.os }}-64-${{ matrix.configuration }}-${{ matrix.build_variant }}-${{ hashFiles('autobuild.xml') }} restore-keys: | + ${{ runner.os }}-64-${{ matrix.configuration }}-${{ matrix.build_variant }}- ${{ runner.os }}-64-${{ matrix.configuration }}- ${{ runner.os }}-64- @@ -311,8 +295,8 @@ jobs: echo "artifact=$RUNNER_OS$cfg_suffix" >> $GITHUB_OUTPUT - name: Upload executable - if: steps.build.outputs.viewer_app uses: actions/upload-artifact@v4 + if: matrix.build_variant == 'Viewer' && steps.build.outputs.viewer_app with: name: "${{ steps.build.outputs.artifact }}-app" path: | @@ -321,14 +305,15 @@ jobs: # The other upload of nontrivial size is the symbol file. Use a distinct # artifact for that too. - name: Upload symbol file - if: steps.build.outputs.symbolfile uses: actions/upload-artifact@v4 + if: matrix.build_variant == 'Viewer' && steps.build.outputs.symbolfile with: name: "${{ steps.build.outputs.artifact }}-symbols" path: ${{ steps.build.outputs.symbolfile }} - name: Upload metadata uses: actions/upload-artifact@v4 + if: matrix.build_variant == 'Viewer' with: name: "${{ steps.build.outputs.artifact }}-metadata" # emitted by build.sh, possibly multiple lines @@ -338,7 +323,7 @@ jobs: - name: Upload physics package uses: actions/upload-artifact@v4 # should only be set for viewer-private - if: matrix.configuration == 'Release' && steps.build.outputs.physicstpv + if: matrix.build_variant == 'Viewer' && matrix.configuration == 'Release' && steps.build.outputs.physicstpv with: name: "${{ steps.build.outputs.artifact }}-physics" # emitted by build.sh, zero or one lines @@ -347,7 +332,7 @@ jobs: - name: Upload appearance utility package uses: actions/upload-artifact@v4 - if: steps.build.outputs.appearanceutility + if: matrix.build_variant == 'Viewer' && steps.build.outputs.appearanceutility with: name: "${{ steps.build.outputs.artifact }}-appearanceutility" # emitted by build.sh, zero or one lines diff --git a/build.sh b/build.sh index 31604663f1..72dc2b96e8 100755 --- a/build.sh +++ b/build.sh @@ -150,6 +150,7 @@ pre_build() RELEASE_CRASH_REPORTING=OFF HAVOK=OFF + TESTING=OFF SIGNING=() if [[ "$variant" != *OS ]] then @@ -171,6 +172,11 @@ pre_build() RELEASE_CRASH_REPORTING=OFF fi + if $build_tests + then + TESTING=ON + fi + if [ "${RELEASE_CRASH_REPORTING:-}" != "OFF" ] then case "$arch" in @@ -195,7 +201,7 @@ pre_build() "$autobuild" configure --quiet -c $variant \ ${eval_autobuild_configure_parameters:---} \ - -DLL_TESTS:BOOL=ON \ + -DLL_TESTS:BOOL="$TESTING" \ -DPACKAGE:BOOL=ON \ -DHAVOK:BOOL="$HAVOK" \ -DRELEASE_CRASH_REPORTING:BOOL="$RELEASE_CRASH_REPORTING" \ @@ -246,7 +252,18 @@ package_llphysicsextensions_tpv() build() { local variant="$1" - if $build_viewer + if $build_tests + then + begin_section "autobuild $variant tests" + # honor autobuild_build_parameters same as sling-buildscripts + export CTEST_OUTPUT_ON_FAILURE=1 # Output log on test failure + eval_autobuild_build_parameters=$(eval $(echo echo $autobuild_build_parameters)) + "$autobuild" build --no-configure -c $variant \ + $eval_autobuild_build_parameters -- --target BUILD_AND_RUN_TESTS \ + || fatal "failed building $variant tests" + echo true >"$build_dir"/build_ok + end_section "autobuild $variant tests" + elif $build_viewer then begin_section "autobuild $variant" # honor autobuild_build_parameters same as sling-buildscripts @@ -254,10 +271,6 @@ build() "$autobuild" build --no-configure -c $variant \ $eval_autobuild_build_parameters \ || fatal "failed building $variant" - - ctest -C Release --test-dir "${build_dir}" --output-on-failure -j $(nproc --all) \ - || fatal "failed testing $variant" - echo true >"$build_dir"/build_ok end_section "autobuild $variant" -- cgit v1.3