summaryrefslogtreecommitdiff
path: root/build.sh
AgeCommit message (Collapse)Author
2023-09-02SL-19243: Post xcarchive.zip instead of separate symbols tarball.Nat Goodspeed
On Mac, in the CMake USE_BUGSPLAT logic, we created both xcarchive.zip (which is what BugSplat wants to see) and secondlife-symbols-darwin -64.tar.bz2 (which we don't think is used for anything). The tarball was posted to codeticket -- but why? If the point is to manually re-upload to BugSplat in case of failure, we'll do better saving xcarchive.zip to codeticket. For SL-19243, posting xcarchive.zip directly supports the goal of breaking out the upload to BugSplat as a separate step. Anyway, since xcarchive.zip is a superset of the tarball, the tarball can be recreated from the zip file, whereas the zip file can't be recreated from the tarball without opening the .dmg installer and extracting the viewer executable. If the xcarchive.zip file exists (that is, on Mac), post that to codeticket or GitHub, as applicable, instead of the tarball. In fact, in the USE_BUGSPLAT case, don't even bother creating the tarball since we're going to ignore it. Make the new build.sh logic that insists on BUGSPLAT_USER and BUGSPLAT_PASS conditional on BUGSPLAT_DB.
2023-09-01SL-19243: Try harder to list contents of xcarchive.zip.Nat Goodspeed
upload-mac-symbols.sh actually moves the xcarchive.zip file to /tmp, which is why we couldn't find it when trying to list its contents after the upload.
2023-09-01SL-19243: Try to list contents of xcarchive.zipNat Goodspeed
2023-08-31SL-19243: Try to run Windows BugSplat uploads as a separate GH job.Nat Goodspeed
Upload a new Windows-exe artifact containing just the executable (needed by BugSplat) separately from the artifact containing the whole NSIS installer. This requires a new viewer_exe step output set by viewer_manifest.py. Define viewer_channel and viewer_version as build job outputs. Set viewer_channel in build.yaml when tag is interpreted. Set viewer_version in build.sh at the point when it would have posted viewer_version.txt to codeticket. Add a post-windows-symbols job dependent on the build job that engages secondlife/viewer-post-bugsplat-windows, which in turn engages secondlife/post-bugsplat-windows. We keep the actual upload code in a separate repo in case we need to modify that code before rerunning to resolve upload errors. If we kept the upload code in the viewer repo itself, rerunning the upload with modifications would necessarily require rerunning the viewer build, which would defeat the purpose of SL-19243. Because of that new upload job in build.yaml, skip Windows symbol uploads in build.sh. Use a simple (platform name) artifact name for metadata because of flatten_files.py's filename collision resolution. Use hyphens, not spaces, in remaining artifact names: apparently download-artifact doesn't much like artifacts with spaces in their names. Only run the release job when in fact there's a tag. Without that, we get errors. We need not create flatten_files.py's output directory beforehand because it will do that implicitly.
2023-07-18SL-19854: Ensure BugSplat credentials are exported.Nat Goodspeed
2023-07-18SL-18837: Conditionally upload llphysicsextensions-tpv packageNat Goodspeed
but only when building viewer-private. Also re-fix SL-19942 workaround by deleting AUTOBUILD_CONFIGURATION before trying to build llphysicsextensions-tpv.
2023-07-07SL-18837: Use multi-line GitHub outputs to upload artifacts.Nat Goodspeed
Having observed installer upload failures, I discovered the warning in actions/upload-artifact/README.md about multiple concurrent jobs trying to post the same pathname to the same artifact name. Try to disambiguate artifacts not only for different platforms, but for different jobs running on the same platform. This change also reflects my understanding that an artifact is (effectively) a distinct zip file that can contain multiple uploaded files. Because we'll want to download metadata without having to download enormous installers, create a separate metadata artifact per platform. Similarly, symbol files can get large: use a third distinct artifact for symbol files. But with those artifacts defined, leverage actions/upload-artifact's ability to upload multiple paths to the same artifact. In build.sh, define bash arrays installer, metadata, symbolfile and set up so that, on exit, each is written to a GITHUB_OUTPUT variable with the corresponding name. This involves a little magic to get macOS bash 3 to indirectly access an array. These multi-line output variables are then used to drive the upload-artifact step for each of the defined artifacts.
2023-07-06SL-18837: Add addoutput, addarrayoutput functions to build.shNat Goodspeed
and use them instead of codeticket addoutput to pass GitHub xxx_name, xxx_path outputs to build.yaml. Add upload steps to build.yaml to try to upload build products identified in build.sh.
2023-06-28SL-18837: Don't try to engage git-hooks explicitly at all.Nat Goodspeed
2023-06-28SL-18837: git-hooks no longer has requirements.txt?Nat Goodspeed
2023-06-28SL-18837: Don't fetch (unmigrated) build-secrets, use GH secrets.Nat Goodspeed
2021-11-16DRTVWR-546 merge in master v6.5.1Dave Houlton
2021-10-13Merge branch 'master' v6.4.24 into DRTVWR-546Dave Houlton
2021-09-28SL-16040: Honor autobuild_{configure,build}_parameters variables.Nat Goodspeed
The generic build.sh script honors these environment variables to specify parameters to the autobuild configure and autobuild build steps, respectively. Support them in the viewer-specific build.sh too. In the generic build.sh, autobuild_configure_parameters allows specifying command-line switches either for autobuild or, following --, for the underlying tool (in our case, CMake). In order to support that variable the same way here, we insert -- (as before) when autobuild_configure_parameters is unset or empty, since the rest of the switches *we* specify are for CMake. That means that, as with the generic build.sh, a non-empty autobuild_configure_parameters override must precede any switches intended for CMake with the -- separator.
2021-09-09SL-15572 - retry logic for codeticket.py commandsBrad Payne (Vir Linden)
2021-08-12Merge branch 'master' into DRTVWR-520-apple-notarizationAndrey Lihatskiy
# Conflicts: # autobuild.xml # build.sh # indra/CMakeLists.txt # indra/newview/CMakeLists.txt # indra/newview/llappviewermacosx.cpp # indra/newview/llappviewerwin32.h # indra/newview/viewer_manifest.py # indra/win_crash_logger/llcrashloggerwindows.cpp
2021-07-20Merge branch 'master' into DRTVWR-521-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/llcommon/llerror.cpp # indra/llui/llnotifications.h # indra/newview/llappviewer.cpp # indra/newview/llappviewermacosx.cpp
2021-07-13SL-15572 - retry logic for codeticket.py commandsBrad Payne (Vir Linden)
2021-07-13SL-15572 - shorter sleeps in build.shBrad Payne (Vir Linden)
2021-07-13SL-15572 - more sleeps in build.shBrad Payne (Vir Linden)
2021-07-13SL-15572 - Possible fix for codeticket upload issueBrad Payne (Vir Linden)
2021-06-30SL-15500: Only run coding_policy_git.py on MacNat Goodspeed
since it fails on Windows due to some problem in the underlying library. Also wrap the coding policy checks in a TC log subsection.
2021-06-30SL-15500: Always have to work around Windows path incompatibilities.Nat Goodspeed
2021-06-29SL-15500: Use plain pip install, not pip_install shell function.Nat Goodspeed
pip_install doesn't know about the '-r requirements.txt' feature.
2021-06-29SL-15500: Install git-hooks (and requirements) and run policy checkNat Goodspeed
on the entire current (branch of the) viewer repo before starting any build.
2021-05-12SL-10297: Merge branch 'sl-10297-oz' into sl-10297.Nat Goodspeed
Bring in Oz's tweaks to the way BugSplat is engaged and tested, plus a few other miscellaneous goodies.
2020-10-05SL-13953 Builds should fail if symbols upload failedAndrey Kleshchev
2020-08-24SL-10297 merged 6.4.7Oz Linden
2020-06-15SL-10297: merge up to master at 6.4.3Oz Linden
2020-03-25[DRTVWR-476] - disable dbghelp.h warningsAnchor
2020-03-25[DRTVWR-476] - target windows 10Anchor
2020-03-25DRTVWR-476: Update Copy3rdPartyLibs.cmake for VS 2017 version.Nat Goodspeed
Also, on Windows, put build output into build-vc$AUTOBUILD_VSVER-$AUTOBUILD_ADDRSIZE instead of hard-coding build-vc120-$AUTOBUILD_ADDRSIZE.
2020-01-28SL-12615: Support a branch-specific setting for viewer_channel in TeamCity ↵Oz Linden
builds
2019-03-02convert to an explicit USE_BUGSPLAT switch in cmake, revise LL_ERRS approachOz Linden
2019-01-16change the default crash type from "freeze" to "other"Oz Linden
2019-01-14build hack for upload failuresOz Linden
2018-08-31SL-957: Convert absolute VIEWER_SYMBOL_FILE to native_path.Nat Goodspeed
Thanks Ansariel.
2018-08-31SL-957: Pass an absolute pathname to CMake for VIEWER_SYMBOL_FILE.Nat Goodspeed
2018-08-30SL-957: Generate the expected symbols tarball even with BugSplat.Nat Goodspeed
This is a separate step from generating and posting BugSplat symbols, since BugSplat needs the executable along with the symbols, and we don't need to consume that space in a symbols tarball. Move Mac BugSplat symbol generation logic to CMake land, the same general area where Breakpad symbols are generated. Add stanzas to pack up the usual tarball for Windows and Mac. Remove the build.sh test that suppressed uploading the symbols tarball for BugSplat builds.
2018-08-27SL-957: Explicitly pass VIEWER_SYMBOL_FILE from build.sh into CMakeNat Goodspeed
instead of relying on both indra/newview/CMakeLists.txt and build.sh generating the same file pathname. Make build.sh set VIEWER_SYMBOL_FILE (instead of symbolfile) in pre_build, and pass it to autobuild configure via -D switch. Then the uploads stanza can just use VIEWER_SYMBOL_FILE instead of performing its platform-sensitive case statement right there. Introduce VIEWER_SYMBOL_FILE CMake cache variable, default empty string. Make indra/newview/CMakeLists.txt generate_breakpad_symbols logic conditional on VIEWER_SYMBOL_FILE being non-empty, as well as everything else. Eliminate local set(VIEWER_SYMBOL_FILE) directives.
2018-08-24DRTVWR-447: Introduce explicit CMake BUGSPLAT_DB variable.Nat Goodspeed
Define the CMake cache variable, with empty string as its default. Make build.sh pass the BUGSPLAT_DB environment variable as a CMake command-line variable assignment. Change CMake 'if (DEFINED ENV{BUGSPLAT_DB})' to plain 'if (BUGSPLAT_DB)'. Make CMake pass new --bugsplat switch to every one of SIX different invocations of viewer_manifest.py. Give llmanifest.main() function an argument to allow supplementing the base set of command-line switches with additional application-specific switches. In viewer_manifest.py, define new --bugsplat command-line switch and pass to llmanifest.main(). Instead of consulting os.environ['BUGSPLAT_DB'], consult self.args['bugsplat'].
2018-08-15Backed out changeset 25b55601514d: re-enable building BugSplat on Mac.Nat Goodspeed
2018-07-18DRTVWR-447: Temporarily suppress building for BugSplat on Mac.Nat Goodspeed
2018-06-28MAINT-8797: Resurrect BugSplat crash reporting on Windows.Nat Goodspeed
The Breakpad symbol-file upload in the viewer's build.sh was failing on BugSplat builds since we weren't generating Breakpad symbol files. That upload was conditional on RELEASE_CRASH_REPORTING, so my first approach was to set RELEASE_CRASH_REPORTING=OFF for BugSplat builds. Unfortunately that symbol also propagates down into C++ compiles, and in llappviewerwin32.cpp, both Breakpad and BugSplat crash reporting is conditional on it. So that change inadvertently turned off the C++ logic to engage BugSplat. Stop forcing RELEASE_CRASH_REPORTING=OFF for BugSplat builds. Instead, make the Breakpad symbol-file upload check the BUGSPLAT_DB variable as well. Add #pragma messages to llappviewerwin32.cpp so we can detect whether it's being built for Breakpad or BugSplat or neither.
2018-06-14SL-821: When using BugSplat, don't try to upload Breakpad symbols.Nat Goodspeed
With BugSplat, the Breakpad symbol files aren't generated; attempting to post them to codeticket will fail the build.
2018-05-30remove unused UNATTENDED cmake variable that generates warningsOz Linden
2018-05-30set shell nullglob optionOz Linden
so that when a glob has no expansion you don't get the glob back ( *.sh expands to empty rather than to "*.sh")
2018-05-30always run testsOz Linden
2018-05-25SL-821: export BUGSPLAT_DB when loaded so child processes can detect.Nat Goodspeed
Produce CMake message when BugSplat is engaged so we can detect in build log. Don't try to copy BugSplat DLLs when NOT engaged.
2018-05-25SL-821, SL-826: Use BUGSPLAT_DB from environment on Windows and Mac.Nat Goodspeed
On TeamCity, set BUGSPLAT_DB from build-secrets. Use the presence of $BUGSPLAT_DB, rather than a new CMake BUGSPLAT option, to control whether CMake searches for BugSplat -- and passes LL_BUGSPLAT into C++. When BUGSPLAT_DB is present, make viewer_manifest.py set "BugSplat DB" in build_data.json, and "BugsplatServerURL" in Mac Info.plist. Make llappviewerwin32.cpp read "BugSplat DB" from build_data.json. Add placeholders for Mac hooks to suppress BugSplat prompt and send SecondLife.log.