-
-
Notifications
You must be signed in to change notification settings - Fork 449
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove PCH as an option - it's now always disabled for all jobs Disable LTO in the Windows build Merge the Ubuntu Qt 6.2.4 & Ubuntu plugin build Only upload a single macOS job into the nightly release, and clearly mark it as a macOS 10.15 build.
- Loading branch information
Showing
3 changed files
with
53 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,65 +22,68 @@ env: | |
|
||
jobs: | ||
build: | ||
name: "Build ${{ matrix.os }}, Qt ${{ matrix.qt-version }} (PCH:${{ matrix.pch }}, LTO:${{ matrix.force-lto }})" | ||
name: "Build ${{ matrix.os }}, Qt ${{ matrix.qt-version }} (LTO:${{ matrix.force-lto }}, crashpad:${{ matrix.skip-crashpad && 'off' || 'on' }})" | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
os: [windows-latest, macos-latest] | ||
qt-version: [5.15.2, 6.5.0] | ||
pch: [true] | ||
force-lto: [false] | ||
plugins: [false] | ||
skip_artifact: ["no"] | ||
crashpad: [true] | ||
skip-artifact: [false] | ||
skip-crashpad: [false] | ||
clang-tidy-review: [false] | ||
include: | ||
# Ubuntu 20.04, Qt 5.12 | ||
- os: ubuntu-20.04 | ||
qt-version: 5.12.12 | ||
pch: true | ||
force-lto: false | ||
plugins: false | ||
skip-artifact: false | ||
skip-crashpad: false | ||
clang-tidy-review: false | ||
# Ubuntu 22.04, Qt 5.15 | ||
- os: ubuntu-22.04 | ||
qt-version: 5.15.2 | ||
pch: true | ||
force-lto: false | ||
# Ubuntu 22.04, Qt 6.2.4 | ||
plugins: false | ||
skip-artifact: false | ||
skip-crashpad: false | ||
clang-tidy-review: true | ||
# Ubuntu 22.04, Qt 6.2.4 - tests LTO & plugins | ||
- os: ubuntu-22.04 | ||
qt-version: 6.2.4 | ||
pch: false | ||
force-lto: false | ||
# Test for disabling Precompiled Headers & enabling link-time optimization and plugins | ||
- os: ubuntu-22.04 | ||
qt-version: 5.15.2 | ||
pch: false | ||
force-lto: true | ||
skip_artifact: "yes" | ||
plugins: true | ||
skip-artifact: false | ||
skip-crashpad: false | ||
clang-tidy-review: false | ||
# Test for disabling crashpad on Windows | ||
- os: windows-latest | ||
qt-version: 5.15.2 | ||
pch: false | ||
force-lto: true | ||
skip_artifact: "yes" | ||
crashpad: false | ||
force-lto: false | ||
plugins: false | ||
skip-artifact: true | ||
skip-crashpad: true | ||
clang-tidy-review: false | ||
|
||
fail-fast: false | ||
|
||
steps: | ||
- name: Force LTO | ||
if: matrix.force-lto == true | ||
if: matrix.force-lto | ||
run: | | ||
echo "C2_ENABLE_LTO=ON" >> "$GITHUB_ENV" | ||
shell: bash | ||
|
||
- name: Enable plugin support | ||
if: matrix.plugins == true | ||
if: matrix.plugins | ||
run: | | ||
echo "C2_PLUGINS=ON" >> "$GITHUB_ENV" | ||
shell: bash | ||
|
||
- name: Set Crashpad | ||
if: matrix.crashpad == true | ||
if: matrix.skip-crashpad == false | ||
run: | | ||
echo "C2_ENABLE_CRASHPAD=ON" >> "$GITHUB_ENV" | ||
shell: bash | ||
|
@@ -167,13 +170,14 @@ jobs: | |
|
||
- name: Build (Windows) | ||
if: startsWith(matrix.os, 'windows') | ||
shell: pwsh | ||
run: | | ||
cd build | ||
cmake ` | ||
-G"NMake Makefiles" ` | ||
-DCMAKE_BUILD_TYPE=RelWithDebInfo ` | ||
-DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" ` | ||
-DUSE_PRECOMPILED_HEADERS=${{ matrix.pch }} ` | ||
-DUSE_PRECOMPILED_HEADERS=OFF ` | ||
-DBUILD_WITH_CRASHPAD="$Env:C2_ENABLE_CRASHPAD" ` | ||
-DCHATTERINO_LTO="$Env:C2_ENABLE_LTO" ` | ||
-DCHATTERINO_PLUGINS="$Env:C2_PLUGINS" ` | ||
|
@@ -183,7 +187,8 @@ jobs: | |
nmake /S /NOLOGO | ||
- name: Build crashpad (Windows) | ||
if: startsWith(matrix.os, 'windows') && matrix.crashpad | ||
if: startsWith(matrix.os, 'windows') && !matrix.skip-crashpad | ||
shell: pwsh | ||
run: | | ||
cd build | ||
set cl=/MP | ||
|
@@ -202,14 +207,14 @@ jobs: | |
7z a chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}.zip Chatterino2/ | ||
- name: Upload artifact (Windows - binary) | ||
if: startsWith(matrix.os, 'windows') && matrix.skip_artifact != 'yes' | ||
if: startsWith(matrix.os, 'windows') && !matrix.skip-artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}.zip | ||
path: build/chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}.zip | ||
|
||
- name: Upload artifact (Windows - symbols) | ||
if: startsWith(matrix.os, 'windows') && matrix.skip_artifact != 'yes' | ||
if: startsWith(matrix.os, 'windows') && !matrix.skip-artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: chatterino-windows-x86-64-Qt-${{ matrix.qt-version }}-symbols.pdb.7z | ||
|
@@ -260,7 +265,7 @@ jobs: | |
-DCMAKE_INSTALL_PREFIX=appdir/usr/ \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DPAJLADA_SETTINGS_USE_BOOST_FILESYSTEM=On \ | ||
-DUSE_PRECOMPILED_HEADERS=${{ matrix.pch }} \ | ||
-DUSE_PRECOMPILED_HEADERS=OFF \ | ||
-DCMAKE_EXPORT_COMPILE_COMMANDS=On \ | ||
-DCHATTERINO_LTO="$C2_ENABLE_LTO" \ | ||
-DCHATTERINO_PLUGINS="$C2_PLUGINS" \ | ||
|
@@ -270,7 +275,7 @@ jobs: | |
shell: bash | ||
|
||
- name: clang-tidy review | ||
if: (startsWith(matrix.os, 'ubuntu') && matrix.pch == false && matrix.qt-version == '5.15.2' && github.event_name == 'pull_request') | ||
if: matrix.clang-tidy-review | ||
uses: ZedThree/[email protected] | ||
with: | ||
build_dir: build | ||
|
@@ -279,32 +284,32 @@ jobs: | |
exclude: "tests/*,lib/*" | ||
|
||
- name: clang-tidy-review upload | ||
if: (startsWith(matrix.os, 'ubuntu') && matrix.pch == false && matrix.qt-version == '5.15.2' && github.event_name == 'pull_request') | ||
if: matrix.clang-tidy-review | ||
uses: ZedThree/clang-tidy-review/[email protected] | ||
|
||
- name: Package - AppImage (Ubuntu) | ||
if: startsWith(matrix.os, 'ubuntu-20.04') && matrix.skip_artifact != 'yes' | ||
if: startsWith(matrix.os, 'ubuntu-20.04') && !matrix.skip-artifact | ||
run: | | ||
cd build | ||
sh ./../.CI/CreateAppImage.sh | ||
shell: bash | ||
|
||
- name: Package - .deb (Ubuntu) | ||
if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes' | ||
if: startsWith(matrix.os, 'ubuntu') && !matrix.skip-artifact | ||
run: | | ||
cd build | ||
sh ./../.CI/CreateUbuntuDeb.sh | ||
shell: bash | ||
|
||
- name: Upload artifact - AppImage (Ubuntu) | ||
if: startsWith(matrix.os, 'ubuntu-20.04') && matrix.skip_artifact != 'yes' | ||
if: startsWith(matrix.os, 'ubuntu-20.04') && !matrix.skip-artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: Chatterino-x86_64-${{ matrix.qt-version }}.AppImage | ||
path: build/Chatterino-x86_64.AppImage | ||
|
||
- name: Upload artifact - .deb (Ubuntu) | ||
if: startsWith(matrix.os, 'ubuntu') && matrix.skip_artifact != 'yes' | ||
if: startsWith(matrix.os, 'ubuntu') && !matrix.skip-artifact | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: Chatterino-${{ matrix.os }}-Qt-${{ matrix.qt-version }}.deb | ||
|
@@ -326,7 +331,7 @@ jobs: | |
-DCMAKE_BUILD_TYPE=Release \ | ||
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \ | ||
-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl \ | ||
-DUSE_PRECOMPILED_HEADERS=${{ matrix.pch }} \ | ||
-DUSE_PRECOMPILED_HEADERS=OFF \ | ||
-DCHATTERINO_LTO="$C2_ENABLE_LTO" \ | ||
-DCHATTERINO_PLUGINS="$C2_PLUGINS" \ | ||
-DBUILD_WITH_QT6="$C2_BUILD_WITH_QT6" \ | ||
|
@@ -363,12 +368,6 @@ jobs: | |
with: | ||
fetch-depth: 0 # allows for tags access | ||
|
||
- uses: actions/download-artifact@v3 | ||
name: macOS x86_64 Qt6.5.0 dmg | ||
with: | ||
name: chatterino-macos-Qt-6.5.0.dmg | ||
path: release-artifacts/ | ||
|
||
- uses: actions/download-artifact@v3 | ||
name: Ubuntu 22.04 Qt6.2.4 deb | ||
with: | ||
|
@@ -387,17 +386,6 @@ jobs: | |
name: chatterino-windows-x86-64-Qt-6.5.0-symbols.pdb.7z | ||
path: release-artifacts/ | ||
|
||
- name: Mark experimental | ||
run: | | ||
ls -l | ||
# Mark all Qt6 builds as EXPERIMENTAL | ||
mv chatterino-macos-Qt-6.5.0.dmg EXPERIMENTAL-chatterino-macos-Qt-6.5.0.dmg | ||
mv Chatterino-ubuntu-22.04-x86_64.deb EXPERIMENTAL-Chatterino-ubuntu-22.04-Qt-6.2.4.deb | ||
mv chatterino-windows-x86-64-Qt-6.5.0.zip EXPERIMENTAL-chatterino-windows-x86-64-Qt-6.5.0.zip | ||
mv chatterino-Qt-6.5.0.pdb.7z EXPERIMENTAL-chatterino-Qt-6.5.0.pdb.7z | ||
working-directory: release-artifacts | ||
shell: bash | ||
|
||
- uses: actions/download-artifact@v3 | ||
name: Windows Qt5.15.2 | ||
with: | ||
|
@@ -439,6 +427,19 @@ jobs: | |
cp .CI/chatterino-nightly.flatpakref release-artifacts/ | ||
shell: bash | ||
|
||
- name: Rename artifacts | ||
run: | | ||
ls -l | ||
# Rename the macos build to indicate that it's for macOS 10.15 users | ||
mv chatterino-macos-Qt-5.15.2.dmg Chatterino-macOS-10.15.dmg | ||
# Mark all Qt6 builds as EXPERIMENTAL | ||
mv Chatterino-ubuntu-22.04-x86_64.deb EXPERIMENTAL-Chatterino-ubuntu-22.04-Qt-6.2.4.deb | ||
mv chatterino-windows-x86-64-Qt-6.5.0.zip EXPERIMENTAL-chatterino-windows-x86-64-Qt-6.5.0.zip | ||
mv chatterino-Qt-6.5.0.pdb.7z EXPERIMENTAL-chatterino-Qt-6.5.0.pdb.7z | ||
working-directory: release-artifacts | ||
shell: bash | ||
|
||
- name: Create release | ||
uses: ncipollo/[email protected] | ||
with: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,6 +15,7 @@ | |
#include <functional> | ||
#include <mutex> | ||
#include <set> | ||
#include <vector> | ||
|
||
namespace chatterino { | ||
|
||
|