CI/Flatpak: Switch from JSON -> YAML

Actually lets me have comments...
This commit is contained in:
Stenzek 2024-08-06 14:12:08 +10:00
parent 0517aef5bd
commit cabba81a76
No known key found for this signature in database
18 changed files with 250 additions and 282 deletions

View File

@ -295,14 +295,14 @@ jobs:
run: flatpak-builder-lint appstream scripts/flatpak/org.duckstation.DuckStation.metainfo.xml
- name: Validate manifest
run: flatpak-builder-lint manifest scripts/flatpak/org.duckstation.DuckStation.json
run: flatpak-builder-lint manifest scripts/flatpak/org.duckstation.DuckStation.yaml
- name: Build Flatpak
uses: flathub-infra/flatpak-github-actions/flatpak-builder@23796715b3dfa4c86ddf50cf29c3cc8b3c82dca8
with:
bundle: duckstation-x64.flatpak
upload-artifact: false
manifest-path: scripts/flatpak/org.duckstation.DuckStation.json
manifest-path: scripts/flatpak/org.duckstation.DuckStation.yaml
arch: x86_64
build-bundle: true
verbose: true
@ -310,7 +310,7 @@ jobs:
branch: stable
cache: true
restore-cache: true
cache-key: flatpak-x64-${{ hashFiles('scripts/flatpak/**/*.json') }}
cache-key: flatpak-x64-${{ hashFiles('scripts/flatpak/**/*.yaml') }}
- name: Push to Flathub stable
if: github.ref == 'refs/heads/dev'

View File

@ -1,30 +0,0 @@
{
"name": "sdl2",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DBUILD_SHARED_LIBS=ON",
"-DSDL_SHARED=ON",
"-DSDL_STATIC=OFF",
"-DSDL_TESTS=OFF"
],
"build-options": {
"strip": true
},
"sources": [
{
"type": "archive",
"url": "https://github.com/libsdl-org/SDL/releases/download/release-2.30.6/SDL2-2.30.6.tar.gz",
"sha256": "c6ef64ca18a19d13df6eb22df9aff19fb0db65610a74cc81dae33a82235cacd4"
}
],
"cleanup": [
"/bin",
"/include",
"/lib/*.a",
"/lib/*.la",
"/lib/cmake",
"/lib/pkgconfig",
"/share/aclocal"
]
}

View File

@ -0,0 +1,23 @@
name: sdl2
buildsystem: cmake-ninja
builddir: true
config-opts:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DBUILD_SHARED_LIBS=ON"
- "-DSDL_SHARED=ON"
- "-DSDL_STATIC=OFF"
- "-DSDL_TESTS=OFF"
build-options:
strip: true
sources:
- type: archive
url: "https://github.com/libsdl-org/SDL/releases/download/release-2.30.6/SDL2-2.30.6.tar.gz"
sha256: "c6ef64ca18a19d13df6eb22df9aff19fb0db65610a74cc81dae33a82235cacd4"
cleanup:
- /bin
- /include
- /lib/*.a
- /lib/*.la
- /lib/cmake
- /lib/pkgconfig
- /share/aclocal

View File

@ -1,21 +0,0 @@
{
"name": "libbacktrace",
"buildsystem": "autotools",
"no-autogen": true,
"build-options": {
"strip": false,
"no-debuginfo": true
},
"sources": [
{
"type": "git",
"url": "https://github.com/ianlancetaylor/libbacktrace.git",
"commit": "ad106d5fdd5d960bd33fae1c48a351af567fd075"
}
],
"cleanup": [
"/include",
"/lib/*.a",
"/lib/*.la"
]
}

View File

@ -0,0 +1,14 @@
name: libbacktrace
buildsystem: autotools
no-autogen: true
build-options:
strip: false
no-debuginfo: true
sources:
- type: git
url: "https://github.com/ianlancetaylor/libbacktrace.git"
commit: "ad106d5fdd5d960bd33fae1c48a351af567fd075"
cleanup:
- /include
- /lib/*.a
- /lib/*.la

View File

@ -1,29 +0,0 @@
{
"name": "shaderc",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DSHADERC_SKIP_TESTS=ON",
"-DSHADERC_SKIP_EXAMPLES=ON",
"-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
],
"build-options": {
"strip": true
},
"sources": [
{
"type": "git",
"url": "https://github.com/stenzek/shaderc.git",
"commit": "feb2460bf3a504d67011246edeb810c45ea58826"
}
],
"cleanup": [
"/bin",
"/include",
"/lib/*.a",
"/lib/*.la",
"/lib/cmake",
"/lib/pkgconfig"
]
}

View File

@ -0,0 +1,21 @@
name: shaderc
buildsystem: cmake-ninja
builddir: true
config-opts:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DSHADERC_SKIP_TESTS=ON"
- "-DSHADERC_SKIP_EXAMPLES=ON"
- "-DSHADERC_SKIP_COPYRIGHT_CHECK=ON"
build-options:
strip: true
sources:
- type: git
url: "https://github.com/stenzek/shaderc.git"
commit: "feb2460bf3a504d67011246edeb810c45ea58826"
cleanup:
- /bin
- /include
- /lib/*.a
- /lib/*.la
- /lib/cmake
- /lib/pkgconfig

View File

@ -1,39 +0,0 @@
{
"name": "spirv-cross",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DSPIRV_CROSS_SHARED=ON",
"-DSPIRV_CROSS_STATIC=OFF",
"-DSPIRV_CROSS_CLI=OFF",
"-DSPIRV_CROSS_ENABLE_TESTS=OFF",
"-DSPIRV_CROSS_ENABLE_GLSL=ON",
"-DSPIRV_CROSS_ENABLE_HLSL=OFF",
"-DSPIRV_CROSS_ENABLE_MSL=OFF",
"-DSPIRV_CROSS_ENABLE_CPP=OFF",
"-DSPIRV_CROSS_ENABLE_REFLECT=OFF",
"-DSPIRV_CROSS_ENABLE_C_API=ON",
"-DSPIRV_CROSS_ENABLE_UTIL=ON"
],
"build-options": {
"strip": true
},
"sources": [
{
"type": "git",
"url": "https://github.com/KhronosGroup/SPIRV-Cross.git",
"tag": "vulkan-sdk-1.3.290.0",
"commit": "5d127b917f080c6f052553c47170ec0ba702e54f"
}
],
"cleanup": [
"/bin",
"/include",
"/lib/*.a",
"/lib/*.la",
"/lib/cmake",
"/lib/pkgconfig",
"/share"
]
}

View File

@ -0,0 +1,31 @@
name: spirv-cross
buildsystem: cmake-ninja
builddir: true
config-opts:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DSPIRV_CROSS_SHARED=ON"
- "-DSPIRV_CROSS_STATIC=OFF"
- "-DSPIRV_CROSS_CLI=OFF"
- "-DSPIRV_CROSS_ENABLE_TESTS=OFF"
- "-DSPIRV_CROSS_ENABLE_GLSL=ON"
- "-DSPIRV_CROSS_ENABLE_HLSL=OFF"
- "-DSPIRV_CROSS_ENABLE_MSL=OFF"
- "-DSPIRV_CROSS_ENABLE_CPP=OFF"
- "-DSPIRV_CROSS_ENABLE_REFLECT=OFF"
- "-DSPIRV_CROSS_ENABLE_C_API=ON"
- "-DSPIRV_CROSS_ENABLE_UTIL=ON"
build-options:
strip: true
sources:
- type: git
url: "https://github.com/KhronosGroup/SPIRV-Cross.git"
tag: "vulkan-sdk-1.3.290.0"
commit: "5d127b917f080c6f052553c47170ec0ba702e54f"
cleanup:
- /bin
- /include
- /lib/*.a
- /lib/*.la
- /lib/cmake
- /lib/pkgconfig
- /share

View File

@ -1,36 +0,0 @@
{
"name": "cpuinfo",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DCPUINFO_LIBRARY_TYPE=shared",
"-DCPUINFO_RUNTIME_TYPE=shared",
"-DCPUINFO_LOG_LEVEL=error",
"-DCPUINFO_LOG_TO_STDIO=ON",
"-DCPUINFO_BUILD_TOOLS=OFF",
"-DCPUINFO_BUILD_UNIT_TESTS=OFF",
"-DCPUINFO_BUILD_MOCK_TESTS=OFF",
"-DCPUINFO_BUILD_BENCHMARKS=OFF",
"-DUSE_SYSTEM_LIBS=ON"
],
"build-options": {
"strip": true
},
"sources": [
{
"type": "git",
"url": "https://github.com/stenzek/cpuinfo.git",
"commit": "7524ad504fdcfcf75a18a133da6abd75c5d48053"
}
],
"cleanup": [
"/bin",
"/include",
"/lib/*.a",
"/lib/*.la",
"/lib/cmake",
"/lib/pkgconfig",
"/share"
]
}

View File

@ -0,0 +1,28 @@
name: cpuinfo
buildsystem: cmake-ninja
builddir: true
config-opts:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCPUINFO_LIBRARY_TYPE=shared"
- "-DCPUINFO_RUNTIME_TYPE=shared"
- "-DCPUINFO_LOG_LEVEL=error"
- "-DCPUINFO_LOG_TO_STDIO=ON"
- "-DCPUINFO_BUILD_TOOLS=OFF"
- "-DCPUINFO_BUILD_UNIT_TESTS=OFF"
- "-DCPUINFO_BUILD_MOCK_TESTS=OFF"
- "-DCPUINFO_BUILD_BENCHMARKS=OFF"
- "-DUSE_SYSTEM_LIBS=ON"
build-options:
strip: true
sources:
- type: git
url: "https://github.com/stenzek/cpuinfo.git"
commit: "7524ad504fdcfcf75a18a133da6abd75c5d48053"
cleanup:
- /bin
- /include
- /lib/*.a
- /lib/*.la
- /lib/cmake
- /lib/pkgconfig
- /share

View File

@ -1,28 +0,0 @@
{
"name": "discord-rpc",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DBUILD_SHARED_LIBS=ON"
],
"build-options": {
"strip": true
},
"sources": [
{
"type": "git",
"url": "https://github.com/stenzek/discord-rpc.git",
"commit": "144f3a3f1209994d8d9e8a87964a989cb9911c1e"
}
],
"cleanup": [
"/bin",
"/include",
"/lib/*.a",
"/lib/*.la",
"/lib/cmake",
"/lib/pkgconfig",
"/share"
]
}

View File

@ -0,0 +1,20 @@
name: discord-rpc
buildsystem: cmake-ninja
builddir: true
config-opts:
- "-DCMAKE_BUILD_TYPE=Release"
- "-DBUILD_SHARED_LIBS=ON"
build-options:
strip: true
sources:
- type: git
url: "https://github.com/stenzek/discord-rpc.git"
commit: "144f3a3f1209994d8d9e8a87964a989cb9911c1e"
cleanup:
- /bin
- /include
- /lib/*.a
- /lib/*.la
- /lib/cmake
- /lib/pkgconfig
- /share

View File

@ -1,28 +0,0 @@
{
"name": "soundtouch",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
],
"build-options": {
"strip": true
},
"sources": [
{
"type": "git",
"url": "https://github.com/stenzek/soundtouch.git",
"commit": "463ade388f3a51da078dc9ed062bf28e4ba29da7"
}
],
"cleanup": [
"/bin",
"/include",
"/lib/*.a",
"/lib/*.la",
"/lib/cmake",
"/lib/pkgconfig",
"/share"
]
}

View File

@ -0,0 +1,27 @@
name: soundtouch
buildsystem: cmake-ninja
builddir: true
config-opts:
- "-DCMAKE_BUILD_TYPE=Release"
# Use clang with LTO for speed.
- "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
- "-DCMAKE_C_COMPILER=/usr/lib/sdk/llvm17/bin/clang"
- "-DCMAKE_CXX_COMPILER=/usr/lib/sdk/llvm17/bin/clang++"
- "-DCMAKE_EXE_LINKER_FLAGS_INIT=-fuse-ld=lld"
- "-DCMAKE_MODULE_LINKER_FLAGS_INIT=-fuse-ld=lld"
- "-DCMAKE_SHARED_LINKER_FLAGS_INIT=-fuse-ld=lld"
build-options:
strip: true
sources:
- type: git
url: "https://github.com/stenzek/soundtouch.git"
commit: "463ade388f3a51da078dc9ed062bf28e4ba29da7"
cleanup:
- /bin
- /include
- /lib/*.a
- /lib/*.la
- /lib/cmake
- /lib/pkgconfig
- /share

View File

@ -1,67 +0,0 @@
{
"app-id": "org.duckstation.DuckStation",
"runtime": "org.kde.Platform",
"runtime-version": "6.7",
"sdk": "org.kde.Sdk",
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.llvm17"
],
"command": "duckstation-qt",
"finish-args": [
"--device=all",
"--allow=bluetooth",
"--share=network",
"--share=ipc",
"--socket=x11",
"--socket=pulseaudio",
"--talk-name=org.freedesktop.ScreenSaver",
"--env=QT_QPA_PLATFORM=xcb"
],
"modules": [
"modules/20-sdl2.json",
"modules/21-libbacktrace.json",
"modules/22-shaderc.json",
"modules/23-spirv-cross.json",
"modules/24-cpuinfo.json",
"modules/25-discord-rpc.json",
"modules/26-soundtouch.json",
{
"name": "duckstation",
"buildsystem": "cmake-ninja",
"builddir": true,
"no-make-install": true,
"build-options": {
"strip": false,
"no-debuginfo": true,
"cflags": "",
"cflags-override": true,
"cxxflags": "",
"cxxflags-override": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON",
"-DBUILD_NOGUI_FRONTEND=OFF",
"-DBUILD_QT_FRONTEND=ON",
"-DBUILD_TESTS=OFF",
"-DCMAKE_C_COMPILER=/usr/lib/sdk/llvm17/bin/clang",
"-DCMAKE_CXX_COMPILER=/usr/lib/sdk/llvm17/bin/clang++",
"-DCMAKE_EXE_LINKER_FLAGS_INIT=-fuse-ld=lld",
"-DCMAKE_MODULE_LINKER_FLAGS_INIT=-fuse-ld=lld",
"-DCMAKE_SHARED_LINKER_FLAGS_INIT=-fuse-ld=lld"
]
},
"sources": [
{
"type": "dir",
"path": "../.."
}
],
"post-install": [
"cp -a bin \"${FLATPAK_DEST}\"",
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/scripts/org.duckstation.DuckStation.png\" \"${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/org.duckstation.DuckStation.png\"",
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/scripts/org.duckstation.DuckStation.desktop\" \"${FLATPAK_DEST}/share/applications/org.duckstation.DuckStation.desktop\"",
"install -Dm644 \"${FLATPAK_BUILDER_BUILDDIR}/scripts/flatpak/org.duckstation.DuckStation.metainfo.xml\" \"${FLATPAK_DEST}/share/metainfo/org.duckstation.DuckStation.metainfo.xml\""
]
}
]
}

View File

@ -0,0 +1,82 @@
app-id: "org.duckstation.DuckStation"
runtime: "org.kde.Platform"
runtime-version: "6.7"
sdk: "org.kde.Sdk"
sdk-extensions:
- "org.freedesktop.Sdk.Extension.llvm17"
command: "duckstation-qt"
finish-args:
- "--device=all"
- "--allow=bluetooth"
- "--share=network"
- "--share=ipc"
- "--socket=pulseaudio"
- "--talk-name=org.freedesktop.ScreenSaver"
# Wayland is disabled due to various QtWayland issues, causing broken UI.
- "--socket=x11"
- "--env=QT_QPA_PLATFORM=xcb"
modules:
# Dependencies.
- "modules/20-sdl2.yaml"
- "modules/21-libbacktrace.yaml"
- "modules/22-shaderc.yaml"
- "modules/23-spirv-cross.yaml"
- "modules/24-cpuinfo.yaml"
- "modules/25-discord-rpc.yaml"
- "modules/26-soundtouch.yaml"
# Main module.
- name: duckstation
buildsystem: cmake-ninja
builddir: true
no-make-install: true
build-options:
# Preserve debug information, it is needed for backtraces.
strip: false
no-debuginfo: true
# Prevent flatpak defaults of fortify etc from creeping in.
cflags: ""
cflags-override: true
cxxflags: ""
cxxflags-override: true
config-opts:
# Flatpak build does not appear to default to Release.
- "-DCMAKE_BUILD_TYPE=Release"
# We're not running tests as part of the flatpak build.
- '-DBUILD_TESTS=OFF'
# Make sure we're using ThinLTO.
- "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON"
- "-DCMAKE_C_COMPILER=/usr/lib/sdk/llvm17/bin/clang"
- "-DCMAKE_CXX_COMPILER=/usr/lib/sdk/llvm17/bin/clang++"
- "-DCMAKE_EXE_LINKER_FLAGS_INIT=-fuse-ld=lld"
- "-DCMAKE_MODULE_LINKER_FLAGS_INIT=-fuse-ld=lld"
- "-DCMAKE_SHARED_LINKER_FLAGS_INIT=-fuse-ld=lld"
sources:
- type: dir
path: ../..
post-install:
# Copy the binary distribution.
- "cp -a bin \"${FLATPAK_DEST}\""
# Manually copy desktop file/metadata, it's not done as part of the regular build.
- >-
install -Dm644
"${FLATPAK_BUILDER_BUILDDIR}/scripts/org.duckstation.DuckStation.png"
"${FLATPAK_DEST}/share/icons/hicolor/512x512/apps/org.duckstation.DuckStation.png"
- >-
install -Dm644
"${FLATPAK_BUILDER_BUILDDIR}/scripts/org.duckstation.DuckStation.desktop"
"${FLATPAK_DEST}/share/applications/org.duckstation.DuckStation.desktop"
- >-
install -Dm644
"${FLATPAK_BUILDER_BUILDDIR}/scripts/flatpak/org.duckstation.DuckStation.metainfo.xml"
"${FLATPAK_DEST}/share/metainfo/org.duckstation.DuckStation.metainfo.xml"

View File

@ -31,6 +31,6 @@
<release version="@GIT_VERSION@" date="@GIT_DATE@" />
</releases>
<custom>
<value key="flathub::manifest">https://raw.githubusercontent.com/stenzek/duckstation/@GIT_HASH@/scripts/flatpak/org.duckstation.DuckStation.json</value>
<value key="flathub::manifest">https://raw.githubusercontent.com/stenzek/duckstation/@GIT_HASH@/scripts/flatpak/org.duckstation.DuckStation.yaml</value>
</custom>
</component>