@@ -3,7 +3,7 @@ name: Build
3
3
on :
4
4
pull_request :
5
5
push :
6
- branches : ["main", "release/*", "project/*"]
6
+ branches : ["develop", " main", "release/*", "project/*"]
7
7
tags : ["Second_Life*"]
8
8
9
9
jobs :
@@ -13,11 +13,15 @@ jobs:
13
13
runs-on : ubuntu-latest
14
14
outputs :
15
15
release_run : ${{ steps.setvar.outputs.release_run }}
16
- configurations : ${{ steps.setvar.outputs.configurations }}
16
+ config : ${{ steps.setvar.outputs.config }}
17
17
bugsplat_db : ${{ steps.setvar.outputs.bugsplat_db }}
18
18
env :
19
19
# Build with a tag like "Second_Life#abcdef0" to generate a release page
20
20
# (used for builds we are planning to deploy).
21
+ # Even though inputs.release_run is specified with type boolean, which
22
+ # correctly presents a checkbox, its *value* is a GH workflow string
23
+ # 'true' or 'false'. If you simply test github.event.inputs.release_run,
24
+ # it always evaluates as true because it's a non-empty string either way.
21
25
# When you want to use a string variable as a workflow YAML boolean, it's
22
26
# important to ensure it's the empty string when false. If you omit || '',
23
27
# its value when false is "false", which is interpreted as true.
@@ -32,30 +36,34 @@ jobs:
32
36
33
37
if [[ "$FROM_FORK" == "true" ]]; then
34
38
# PR from fork; don't build with Bugsplat, proprietary libs
35
- echo 'configurations=[" ReleaseOS"] ' >> $GITHUB_OUTPUT
39
+ echo 'config= ReleaseOS' >> $GITHUB_OUTPUT
36
40
echo "bugsplat_db=" >> $GITHUB_OUTPUT
37
41
else
38
- echo 'configurations=[" Release"] ' >> $GITHUB_OUTPUT
42
+ echo 'config= Release' >> $GITHUB_OUTPUT
39
43
echo "bugsplat_db=SecondLife_Viewer_2018" >> $GITHUB_OUTPUT
40
44
fi
41
45
build :
42
46
needs : setup
47
+ continue-on-error : ${{ matrix.experimental }}
43
48
strategy :
44
49
matrix :
45
- runner : [windows-large, macos-12-xl]
46
- configuration : ${{ fromJSON(needs.setup.outputs.configurations) }}
50
+ runner : [windows-large, macos-15-xlarge]
51
+ experimental : [false]
52
+ include :
53
+ - runner : linux-large
54
+ experimental : true
47
55
runs-on : ${{ matrix.runner }}
48
56
outputs :
49
57
viewer_channel : ${{ steps.build.outputs.viewer_channel }}
50
58
viewer_version : ${{ steps.build.outputs.viewer_version }}
51
59
viewer_branch : ${{ steps.which-branch.outputs.branch }}
52
60
relnotes : ${{ steps.which-branch.outputs.relnotes }}
53
61
imagename : ${{ steps.build.outputs.imagename }}
54
- configuration : ${{ matrix.configuration }}
62
+ config : ${{ needs.setup.outputs.config }}
55
63
env :
56
64
AUTOBUILD_ADDRSIZE : 64
57
65
AUTOBUILD_BUILD_ID : ${{ github.run_id }}
58
- AUTOBUILD_CONFIGURATION : ${{ matrix.configuration }}
66
+ AUTOBUILD_CONFIGURATION : ${{ needs.setup.outputs.config }}
59
67
# authorizes fetching private constituent packages
60
68
AUTOBUILD_GITHUB_TOKEN : ${{ secrets.SHARED_AUTOBUILD_GITHUB_TOKEN }}
61
69
AUTOBUILD_INSTALLABLE_CACHE : ${{ github.workspace }}/.autobuild-installables
64
72
# autobuild-package.xml.
65
73
AUTOBUILD_VCS_INFO : " true"
66
74
AUTOBUILD_VSVER : " 170"
67
- DEVELOPER_DIR : " /Applications/Xcode_14.0 .1.app/Contents/Developer"
75
+ DEVELOPER_DIR : " /Applications/Xcode_16 .1.app/Contents/Developer"
68
76
# Ensure that Linden viewer builds engage Bugsplat.
69
77
BUGSPLAT_DB : ${{ needs.setup.outputs.bugsplat_db }}
70
78
build_coverity : false
82
90
master_message_template_checkout : ${{ github.workspace }}/.master-message-template
83
91
# Only set variants to the one configuration: don't let build.sh loop
84
92
# over variants, let GitHub distribute variants over multiple hosts.
85
- variants : ${{ matrix.configuration }}
93
+ variants : ${{ needs.setup.outputs.config }}
86
94
steps :
87
95
- name : Checkout code
88
96
uses : actions/checkout@v4
@@ -115,11 +123,29 @@ jobs:
115
123
uses : actions/cache@v4
116
124
with :
117
125
path : .autobuild-installables
118
- key : ${{ runner.os }}-64-${{ matrix.configuration }}-${{ hashFiles('autobuild.xml') }}
126
+ key : ${{ runner.os }}-64-${{ needs.setup.outputs.config }}-${{ hashFiles('autobuild.xml') }}
119
127
restore-keys : |
120
- ${{ runner.os }}-64-${{ matrix.configuration }}-
128
+ ${{ runner.os }}-64-${{ needs.setup.outputs.config }}-
121
129
${{ runner.os }}-64-
122
130
131
+ - name : Install Linux dependencies
132
+ if : runner.os == 'Linux'
133
+ run : |
134
+ sudo apt update
135
+ sudo apt install -y \
136
+ libpulse-dev libunwind-dev \
137
+ libgl1-mesa-dev libglu1-mesa-dev libxinerama-dev \
138
+ libxcursor-dev libxfixes-dev libgstreamer1.0-dev \
139
+ libgstreamer-plugins-base1.0-dev ninja-build libxft-dev \
140
+ llvm mold libpipewire-0.3-dev libosmesa6-dev libdbus-1-dev
141
+ sudo locale-gen en_US.UTF-8
142
+ sudo locale-gen en_GB.UTF-8
143
+ sudo locale-gen fr_FR.UTF-8
144
+
145
+ - name : Install windows dependencies
146
+ if : runner.os == 'Windows'
147
+ run : choco install nsis-unicode
148
+
123
149
- name : Determine source branch
124
150
id : which-branch
125
151
uses : secondlife/viewer-build-util/which-branch@v2
@@ -227,7 +253,7 @@ jobs:
227
253
export viewer_channel="Second Life Test"
228
254
fi
229
255
fi
230
- echo "viewer_channel=$viewer_channel"
256
+ echo "::notice::$RUNNER_OS viewer_channel=$viewer_channel"
231
257
echo "viewer_channel=$viewer_channel" >> "$GITHUB_OUTPUT"
232
258
# On windows we need to point the build to the correct python
233
259
# as neither CMake's FindPython nor our custom Python.cmake module
@@ -269,6 +295,7 @@ jobs:
269
295
path : |
270
296
${{ steps.build.outputs.viewer_app }}
271
297
298
+
272
299
# The other upload of nontrivial size is the symbol file. Use a distinct
273
300
# artifact for that too.
274
301
- name : Upload symbol file
@@ -289,7 +316,7 @@ jobs:
289
316
- name : Upload physics package
290
317
uses : actions/upload-artifact@v4
291
318
# should only be set for viewer-private
292
- if : matrix.configuration == 'Release' && steps.build.outputs.physicstpv
319
+ if : needs.setup.outputs.config == 'Release' && steps.build.outputs.physicstpv
293
320
with :
294
321
name : " ${{ steps.build.outputs.artifact }}-physics"
295
322
# emitted by build.sh, zero or one lines
@@ -363,7 +390,7 @@ jobs:
363
390
BUGSPLAT_USER : ${{ secrets.BUGSPLAT_USER }}
364
391
BUGSPLAT_PASS : ${{ secrets.BUGSPLAT_PASS }}
365
392
needs : build
366
- if : needs.build.outputs.configuration == 'Release'
393
+ if : needs.build.outputs.config == 'Release'
367
394
runs-on : ubuntu-latest
368
395
steps :
369
396
- name : Download viewer exe
@@ -398,7 +425,7 @@ jobs:
398
425
BUGSPLAT_USER : ${{ secrets.BUGSPLAT_USER }}
399
426
BUGSPLAT_PASS : ${{ secrets.BUGSPLAT_PASS }}
400
427
needs : build
401
- if : needs.build.outputs.configuration == 'Release'
428
+ if : needs.build.outputs.config == 'Release'
402
429
runs-on : ubuntu-latest
403
430
steps :
404
431
- name : Download Mac Symbols
@@ -431,12 +458,18 @@ jobs:
431
458
with :
432
459
pattern : " *-metadata"
433
460
461
+ - uses : actions/download-artifact@v4
462
+ with :
463
+ pattern : " Linux-app"
464
+
434
465
- name : Rename metadata
435
466
run : |
436
467
cp Windows-metadata/autobuild-package.xml Windows-autobuild-package.xml
437
468
cp Windows-metadata/newview/viewer_version.txt Windows-viewer_version.txt
438
469
cp macOS-metadata/autobuild-package.xml macOS-autobuild-package.xml
439
470
cp macOS-metadata/newview/viewer_version.txt macOS-viewer_version.txt
471
+ cp Linux-metadata/autobuild-package.xml Linux-autobuild-package.xml
472
+ cp Linux-metadata/newview/viewer_version.txt Linux-viewer_version.txt
440
473
441
474
# forked from softprops/action-gh-release
442
475
- name : Create GitHub release
@@ -451,7 +484,7 @@ jobs:
451
484
Build ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
452
485
${{ needs.build.outputs.viewer_channel }}
453
486
${{ needs.build.outputs.viewer_version }}
454
- ${{ needs.build .outputs.relnotes }}
487
+ ${{ needs.setvar .outputs.relnotes }}
455
488
prerelease : true
456
489
generate_release_notes : true
457
490
target_commitish : ${{ github.sha }}
@@ -461,6 +494,7 @@ jobs:
461
494
files : |
462
495
macOS-installer/*.dmg
463
496
Windows-installer/*.exe
497
+ Linux-app/*.tar.xz
464
498
*-autobuild-package.xml
465
499
*-viewer_version.txt
466
500
0 commit comments