@@ -22,12 +22,12 @@ jobs:
2222 msvc : true
2323 buildtype : release
2424 args : >-
25- -Ddefault_library=static
26- --force-fallback-for=zlib,harfbuzz,freetype2,fribidi,libpng
27- -Dfreetype2:harfbuzz=disabled
28- -Dharfbuzz:freetype=disabled
29- -Dharfbuzz:cairo=disabled
30- -Dharfbuzz:glib=disabled
25+ -Ddefault_library=static
26+ --force-fallback-for=zlib,harfbuzz,freetype2,fribidi,libpng
27+ -Dfreetype2:harfbuzz=disabled
28+ -Dharfbuzz:freetype=disabled
29+ -Dharfbuzz:cairo=disabled
30+ -Dharfbuzz:glib=disabled
3131 -Dharfbuzz:gobject=disabled
3232 -Dharfbuzz:tests=disabled
3333 -Dharfbuzz:docs=disabled
@@ -40,14 +40,26 @@ jobs:
4040 # msvc: false
4141 # }
4242 - {
43- name : Ubuntu Debug,
44- os : ubuntu-latest ,
43+ name : Ubuntu 22 Debug,
44+ os : ubuntu-22.04 ,
4545 buildtype : debugoptimized,
4646 args : ' '
4747 }
4848 - {
49- name : Ubuntu Release,
50- os : ubuntu-latest,
49+ name : Ubuntu 22 Release,
50+ os : ubuntu-22.04,
51+ buildtype : release,
52+ args : ' '
53+ }
54+ - {
55+ name : Ubuntu 24 Debug,
56+ os : ubuntu-24.04,
57+ buildtype : debugoptimized,
58+ args : ' '
59+ }
60+ - {
61+ name : Ubuntu 24 Release,
62+ os : ubuntu-24.04,
5163 buildtype : release,
5264 args : ' '
5365 }
@@ -116,17 +128,24 @@ jobs:
116128 brew install pulseaudio # NO OpenAL in github CI
117129
118130 - name : Install dependencies (Linux)
119- if : matrix.config.os == 'ubuntu-latest'
131+ if : startsWith( matrix.config.os, 'ubuntu-')
120132 run : |
121133 sudo apt-get update
122- sudo apt-get install ninja-build build-essential libx11-dev libwxgtk3.0-gtk3-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev libhunspell-dev libcurl4-openssl-dev libuchardet-dev
134+ sudo apt-get install ninja-build build-essential libx11-dev libfreetype6-dev pkg-config libfontconfig1-dev libass-dev libasound2-dev libffms2-dev intltool libboost-all-dev libhunspell-dev libcurl4-openssl-dev libuchardet-dev libgtest-dev libgmock-dev ${{ matrix.config.os == 'ubuntu-22.04' && 'libwxgtk3.0-gtk3-dev' || 'libwxgtk3.2-dev' }}
135+
136+ - name : Set compiler (Linux)
137+ if : matrix.config.os == 'ubuntu-22.04'
138+ run : |
139+ # We need to use Clang on Ubuntu 22 to avoid a bug with GCC 11
140+ echo "CC=clang" >> $GITHUB_ENV
141+ echo "CXX=clang++" >> $GITHUB_ENV
123142
124143 - name : Configure
125144 run : meson setup build ${{ matrix.config.args }} -Dbuildtype=${{ matrix.config.buildtype }} ${{ github.ref_type == 'tag' && '-Dofficial_release=true' || '' }}
126145
127146 - name : Build
128147 run : meson compile -C build
129-
148+
130149 - name : Run test
131150 run : meson test -C build --verbose "gtest main"
132151
@@ -149,14 +168,14 @@ jobs:
149168 name : ${{ matrix.config.name }} - installer
150169 path : build/Aegisub-*.exe
151170 if-no-files-found : error
152-
171+
153172 - name : Upload artifacts - portable.zip
154173 uses : actions/upload-artifact@v4
155174 if : matrix.config.os == 'windows-latest'
156175 with :
157176 name : ${{ matrix.config.name }} - portable
158177 path : build/aegisub-portable-64.zip
159-
178+
160179 # macOS artifacts
161180 - name : Generate macOS installer
162181 if : startsWith(matrix.config.os, 'macos-')
@@ -171,3 +190,28 @@ jobs:
171190 name : ${{ matrix.config.name }} - installer
172191 path : build/Aegisub-*.dmg
173192 if-no-files-found : error
193+
194+ # Tarball
195+ - name : Generate tarball
196+ if : matrix.config.os == 'ubuntu-24.04' && matrix.config.buildtype == 'release'
197+ run : |
198+ set -e
199+
200+ # Work around https://github.com/mesonbuild/meson/issues/14005
201+ rm -rf subprojects/luajit/.git
202+
203+ meson dist --include-subprojects -C build
204+
205+ # Make sure the subprojects we need are included
206+ mkdir distcheck
207+ tar -xJf build/meson-dist/*.tar.xz -C distcheck/
208+ test -e distcheck/*/subprojects/luabins/meson.build
209+ test -e distcheck/*/subprojects/luajit/meson.build
210+
211+ - name : Upload artifacts - tarball
212+ uses : actions/upload-artifact@v4
213+ if : matrix.config.os == 'ubuntu-24.04' && matrix.config.buildtype == 'release'
214+ with :
215+ name : Source Tarball
216+ path : build/meson-dist/*.tar.xz
217+ if-no-files-found : error
0 commit comments