Commit Graph

105 Commits (5f69db9d1907eac79ad7fa9e639733de42eec36f)

Author SHA1 Message Date
Brad Linden d2d3599080 Attempt to fix SL-19242 notarize creds secrets loading 2023-09-25 14:02:26 -07:00
Nat Goodspeed 50e3d4020d SL-19242: Reference the actual stored GitHub repo secrets.
Add a Mac signing step to unpack the credentials bundled into
NOTARIZE_CREDS_MACOS so viewer-build-util/sign-pkg-mac need not know about
that peculiarity of our secrets formatting.
2023-09-25 11:19:38 -04:00
Nat Goodspeed e8dfbbaf88 SL-19242: Pass channel and imagename to sign-pkg-mac/action.yaml.
The viewer_manifest.py logic to determine the name of the viewer installer
.dmg is a little convoluted. Make it tell viewer-build-util/sign-pkg-mac that
name, rather than passing it all the relevant inputs and composing it
redundantly.

sign-pkg-mac also wants the viewer channel to determine the application name.
2023-09-20 11:34:56 -04:00
Nat Goodspeed 763fcb02b8 SL-19242: Move comments out of YAML parameter text. 2023-09-19 09:15:30 -04:00
Nat Goodspeed bd8ecbb389 SL-19242: Typo in changing from inline to reusable action. 2023-09-18 22:43:16 -04:00
Nat Goodspeed 1184c383e2 SL-19242: release job now depends on package jobs
and uses new viewer-build-util/release-artifacts action.
2023-09-18 22:39:43 -04:00
Nat Goodspeed 7c351379fc SL-19242: Retrieve and decode Windows signing cert, pass to action. 2023-09-15 15:17:40 -04:00
Nat Goodspeed b02249546e SL-19243: Directly reference action subdirs in viewer-build-util
instead of trying to checkout viewer-build-util (which doesn't work) and then
reference action subdirs from the filesystem.

Also engage (initial placeholder) actions to sign and package the
platform-specific application artifacts.
2023-09-12 16:28:09 -04:00
Nat Goodspeed 3e86f26b40 SL-19243: Try to convince GitHub that ./.util is really a path. 2023-09-12 13:55:08 -04:00
Nat Goodspeed d795b49f16 SL-19243: Job step 'uses' must specify action.yaml file
instead of having it implied by specifying the containing directory.
2023-09-12 12:50:13 -04:00
Nat Goodspeed 0992a0af3b SL-19243: Use consolidated viewer-build-util
instead of distinct viewer-post-bugsplat-{windows,mac} repos.
2023-09-12 12:46:28 -04:00
Nat Goodspeed 29300a1fd3 SL-19242: Try harder to post artifacts containing exactly app image.
In a Windows build tree, we don't actually have an app-named top directory, so
don't package its containing directory -- just the app dir itself, e.g.
"newview/Release".

In a Mac build tree, though we do have "Second Life Mumble.app", its parent
directory also contains other large stuff. Try posting a temp directory
containing a symlink to the .app.

Ditch the "!*.bat" exclusion: the presence of a second path (even an
exclusion) changes how upload-artifact nests its contents.
2023-09-11 10:07:51 -04:00
Nat Goodspeed 63d5d38e36 SL-18837: Stop failing build.sh if there's no installer.
This unblocks ReleaseOS builds, and also preps for SL-19242.

Streamline build.sh's Uploads section.
2023-09-08 17:24:04 -04:00
Nat Goodspeed 2d04cc14d3 SL-19242: Post -app artifact, not -exe, with entire install image.
Previously we posted Windows-exe, macOS-exe artifacts that were a little
inconsistent: Windows-exe contained just the Windows executable, whereas
macOS-exe contained the whole .app tree (but without the .app directory).

Change to post Windows-app, macOS-app artifacts that each contain the whole
viewer install image, including the top-level application name directory. This
is what we'll need to codesign and notarize.
2023-09-08 17:01:46 -04:00
Nat Goodspeed c87d9c635b SL-18837: Suppress ReleaseOS for now. 2023-09-08 14:30:05 -04:00
Nat Goodspeed 77227cf5c4 SL-18837: Suppress BUGSPLAT_DB for ReleaseOS builds. 2023-09-07 14:09:54 -04:00
Nat Goodspeed bac73831c0 SL-18837: String literals are single-quoted in GitHub expressions. 2023-09-07 11:48:15 -04:00
Nat Goodspeed 949909013e SL-18837: Segregate ReleaseOS artifacts; don't even upload.
Eliminate references to (no longer set) matrix.addrsize.
2023-09-07 11:38:00 -04:00
Nat Goodspeed b8e6777439 SL-18837: Merge branch 'main' into actions 2023-09-07 11:15:56 -04:00
Nat Goodspeed 755f9d9ac9 SL-19243: Specify macos-latest for post-mac-symbols.
We want to run on a GitHub-hosted runner rather than one of our own.
2023-09-06 17:03:22 -04:00
Nat Goodspeed 7cedb1eb20 SL-19243: Add post-mac-symbols job using viewer-post-bugsplat-mac.
The initial viewer-post-bugsplat-mac is just a placeholder so far, but we can
flesh it out while the viewer builds necessitated by this change are running,
and then we can iterate on viewer-post-bugsplat-mac without having to rebuild
the viewer.
2023-09-01 10:53:02 -04:00
Nat Goodspeed 2ee8cb0e16 SL-19243: Job to post windows symbols must run on Windows. 2023-09-01 07:46:32 -04:00
Nat Goodspeed 3147b55cec SL-19243: Fix wonky 'if:' in build.yaml 2023-08-31 17:28:25 -04:00
Nat Goodspeed 348d710707 SL-19243: Fix 'uses:' reference to viewer-post-bugsplat-windows 2023-08-31 16:09:12 -04:00
Nat Goodspeed 58e8c3567f SL-19243: Fix build.yaml syntax error. 2023-08-31 16:06:13 -04:00
Nat Goodspeed e8cd5205e8 SL-19243: Try to run Windows BugSplat uploads as a separate GH job.
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-08-31 15:53:56 -04:00
Nat Goodspeed b06aa53f59 SL-18837: Only list the downloaded artifacts. 2023-08-29 20:03:21 -04:00
Nat Goodspeed 7779cebdcd SL-18837: Introduce flatten_files.py and use to post release assets 2023-08-29 17:55:53 -04:00
Nat Goodspeed 929aa15c80 SL-18837: Experiment with download-artifact downloading all files. 2023-08-28 13:21:16 -04:00
Nat Goodspeed 70e4c73baa SL-18837: Engage initial GH viewer release script. 2023-08-18 11:28:15 -04:00
Nat Goodspeed 73a857ba31 SL-18837: Use 'needs' context, not 'jobs' context
in release job to reference outputs from the build job.

Also mark the release as prerelease, and fail the release action if we still
can't find the files we're trying to post.
2023-07-22 08:32:21 -04:00
Nat Goodspeed f9a30e7ed1 SL-18837: Try posting build.yaml step outputs as job outputs. 2023-07-22 08:18:13 -04:00
Nat Goodspeed 6605403661 SL-18837: Tags can't have spaces or colons. Look for valid ones. 2023-07-21 15:24:11 -04:00
Nat Goodspeed 7cca3506b6 SL-18837: Try triggering GH release for tag like "Second Life "... 2023-07-21 14:02:00 -04:00
Nat Goodspeed 0d4228b55a SL-18837: Use secondlife -3p/action-gh-release
instead of the original softprops/action-gh-release repo, because organization
rules forbid directly using the softprops repo.
2023-07-18 15:38:44 -04:00
Nat Goodspeed 2b97587a14 SL-18837: Try to post installer and metadata for GH viewer release. 2023-07-18 15:25:09 -04:00
Nat Goodspeed dcb1403661 SL-18837: Re-delete redundant matrix.include python-version.
This clarifies that the matrix.include entry is intended to supplement an
existing runner configuration, rather than adding a new configuration for the
same runner.
2023-07-18 11:41:32 -04:00
Nat Goodspeed a4882870f8 SL-18837: Merge branch 'actions' into actions-build-sh 2023-07-18 11:37:55 -04:00
Nat Goodspeed 6fd46b85f5 SL-18837: Detect msys bash as well as cygwin for native_path et al. 2023-07-18 10:54:12 -04:00
Nat Goodspeed 479fa3e196 SL-18837: Conditionally upload llphysicsextensions-tpv package
but only when building viewer-private.

Also re-fix SL-19942 workaround by deleting AUTOBUILD_CONFIGURATION before
trying to build llphysicsextensions-tpv.
2023-07-18 09:56:11 -04:00
Nat Goodspeed 54f9ca5404 SL-18837: Merge branch 'actions' into actions-build-sh 2023-07-17 15:41:26 -04:00
Brad Linden 0998d46f47 Fix "intermittent" llrand unit test failure on windows on DRTVWR-578. we must return less than 1.0 when rand() returns RAND_MAX
also, disable 32 bit build now that we have deprecated it.
https://community.secondlife.com/blogs/entry/13464-end-of-support-for-second-life-32-bit-windows-viewer-and-updated-minimum-system-requirements-for-macos-to-1013/
2023-07-14 18:05:44 -07:00
Nat Goodspeed d8292a6291 SL-18837: Disable APR_LOG for now, but leave notes for the future. 2023-07-10 14:46:14 -04:00
Nat Goodspeed 7dc6211ad5 SL-18837: Force llprocess_test and llleap_test to use just 'python'.
On GitHub Windows runners, trying to make build.yaml set PYTHON=python in the
environment doesn't work: integration tests still fail with "Access is denied"
because they're still trying to execute the interpreter's full pathname.

Instead, make llprocess_test and llleap_test detect the case of GitHub Windows
and override the environment variable PYTHON with a baked-in string constant
"python".
2023-07-08 14:08:16 -04:00
Nat Goodspeed ca4288edaa SL-18837: Try running just 'python' for Windows integration tests. 2023-07-08 13:35:53 -04:00
Nat Goodspeed eff1c0b55c SL-18837: Set APR_LOG within build step, not at job level. 2023-07-08 13:15:01 -04:00
Nat Goodspeed 0d4e5b6bf8 SL-18837: Use runner.temp rather than $RUNNER_TEMP. 2023-07-08 13:12:25 -04:00
Nat Goodspeed 1ec6c74404 SL-18837: Set APR_LOG once for the whole job
instead of a new value for each LLProcess::create() invocation.

Since the internal apr_log() function only looks at APR_LOG once per process,
the first test (which succeeded, hence no log file dump) left the log file
open with that same original pathname. Resetting the APR_LOG environment
variable for subsequent runs only made the new code in llprocess_test look for
files that were never created.
2023-07-08 11:08:16 -04:00
Nat Goodspeed f54c121567 SL-18837: Try putting generated Python scripts in RUNNER_TEMP dir.
The claim is that the Windows Python interpreter is integrated somehow with
the OS such that a command line that tries to run Python with a script that
"looks suspicious" (i.e. in a system temp directory) fails with "Access
denied" without even loading the interpreter. At least that theory would
explain the "Access denied" errors we've been getting trying to run Python
scripts generated into the system temp directory by our integration tests.

Our hope is that generating such scripts into the GitHub RUNNER_TEMP directory
will work better.

As this test is specific to Windows, don't even bother running Mac builds.
2023-07-07 10:06:02 -04:00
Nat Goodspeed 2b1a3cf9cd SL-18837: Use multi-line GitHub outputs to upload artifacts.
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-07 06:38:03 -04:00