Deps: Update to Qt 6.7.2 #1
Workflow file for this run
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
name: Linux Build Steps | ||
on: | ||
workflow_call: | ||
inputs: | ||
jobName: | ||
required: true | ||
type: string | ||
artifactPrefixName: | ||
required: true | ||
type: string | ||
os: | ||
required: false | ||
type: string | ||
default: ubuntu-24.04 | ||
platform: | ||
required: false | ||
type: string | ||
default: x64 | ||
compiler: | ||
required: true | ||
type: string | ||
cmakeflags: | ||
required: true | ||
type: string | ||
buildAppImage: | ||
required: false | ||
type: boolean | ||
default: false | ||
detail: | ||
required: false | ||
type: string | ||
default: "" | ||
patchesUrl: | ||
required: false | ||
type: string | ||
default: https://github.com/PCSX2/pcsx2_patches/releases/latest/download | ||
fetchTags: | ||
required: false | ||
type: boolean | ||
default: false | ||
stableBuild: | ||
required: false | ||
type: boolean | ||
default: false | ||
jobs: | ||
build_linux: | ||
name: ${{ inputs.jobName }} | ||
runs-on: ${{ inputs.os }} | ||
# Set some sort of timeout in the event of run-away builds. We are limited on concurrent jobs so, get rid of them. | ||
timeout-minutes: 90 | ||
env: | ||
CCACHE_BASEDIR: ${{ github.workspace }} | ||
CCACHE_DIR: ${{ github.workspace }}/.ccache | ||
CCACHE_COMPRESS: true | ||
CCACHE_COMPRESSLEVEL: 9 | ||
CCACHE_MAXSIZE: 100M | ||
- name: Checkout Repository | ||
uses: actions/checkout@v4 | ||
# actions/checkout elides tags, fetch them primarily for releases | ||
- name: Fetch Tags | ||
if: ${{ inputs.fetchTags }} | ||
run: git fetch --tags --no-recurse-submodules | ||
- name: Add stable release identifier file | ||
if: ${{ inputs.stableBuild == true || inputs.stableBuild == 'true' }} | ||
shell: bash | ||
run: | | ||
echo "#define DEFAULT_UPDATER_CHANNEL \"stable\"" > ./pcsx2-qt/DefaultUpdaterChannel.h | ||
cat ./pcsx2-qt/DefaultUpdaterChannel.h | ||
- name: Prepare Artifact Metadata | ||
id: artifact-metadata | ||
shell: bash | ||
env: | ||
PREFIX: ${{ inputs.artifactPrefixName }} | ||
EVENT_NAME: ${{ github.event_name }} | ||
PR_TITLE: ${{ github.event.pull_request.title }} | ||
PR_NUM: ${{ github.event.pull_request.number }} | ||
PR_SHA: ${{ github.event.pull_request.head.sha }} | ||
run: ./.github/workflows/scripts/common/name-artifacts.sh | ||
# -- SETUP CCACHE - https://cristianadam.eu/20200113/speeding-up-c-plus-plus-github-actions-using-ccache/ | ||
- name: Prepare ccache timestamp | ||
id: ccache_cache_timestamp | ||
run: echo "timestamp=$(date -u "+%Y-%m-%d-%H;%M;%S")" >> $GITHUB_OUTPUT | ||
- name: ccache cache files | ||
uses: actions/cache@v4 | ||
with: | ||
path: .ccache | ||
key: ${{ inputs.os }} ${{ inputs.platform }} ${{ inputs.compiler }} ${{ inputs.detail }} ccache ${{ steps.ccache_cache_timestamp.outputs.timestamp }} | ||
restore-keys: ${{ inputs.os }} ${{ inputs.platform }} ${{ inputs.compiler }} ${{ inputs.detail }} ccache | ||
- name: Install Packages | ||
run: | | ||
tools/retry.sh wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc | ||
sudo tools/retry.sh apt-add-repository -n 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main' | ||
sudo tools/retry.sh apt-get update | ||
sudo tools/retry.sh apt-get -y install \ | ||
build-essential ccache clang-17 cmake curl extra-cmake-modules git libasound2-dev libaio-dev libavcodec-dev libavformat-dev libavutil-dev \ | ||
libcurl4-openssl-dev libdbus-1-dev libdecor-0-dev libegl-dev libevdev-dev libfontconfig-dev libfreetype-dev libfuse2 libgtk-3-dev libgudev-1.0-dev \ | ||
libharfbuzz-dev libinput-dev libopengl-dev libpcap-dev libpipewire-0.3-dev libpulse-dev libssl-dev libswresample-dev libswscale-dev libudev-dev \ | ||
libwayland-dev libx11-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-cursor-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-icccm4-dev \ | ||
libxcb-image0-dev libxcb-keysyms1-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev \ | ||
libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinput-dev libxcb-xkb-dev libxext-dev libxkbcommon-x11-dev libxrandr-dev \ | ||
lld-17 llvm-17 ninja-build patchelf pkg-config zlib1g-dev | ||
- name: Cache Dependencies | ||
id: cache-deps | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/deps | ||
key: ${{ inputs.os }} ${{ inputs.platform }} deps ${{ hashFiles('.github/workflows/scripts/linux/build-dependencies-qt.sh') }} | ||
- name: Build Dependencies | ||
if: steps.cache-deps.outputs.cache-hit != 'true' | ||
run: .github/workflows/scripts/linux/build-dependencies-qt.sh "$HOME/deps" | ||
- name: Download patches | ||
run: | | ||
cd bin/resources | ||
aria2c -Z "${{ inputs.patchesUrl }}/patches.zip" | ||
- name: Generate CMake | ||
env: | ||
ADDITIONAL_CMAKE_ARGS: ${{ inputs.cmakeflags }} | ||
run: | | ||
cmake -B build -G Ninja \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ | ||
-DCMAKE_PREFIX_PATH="$HOME/deps" \ | ||
-DCMAKE_C_COMPILER=clang-17 \ | ||
-DCMAKE_CXX_COMPILER=clang++-17 \ | ||
-DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ | ||
-DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ | ||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | ||
-DENABLE_SETCAP=OFF \ | ||
-DDISABLE_ADVANCE_SIMD=TRUE \ | ||
$ADDITIONAL_CMAKE_ARGS | ||
- name: Build PCSX2 | ||
working-directory: build | ||
run: | | ||
# Prepare the Cache | ||
ccache -p | ||
ccache -z | ||
# Build | ||
ninja | ||
# Save the Cache | ||
ccache -s | ||
- name: Run Tests | ||
working-directory: ./build | ||
run: ninja unittests | ||
- name: Package AppImage | ||
if: inputs.buildAppImage == true | ||
env: | ||
NAME: ${{ steps.artifact-metadata.outputs.artifact-name }} | ||
run: | | ||
.github/workflows/scripts/linux/appimage-qt.sh "$(realpath .)" "$(realpath ./build)" "$HOME/deps" "$NAME" | ||
mkdir -p "$GITHUB_WORKSPACE"/ci-artifacts/ | ||
mv "${NAME}.AppImage" "$GITHUB_WORKSPACE"/ci-artifacts/ | ||
- name: Upload artifact | ||
if: inputs.buildAppImage == true | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ steps.artifact-metadata.outputs.artifact-name }} | ||
path: ci-artifacts |