Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions .github/workflows/appimage.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
name: AppImage
# TEMP(ci-iteration): manual-only so the Coverage job can be iterated
# without spending the whole matrix. REVERT BEFORE MERGE.
on:
pull_request:
push:
branches:
- master
tags:
- v*
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand Down
9 changes: 3 additions & 6 deletions .github/workflows/bsd.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
name: BSDs
# TEMP(ci-iteration): manual-only so the Coverage job can be iterated
# without spending the whole matrix. REVERT BEFORE MERGE.
on:
pull_request:
push:
branches:
- master
tags:
- v*
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand Down
9 changes: 3 additions & 6 deletions .github/workflows/builds.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
name: Linux distro build
# TEMP(ci-iteration): manual-only so the Coverage job can be iterated
# without spending the whole matrix. REVERT BEFORE MERGE.
on:
pull_request:
push:
branches:
- master
tags:
- v*
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand Down
66 changes: 66 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Coverage

on:
pull_request:
push:
branches:
- master

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
coverage:
name: Coverage (Coveralls)
runs-on: ubuntu-latest
container:
image: ubuntu:noble

steps:
- name: Install git
run: |
apt-get update -qq
apt-get install -qq --no-install-recommends --force-yes git ca-certificates curl

- name: Checkout code
uses: actions/checkout@v6
with:
submodules: 'recursive'

# The container runs as root while the checkout is owned by a different
# uid; without this git refuses operations and gcovr --coveralls (which
# embeds git metadata) fails.
- name: Trust workspace
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"

- name: Dependencies
run: |
./ci/ubuntu.noble.deps.sh
# Coverage report generator + a clang/llvm toolchain (llvm-cov gcov)
# + software OpenGL (llvmpipe) + a virtual X display (xvfb) so the
# SCORE_TESTING ctest suite (incl. GUI-labelled tests) can run.
apt-get install -y --no-install-recommends \
gcovr clang lld llvm \
libgl1-mesa-dri libglx-mesa0 mesa-utils xvfb \
qml6-module-qtqml-workerscript

- name: Build, run tests, generate Coveralls report
env:
# clang-19 comes from ubuntu.noble.deps.sh; the distro's default
# clang-18 miscompiles the target("default")/target("avx2") function
# multiversioning in FileContains.cpp as a redefinition.
CC: clang-19
CXX: clang++-19
GCOV: "llvm-cov-19 gcov"
run: ./ci/coverage.build.sh

# Uploads via the Coveralls GitHub App (github.token) — no secret needed
# for public repos once the App is enabled on ossia/score. Runs even if a
# test failed so partial coverage is still reported.
- name: Upload to Coveralls
if: always()
uses: coverallsapp/github-action@v2
with:
file: coverage.json
format: coveralls
269 changes: 131 additions & 138 deletions .github/workflows/custom.yml
Original file line number Diff line number Diff line change
@@ -1,138 +1,131 @@
name: Custom build
on:
workflow_dispatch:
inputs:
cmake_options:
description: 'Additional CMake options'
required: true
type: string
cmake_cache:
description: 'Custom CMake cache file'
required: false
type: string

jobs:
appimage:
name: AppImage
strategy:
matrix:
include:
- { image: ubuntu-24.04, cpu_arch: x86_64 }
- { image: ubuntu-24.04-arm, cpu_arch: aarch64 }

runs-on: ${{ matrix.image }}
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: 'recursive'

- name: Dependencies
run: |
export CPU_ARCH=${{ matrix.cpu_arch }}
./ci/appimage.deps.sh

- name: Build
run: |
export CPU_ARCH=${{ matrix.cpu_arch }}
./ci/appimage.build.sh
env:
SCORE_EXTRA_CMAKE_ARGS: ${{ inputs.cmake_options }}
SCORE_CMAKE_CACHE: ${{ inputs.cmake_cache }}

- name: Deploy
run: |
export GITTAGNOV=$(echo "$GITHUB_REF" | sed "s/.*\///;s/^v//")
export BUILD_ARTIFACTSTAGINGDIRECTORY="$PWD/staging"
export CPU_ARCH=${{ matrix.cpu_arch }}
mkdir -p "$BUILD_ARTIFACTSTAGINGDIRECTORY"
./ci/appimage.deploy.sh

- name: Upload build
uses: actions/upload-artifact@v7
with:
name: appimage-${{ matrix.cpu_arch }}
path: |
staging/*.*

win32:
name: Windows
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: 'recursive'

- name: Dependencies
shell: bash
run: ./ci/win32.deps.sh

- name: Build
shell: bash
run: ./ci/win32.build.sh
env:
SCORE_EXTRA_CMAKE_ARGS: ${{ inputs.cmake_options }}
SCORE_CMAKE_CACHE: ${{ inputs.cmake_cache }}
- name: Deploy
shell: bash
run: |
export GITTAGNOV=$(echo "$GITHUB_REF" | sed "s/.*\///;s/^v//")
export BUILD_ARTIFACTSTAGINGDIRECTORY="$PWD/staging"
mkdir -p "$BUILD_ARTIFACTSTAGINGDIRECTORY"
./ci/win32.deploy.sh

- name: Upload build
uses: actions/upload-artifact@v7
with:
name: windows
path: |
staging/*.*

m1-package:
name: macOS (AppleSilicon Release)
runs-on: macos-26
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: 'recursive'

- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '>=16'

- run: |
source ci/osx.package.deps.sh
env:
MACOS_ARCH: "aarch64"
MAC_CERT_B64: ${{ secrets.MAC_CERT_B64 }}
MAC_CODESIGN_PASSWORD: ${{ secrets.MAC_CERT_PASSWORD }}

- uses: jcelerier/import-codesign-certs@master
with:
p12-file-base64: ${{ secrets.MAC_CERT_B64 }}
p12-password: ${{ secrets.MAC_CERT_PASSWORD }}

- run: |
source ci/osx.package.build.sh
env:
MACOS_ARCH: "aarch64"
SCORE_EXTRA_CMAKE_ARGS: ${{ inputs.cmake_options }}
SCORE_CMAKE_CACHE: ${{ inputs.cmake_cache }}

- run: |
export GITTAGNOV=$(echo "$GITHUB_REF" | sed "s/.*\///;s/^v//")
export BUILD_ARTIFACTSTAGINGDIRECTORY=$PWD/staging
mkdir -p $BUILD_ARTIFACTSTAGINGDIRECTORY
source ci/osx.package.deploy.sh
env:
MACOS_ARCH: "aarch64"
MAC_ALTOOL_PASSWORD: ${{ secrets.MAC_ALTOOL_PASSWORD }}

- name: Upload build
uses: actions/upload-artifact@v7
with:
name: macos-aarch64
path: |
staging/*.*
name: Custom build
# TEMP(ci-iteration): manual-only so the Coverage job can be iterated
# without spending the whole matrix. REVERT BEFORE MERGE.
on:
workflow_dispatch:

jobs:
appimage:
name: AppImage
strategy:
matrix:
include:
- { image: ubuntu-24.04, cpu_arch: x86_64 }
- { image: ubuntu-24.04-arm, cpu_arch: aarch64 }

runs-on: ${{ matrix.image }}
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: 'recursive'

- name: Dependencies
run: |
export CPU_ARCH=${{ matrix.cpu_arch }}
./ci/appimage.deps.sh

- name: Build
run: |
export CPU_ARCH=${{ matrix.cpu_arch }}
./ci/appimage.build.sh
env:
SCORE_EXTRA_CMAKE_ARGS: ${{ inputs.cmake_options }}
SCORE_CMAKE_CACHE: ${{ inputs.cmake_cache }}

- name: Deploy
run: |
export GITTAGNOV=$(echo "$GITHUB_REF" | sed "s/.*\///;s/^v//")
export BUILD_ARTIFACTSTAGINGDIRECTORY="$PWD/staging"
export CPU_ARCH=${{ matrix.cpu_arch }}
mkdir -p "$BUILD_ARTIFACTSTAGINGDIRECTORY"
./ci/appimage.deploy.sh

- name: Upload build
uses: actions/upload-artifact@v7
with:
name: appimage-${{ matrix.cpu_arch }}
path: |
staging/*.*

win32:
name: Windows
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: 'recursive'

- name: Dependencies
shell: bash
run: ./ci/win32.deps.sh

- name: Build
shell: bash
run: ./ci/win32.build.sh
env:
SCORE_EXTRA_CMAKE_ARGS: ${{ inputs.cmake_options }}
SCORE_CMAKE_CACHE: ${{ inputs.cmake_cache }}
- name: Deploy
shell: bash
run: |
export GITTAGNOV=$(echo "$GITHUB_REF" | sed "s/.*\///;s/^v//")
export BUILD_ARTIFACTSTAGINGDIRECTORY="$PWD/staging"
mkdir -p "$BUILD_ARTIFACTSTAGINGDIRECTORY"
./ci/win32.deploy.sh

- name: Upload build
uses: actions/upload-artifact@v7
with:
name: windows
path: |
staging/*.*

m1-package:
name: macOS (AppleSilicon Release)
runs-on: macos-26
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: 'recursive'

- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '>=16'

- run: |
source ci/osx.package.deps.sh
env:
MACOS_ARCH: "aarch64"
MAC_CERT_B64: ${{ secrets.MAC_CERT_B64 }}
MAC_CODESIGN_PASSWORD: ${{ secrets.MAC_CERT_PASSWORD }}

- uses: jcelerier/import-codesign-certs@master
with:
p12-file-base64: ${{ secrets.MAC_CERT_B64 }}
p12-password: ${{ secrets.MAC_CERT_PASSWORD }}

- run: |
source ci/osx.package.build.sh
env:
MACOS_ARCH: "aarch64"
SCORE_EXTRA_CMAKE_ARGS: ${{ inputs.cmake_options }}
SCORE_CMAKE_CACHE: ${{ inputs.cmake_cache }}

- run: |
export GITTAGNOV=$(echo "$GITHUB_REF" | sed "s/.*\///;s/^v//")
export BUILD_ARTIFACTSTAGINGDIRECTORY=$PWD/staging
mkdir -p $BUILD_ARTIFACTSTAGINGDIRECTORY
source ci/osx.package.deploy.sh
env:
MACOS_ARCH: "aarch64"
MAC_ALTOOL_PASSWORD: ${{ secrets.MAC_ALTOOL_PASSWORD }}

- name: Upload build
uses: actions/upload-artifact@v7
with:
name: macos-aarch64
path: |
staging/*.*
9 changes: 3 additions & 6 deletions .github/workflows/debian-builds.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
name: Debian build
# TEMP(ci-iteration): manual-only so the Coverage job can be iterated
# without spending the whole matrix. REVERT BEFORE MERGE.
on:
pull_request:
push:
branches:
- master
tags:
- v*
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Expand Down
Loading