summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yaml
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2026-04-07 19:12:59 -0400
committerGitHub <noreply@github.com>2026-04-07 19:12:59 -0400
commit5c500ccf407f0b5a0b253b98dd4bd3f33f643aba (patch)
treef4948905ec8f90190e6ea05353d0c57cf5fd93eb /.github/workflows/build.yaml
parent18db816ef7552785ffa26d6d0397efbb341a999f (diff)
Release/26.1.1 (#5530)
* Integrate Velopack installer and update framework * Add Velopack update support for macOS and VVM integration * Update Velopack version and dependencies * Improve Velopack packaging for macOS * #5346 Uninstall older non-velopack viewer (#5363) * #5335 Fix silent uninstall asking about registry * #5346 Uninstall older non-velopack viewer * Use runtime viewer exe name, handle Velopack URL * Velopack download failure diagnostic (#5520) * Velopack download failure diagnostic * Fix up velopack downloading updates. Handle updates internally then hand them off to velopack. (#5524) * More velopack changes. Should download updates properly now. * Don't include NSI files * Restore optional updates, refine viewer restart behavior. (#5527) * Add support for optional updates. * Don't restart the viewer after the update unless it was optional. * Setup UpdaterServiceSetting with velopack properly. * Refine the restart behavior a bit - readd the old "the viewer must update" UX. * If the update is still downloading, close should just reopen the downloading dialog. --------- Co-authored-by: Jonathan "Geenz" Goodman <geenz@lindenlab.com> * Remove SLVersionChecker from the viewer with velopack. (#5528) * Remove SLVersionChecker updater integration * Ensure that the portable install has the correct version number. * Don't produce shortcuts with VPK - we do this with our post install. * Bump viewer version from 26.1.0 to 26.1.1 * Potential fix for uninstaller not being functional. * Fix for UpdaterServiceSetting being ignored. * Filter for release channel when generating shortcuts. * Add some more logging for icons on Windows builds. * More VPK logging. * Move velopack packaging in CI to the sign and package step. * Enable velopack downgrade and skip older updates * Move the version required checking into velopack's checks. * Potential fix for downgrade prompts. * Make sure our macOS flow mirrors Windows. * Make sure to use the dev version of the mac sign and package. * p#553 Only one of two uninstallers displayed * #5346 Don't force user to shutdown velopack build for NSIS uninstall * #5346 Ignore option for the uninstall dialog * #5346 Fix early exit crash * #5346 Properly reset version flag. * Add some autodetect logic on macOS. * p#564 Clear legacy links * p#553 Handle uninstall records * p#549 Permit testing release notes on a test build * p#564 Remake nsis to velopack update flow * p#564 Remake nsis to velopack update flow #2 * p#564 Fix incorrect value type * p#553 Clear velopack's own registry entry in favor of a custom one * #5346 Resolve duplicated window class name * Bump to 2.1.0 of sign and package. --------- Co-authored-by: Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com>
Diffstat (limited to '.github/workflows/build.yaml')
-rw-r--r--.github/workflows/build.yaml60
1 files changed, 57 insertions, 3 deletions
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 4c8d98ce2f..737a4f9c1a 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -2,6 +2,14 @@ name: Build
on:
workflow_dispatch:
+ inputs:
+ installer_type:
+ description: 'Windows installer type'
+ type: choice
+ options:
+ - velopack
+ - nsis
+ default: 'velopack'
pull_request:
push:
branches: ["main", "release/*", "project/*"]
@@ -53,6 +61,20 @@ jobs:
relnotes: ${{ steps.which-branch.outputs.relnotes }}
imagename: ${{ steps.build.outputs.imagename }}
configuration: ${{ matrix.configuration }}
+ # Windows Velopack outputs (passed to sign-pkg-windows)
+ velopack_pack_id: ${{ steps.build.outputs.velopack_pack_id }}
+ velopack_pack_version: ${{ steps.build.outputs.velopack_pack_version }}
+ velopack_pack_title: ${{ steps.build.outputs.velopack_pack_title }}
+ velopack_main_exe: ${{ steps.build.outputs.velopack_main_exe }}
+ velopack_exclude: ${{ steps.build.outputs.velopack_exclude }}
+ velopack_icon: ${{ steps.build.outputs.velopack_icon }}
+ velopack_installer_base: ${{ steps.build.outputs.velopack_installer_base }}
+ # macOS Velopack outputs (passed to sign-pkg-mac)
+ velopack_mac_pack_id: ${{ steps.build.outputs.velopack_mac_pack_id }}
+ velopack_mac_pack_version: ${{ steps.build.outputs.velopack_mac_pack_version }}
+ velopack_mac_pack_title: ${{ steps.build.outputs.velopack_mac_pack_title }}
+ velopack_mac_main_exe: ${{ steps.build.outputs.velopack_mac_main_exe }}
+ velopack_mac_bundle_id: ${{ steps.build.outputs.velopack_mac_bundle_id }}
env:
AUTOBUILD_ADDRSIZE: 64
AUTOBUILD_BUILD_ID: ${{ github.run_id }}
@@ -84,6 +106,8 @@ jobs:
# Only set variants to the one configuration: don't let build.sh loop
# over variants, let GitHub distribute variants over multiple hosts.
variants: ${{ matrix.configuration }}
+ # Pass USE_VELOPACK to CMake when using Velopack installer (default) - Windows and macOS
+ autobuild_configure_parameters: ${{ (contains(matrix.runner, 'windows') || contains(matrix.runner, 'macos')) && (github.event.inputs.installer_type || 'velopack') == 'velopack' && '-- -DUSE_VELOPACK:BOOL=ON' || '' }}
steps:
- name: Checkout code
uses: actions/checkout@v5
@@ -126,6 +150,17 @@ jobs:
with:
token: ${{ github.token }}
+ - name: Setup .NET for Velopack
+ if: (runner.os == 'Windows' || runner.os == 'macOS') && (github.event.inputs.installer_type || 'velopack') == 'velopack'
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '9.0.x'
+
+ - name: Install Velopack CLI
+ if: (runner.os == 'Windows' || runner.os == 'macOS') && (github.event.inputs.installer_type || 'velopack') == 'velopack'
+ shell: bash
+ run: dotnet tool install -g vpk
+
- name: Build
id: build
shell: bash
@@ -310,13 +345,21 @@ jobs:
steps:
- name: Sign and package Windows viewer
if: env.AZURE_KEY_VAULT_URI && env.AZURE_CERT_NAME && env.AZURE_CLIENT_ID && env.AZURE_CLIENT_SECRET && env.AZURE_TENANT_ID
- uses: secondlife/viewer-build-util/sign-pkg-windows@v2.0.4
+ uses: secondlife/viewer-build-util/sign-pkg-windows@v2.1.0
with:
vault_uri: "${{ env.AZURE_KEY_VAULT_URI }}"
cert_name: "${{ env.AZURE_CERT_NAME }}"
client_id: "${{ env.AZURE_CLIENT_ID }}"
client_secret: "${{ env.AZURE_CLIENT_SECRET }}"
tenant_id: "${{ env.AZURE_TENANT_ID }}"
+ installer_type: "${{ github.event.inputs.installer_type || 'velopack' }}"
+ velopack_pack_id: "${{ needs.build.outputs.velopack_pack_id }}"
+ velopack_pack_version: "${{ needs.build.outputs.velopack_pack_version }}"
+ velopack_pack_title: "${{ needs.build.outputs.velopack_pack_title }}"
+ velopack_main_exe: "${{ needs.build.outputs.velopack_main_exe }}"
+ velopack_exclude: "${{ needs.build.outputs.velopack_exclude }}"
+ velopack_icon: "${{ needs.build.outputs.velopack_icon }}"
+ velopack_installer_base: "${{ needs.build.outputs.velopack_installer_base }}"
sign-and-package-mac:
env:
@@ -349,7 +392,7 @@ jobs:
- name: Sign and package Mac viewer
if: env.SIGNING_CERT_MACOS && env.SIGNING_CERT_MACOS_IDENTITY && env.SIGNING_CERT_MACOS_PASSWORD && steps.note-creds.outputs.note_user && steps.note-creds.outputs.note_pass && steps.note-creds.outputs.note_team
- uses: secondlife/viewer-build-util/sign-pkg-mac@v2
+ uses: secondlife/viewer-build-util/sign-pkg-mac@v2.1.0
with:
channel: ${{ needs.build.outputs.viewer_channel }}
imagename: ${{ needs.build.outputs.imagename }}
@@ -359,6 +402,11 @@ jobs:
note_user: ${{ steps.note-creds.outputs.note_user }}
note_pass: ${{ steps.note-creds.outputs.note_pass }}
note_team: ${{ steps.note-creds.outputs.note_team }}
+ velopack_pack_id: "${{ needs.build.outputs.velopack_mac_pack_id }}"
+ velopack_pack_version: "${{ needs.build.outputs.velopack_mac_pack_version }}"
+ velopack_pack_title: "${{ needs.build.outputs.velopack_mac_pack_title }}"
+ velopack_main_exe: "${{ needs.build.outputs.velopack_mac_main_exe }}"
+ velopack_bundle_id: "${{ needs.build.outputs.velopack_mac_bundle_id }}"
post-windows-symbols:
env:
@@ -439,6 +487,10 @@ jobs:
with:
pattern: "*-metadata"
+ - uses: actions/download-artifact@v4
+ with:
+ pattern: "*-releases"
+
- name: Rename metadata
run: |
cp Windows-metadata/autobuild-package.xml Windows-autobuild-package.xml
@@ -464,12 +516,14 @@ jobs:
generate_release_notes: true
target_commitish: ${{ github.sha }}
append_body: true
- fail_on_unmatched_files: true
+ fail_on_unmatched_files: false
files: |
macOS-installer/*.dmg
Windows-installer/*.exe
*-autobuild-package.xml
*-viewer_version.txt
+ Windows-releases/*
+ macOS-releases/*
- name: post release URL
run: |