summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorNicky Dasmijn <nicky.dasmijn@posteo.nl>2024-04-08 22:39:20 +0200
committerGitHub <noreply@github.com>2024-04-08 23:39:20 +0300
commit6b4b33cc129e9482342c9280ae79c9c5ce427ef1 (patch)
tree24ba69020d29755529cf043ffaf7b5e1b38ae268 /.github
parentbbd6dfc21a1a6c07824fc81e0659a2c200581d3b (diff)
Linux GHA builds (#1147)
* Linux GHA builds Add Ubuntu 22.04 runner and Linux dependencies Do not even try to touch ReleaseFS for Linux yet (this needs KDU, Havok, FMOD) * Lets play a game of 'guess the havok source url' * Move to linux-large runner. * ReleaseOS used OpenAL, not fmod studio (which otherwise is the default) * - Correction for Linux build dir - HAVOK / CrashReporting wrestling. HAVOK is always turned on, even for OS builds Turn this off for Linux-ReleaseOS Same with crashreporting, we need it off for now * Add missing brace * When doing a GHA build pack right into RUNNER_TEMP and then signal the created archive as our "viewer_app" * Upload Linux-ReleaseOS after build * - Need to use os.path.join and not hyst join - set_github_output_path can be called unconditionally * Remove Linux GHA build example.
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build.yaml24
-rw-r--r--.github/workflows/build_linux.yaml47
2 files changed, 20 insertions, 51 deletions
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index c7a758bd0f..3ac470b5ed 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -11,7 +11,7 @@ jobs:
build:
strategy:
matrix:
- runner: [windows-large, macos-12-xl]
+ runner: [windows-large, macos-12-xl, linux-large]
configuration: [Release, ReleaseOS]
python-version: ["3.11"]
include:
@@ -20,6 +20,8 @@ jobs:
exclude:
- runner: macos-12-xl
configuration: ReleaseOS
+ - runner: linux-large
+ configuration: Release
runs-on: ${{ matrix.runner }}
outputs:
viewer_channel: ${{ steps.build.outputs.viewer_channel }}
@@ -95,6 +97,10 @@ 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 libfltk1.3-dev libunwind-dev libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev libxrender-dev libxfixes-dev libxxf86vm-dev libxss-dev libdbus-1-dev libudev-dev libssl-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libfreetype6-dev ninja-build libxft-dev
+
- name: Install windows dependencies
if: runner.os == 'Windows'
run: choco install nsis-unicode
@@ -230,6 +236,16 @@ jobs:
path: |
${{ steps.build.outputs.viewer_app }}
+ # ND: We only have ReleaseOS builds for Linux so far, thus upload what we have
+ # This steps can be deleted once "Release" is in place and makes "ReleaseOS" obsolete (for upload)
+ - name: Upload Linux ReleaseOS archive
+ if: matrix.configuration == 'ReleaseOS' && steps.build.outputs.viewer_app && matrix.os == 'linux'
+ uses: actions/upload-artifact@v3
+ with:
+ name: "${{ steps.build.outputs.artifact }}-app"
+ path: |
+ ${{ steps.build.outputs.viewer_app }}
+
# The other upload of nontrivial size is the symbol file. Use a distinct
# artifact for that too.
- name: Upload symbol file
@@ -372,7 +388,7 @@ jobs:
with:
name: Windows-metadata
- - name: Rename windows metadata
+ - name: Rename windows metadata
run: |
mv autobuild-package.xml Windows-autobuild-package.xml
mv newview/viewer_version.txt Windows-viewer_version.txt
@@ -381,7 +397,7 @@ jobs:
with:
name: macOS-metadata
- - name: Rename macOS metadata
+ - name: Rename macOS metadata
run: |
mv autobuild-package.xml macOS-autobuild-package.xml
mv newview/viewer_version.txt macOS-viewer_version.txt
@@ -407,7 +423,7 @@ jobs:
append_body: true
fail_on_unmatched_files: true
files: |
- *.dmg
+ *.dmg
*.exe
*-autobuild-package.xml
*-viewer_version.txt
diff --git a/.github/workflows/build_linux.yaml b/.github/workflows/build_linux.yaml
deleted file mode 100644
index 005284e984..0000000000
--- a/.github/workflows/build_linux.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-name: Linux build example
-on:
- workflow_dispatch:
- push:
-jobs:
- build:
- runs-on: ubuntu-22.04
- env:
- AUTOBUILD_ADDRSIZE: 64
- AUTOBUILD_VARIABLES_FILE: ${{ github.workspace }}/.build-variables/variables
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- with:
- ref: ${{ github.event.pull_request.head.sha || github.sha }}
-
- - name: Setup python
- uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
-
- - name: Checkout build variables
- uses: actions/checkout@v4
- with:
- repository: secondlife/build-variables
- ref: viewer
- path: .build-variables
-
- - name: Checkout master-message-template
- uses: actions/checkout@v4
- with:
- repository: secondlife/master-message-template
- path: .master-message-template
-
- - name: Install autobuild and python dependencies
- run: pip3 install autobuild llsd
-
- - name: Install Linux dependencies
- if: runner.os == 'linux'
- run: sudo apt update && sudo apt install -y libfltk1.3-dev libunwind-dev libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev libxrender-dev libxfixes-dev libxxf86vm-dev libxss-dev libdbus-1-dev libudev-dev libssl-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libfreetype6-dev ninja-build libxft-dev
-
- - name: Build
- id: build
- shell: bash
- run: |
- autobuild configure -c ReleaseOS -A64
- cd build-linux-x86_64 && ninja -k0