Skip to content

Commit 5c3866f

Browse files
authored
OBS version 28 support (#39)
1 parent 319f080 commit 5c3866f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+4613
-1253
lines changed

.github/FUNDING.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
github: exeldro
2-
custom: "https://www.paypal.me/exeldro"
2+
custom: "https://www.paypal.me/exeldro"
3+
patreon: Exeldro
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: 'Setup and build plugin'
2+
description: 'Builds the plugin for specified architecture and build config.'
3+
inputs:
4+
target:
5+
description: 'Build target for dependencies'
6+
required: true
7+
config:
8+
description: 'Build configuration'
9+
required: false
10+
default: 'Release'
11+
codesign:
12+
description: 'Enable codesigning (macOS only)'
13+
required: false
14+
default: 'false'
15+
codesignIdent:
16+
description: 'Developer ID for application codesigning (macOS only)'
17+
required: false
18+
default: '-'
19+
visualStudio:
20+
description: 'Visual Studio version (Windows only)'
21+
required: false
22+
default: 'Visual Studio 16 2019'
23+
workingDirectory:
24+
description: 'Working directory for packaging'
25+
required: false
26+
default: ${{ github.workspace }}
27+
runs:
28+
using: 'composite'
29+
steps:
30+
- name: Run macOS Build
31+
if: ${{ runner.os == 'macOS' }}
32+
shell: zsh {0}
33+
env:
34+
CODESIGN_IDENT: ${{ inputs.codesignIdent }}
35+
run: |
36+
build_args=(
37+
-c ${{ inputs.config }}
38+
-t macos-${{ inputs.target }}
39+
)
40+
41+
if [[ '${{ inputs.codesign }}' == 'true' ]] build_args+=(-s)
42+
if (( ${+CI} && ${+RUNNER_DEBUG} )) build_args+=(--debug)
43+
44+
${{ inputs.workingDirectory }}/.github/scripts/build-macos.zsh ${build_args}
45+
46+
- name: Run Linux Build
47+
if: ${{ runner.os == 'Linux' }}
48+
shell: bash
49+
run: |
50+
build_args=(
51+
-c ${{ inputs.config }}
52+
-t linux-${{ inputs.target }}
53+
)
54+
55+
if [[ -n "${CI}" && -n "${RUNNER_DEBUG}" ]]; then
56+
build_args+=(--debug)
57+
fi
58+
59+
${{ inputs.workingDirectory }}/.github/scripts/build-linux.sh "${build_args[@]}"
60+
61+
- name: Run Windows Build
62+
if: ${{ runner.os == 'Windows' }}
63+
shell: pwsh
64+
run: |
65+
$BuildArgs = @{
66+
Target = '${{ inputs.target }}'
67+
Configuration = '${{ inputs.config }}'
68+
CMakeGenerator = '${{ inputs.visualStudio }}'
69+
}
70+
71+
if ( ( Test-Path env:CI ) -and ( Test-Path env:RUNNER_DEBUG ) ) {
72+
$BuildArgs += @{
73+
Debug = $true
74+
}
75+
}
76+
77+
${{ inputs.workingDirectory }}/.github/scripts/Build-Windows.ps1 @BuildArgs
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
name: 'Package plugin'
2+
description: 'Packages the plugin for specified architecture and build config.'
3+
inputs:
4+
target:
5+
description: 'Build target for dependencies'
6+
required: true
7+
config:
8+
description: 'Build configuration'
9+
required: false
10+
default: 'Release'
11+
codesign:
12+
description: 'Enable codesigning (macOS only)'
13+
required: false
14+
default: 'false'
15+
notarize:
16+
description: 'Enable notarization (macOS only)'
17+
required: false
18+
default: 'false'
19+
codesignIdent:
20+
description: 'Developer ID for application codesigning (macOS only)'
21+
required: false
22+
default: '-'
23+
installerIdent:
24+
description: 'Developer ID for installer package codesigning (macOS only)'
25+
required: false
26+
default: ''
27+
codesignUser:
28+
description: 'Apple ID username for notarization (macOS only)'
29+
required: false
30+
default: ''
31+
codesignPass:
32+
description: 'Apple ID password for notarization (macOS only)'
33+
required: false
34+
default: ''
35+
createInstaller:
36+
description: 'Create InnoSetup installer (Windows only)'
37+
required: false
38+
default: 'false'
39+
workingDirectory:
40+
description: 'Working directory for packaging'
41+
required: false
42+
default: ${{ github.workspace }}
43+
runs:
44+
using: 'composite'
45+
steps:
46+
- name: Run macOS packaging
47+
if: ${{ runner.os == 'macOS' }}
48+
shell: zsh {0}
49+
env:
50+
CODESIGN_IDENT: ${{ inputs.codesignIdent }}
51+
CODESIGN_IDENT_INSTALLER: ${{ inputs.installerIdent }}
52+
CODESIGN_IDENT_USER: ${{ inputs.codesignUser }}
53+
CODESIGN_IDENT_PASS: ${{ inputs.codesignPass }}
54+
run: |
55+
package_args=(
56+
-c ${{ inputs.config }}
57+
-t macos-${{ inputs.target }}
58+
)
59+
60+
if [[ '${{ inputs.codesign }}' == 'true' ]] package_args+=(-s)
61+
if [[ '${{ inputs.notarize }}' == 'true' ]] package_args+=(-n)
62+
if (( ${+CI} && ${+RUNNER_DEBUG} )) build_args+=(--debug)
63+
64+
${{ inputs.workingDirectory }}/.github/scripts/package-macos.zsh ${package_args}
65+
66+
- name: Run Linux packaging
67+
if: ${{ runner.os == 'Linux' }}
68+
shell: bash
69+
run: |
70+
package_args=(
71+
-c ${{ inputs.config }}
72+
-t linux-${{ inputs.target }}
73+
)
74+
if [[ -n "${CI}" && -n "${RUNNER_DEBUG}" ]]; then
75+
build_args+=(--debug)
76+
fi
77+
78+
${{ inputs.workingDirectory }}/.github/scripts/package-linux.sh "${package_args[@]}"
79+
80+
- name: Run Windows packaging
81+
if: ${{ runner.os == 'Windows' }}
82+
shell: pwsh
83+
run: |
84+
$PackageArgs = @{
85+
Target = '${{ inputs.target }}'
86+
Configuration = '${{ inputs.config }}'
87+
}
88+
89+
if ( '${{ inputs.createInstaller }}' -eq 'true' ) {
90+
$PackageArgs += @{BuildInstaller = $true}
91+
}
92+
93+
if ( ( Test-Path env:CI ) -and ( Test-Path env:RUNNER_DEBUG ) ) {
94+
$BuildArgs += @{
95+
Debug = $true
96+
}
97+
}
98+
99+
${{ inputs.workingDirectory }}/.github/scripts/Package-Windows.ps1 @PackageArgs

.github/scripts/.Aptfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package 'cmake'
2+
package 'ccache'
3+
package 'curl'
4+
package 'git'
5+
package 'jq'
6+
package 'ninja-build', bin: 'ninja'
7+
package 'pkg-config'
8+
package 'clang'
9+
package 'clang-format-13'

.github/scripts/.Brewfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
brew "ccache"
2+
brew "coreutils"
3+
brew "cmake"
4+
brew "git"
5+
brew "jq"
6+
brew "ninja"

.github/scripts/.Wingetfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package '7zip.7zip', path: '7-zip', bin: '7z'
2+
package 'cmake', path: 'Cmake\bin', bin: 'cmake'
3+
package 'innosetup', path: 'Inno Setup 6', bin: 'iscc'

0 commit comments

Comments
 (0)