Update llvm to 20.1.8 #1642
Workflow file for this run
This file contains hidden or 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: Build RPCS3 | |
defaults: | |
run: | |
shell: bash | |
on: | |
push: | |
branches: | |
- master # Only trigger push event on 'master' branch | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.ref }}-${{ github.event_name }} | |
cancel-in-progress: true | |
env: | |
BUILD_REPOSITORY_NAME: ${{ github.repository }} | |
BUILD_SOURCEBRANCHNAME: ${{ github.ref_name }} | |
BUILD_PR_NUMBER: ${{ github.event.pull_request.number }} | |
BUILD_SOURCEVERSION: ${{ github.sha }} | |
BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ github.workspace }}/artifacts/ | |
jobs: | |
Linux_Build: | |
# Only run push event on master branch of main repo, but run all PRs | |
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master') | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-24.04 | |
docker_img: "rpcs3/rpcs3-ci-jammy:1.6" | |
build_sh: "/rpcs3/.ci/build-linux.sh" | |
compiler: clang | |
UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f | |
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux" | |
- os: ubuntu-24.04 | |
docker_img: "rpcs3/rpcs3-ci-jammy:1.6" | |
build_sh: "/rpcs3/.ci/build-linux.sh" | |
compiler: gcc | |
- os: ubuntu-24.04-arm | |
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.6" | |
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh" | |
compiler: clang | |
UPLOAD_COMMIT_HASH: a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1 | |
UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux-arm64" | |
- os: ubuntu-24.04-arm | |
docker_img: "rpcs3/rpcs3-ci-jammy-aarch64:1.6" | |
build_sh: "/rpcs3/.ci/build-linux-aarch64.sh" | |
compiler: gcc | |
name: RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} | |
runs-on: ${{ matrix.os }} | |
env: | |
CCACHE_DIR: ${{ github.workspace }}/ccache | |
DEPLOY_APPIMAGE: true | |
APPDIR: "/rpcs3/build/appdir" | |
ARTDIR: "/root/artifacts" | |
RELEASE_MESSAGE: "/rpcs3/GitHubReleaseMessage.txt" | |
COMPILER: ${{ matrix.compiler }} | |
UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }} | |
UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }} | |
RUN_UNIT_TESTS: github.event_name == 'pull_request' && 'ON' || 'OFF' | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@main | |
with: | |
fetch-depth: 0 | |
- name: Restore build Ccache | |
uses: actions/cache/restore@main | |
id: restore-build-ccache | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-${{github.run_id}} | |
restore-keys: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}- | |
- name: Docker setup and build | |
run: | | |
docker pull --quiet ${{ matrix.docker_img }} | |
docker run \ | |
-v $PWD:/rpcs3 \ | |
--env-file .ci/docker.env \ | |
-v ${{ env.CCACHE_DIR }}:/root/.ccache \ | |
-v ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}:${{ env.ARTDIR }} \ | |
${{ matrix.docker_img }} \ | |
${{ matrix.build_sh }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@main | |
with: | |
name: RPCS3 for Linux (${{ runner.arch }}, ${{ matrix.compiler }}) | |
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}/*.AppImage | |
compression-level: 0 | |
- name: Deploy master build to GitHub Releases | |
if: | | |
github.event_name != 'pull_request' && | |
github.repository == 'RPCS3/rpcs3' && | |
github.ref == 'refs/heads/master' && | |
matrix.compiler == 'clang' | |
env: | |
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }} | |
run: | | |
COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp) | |
COMM_COUNT=$(git rev-list --count HEAD) | |
COMM_HASH=$(git rev-parse --short=8 HEAD) | |
export AVVER="${COMM_TAG}-${COMM_COUNT}" | |
.ci/github-upload.sh | |
- name: Save build Ccache | |
if: github.ref == 'refs/heads/master' | |
uses: actions/cache/save@main | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }} | |
Mac_Build: | |
# Only run push event on master branch of main repo, but run all PRs | |
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master') | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Intel | |
build_sh: "arch -X86_64 .ci/build-mac.sh" | |
UPLOAD_COMMIT_HASH: 51ae32f468089a8169aaf1567de355ff4a3e0842 | |
UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac | |
- name: Apple Silicon | |
build_sh: .ci/build-mac-arm64.sh | |
UPLOAD_COMMIT_HASH: 8e21bdbc40711a3fccd18fbf17b742348b0f4281 | |
UPLOAD_REPO_FULL_NAME: rpcs3/rpcs3-binaries-mac-arm64 | |
name: RPCS3 Mac ${{ matrix.name }} | |
runs-on: macos-14 | |
env: | |
CCACHE_DIR: /tmp/ccache_dir | |
QT_VER: '6.7.3' | |
QT_VER_MAIN: '6' | |
LLVM_COMPILER_VER: '20' | |
RELEASE_MESSAGE: ../GitHubReleaseMessage.txt | |
UPLOAD_COMMIT_HASH: ${{ matrix.UPLOAD_COMMIT_HASH }} | |
UPLOAD_REPO_FULL_NAME: ${{ matrix.UPLOAD_REPO_FULL_NAME }} | |
RUN_UNIT_TESTS: github.event_name == 'pull_request' && 'ON' || 'OFF' | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@main | |
with: | |
fetch-depth: 0 | |
- name: Restore Build Ccache | |
uses: actions/cache/restore@main | |
id: restore-build-ccache | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ runner.os }}-ccache-${{ matrix.name }}-${{github.run_id}} | |
restore-keys: ${{ runner.os }}-ccache-${{ matrix.name }}- | |
- name: Restore Qt Cache | |
uses: actions/cache/restore@main | |
id: restore-qt-cache | |
with: | |
path: /tmp/Qt | |
key: ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }} | |
restore-keys: ${{ runner.os }}-qt-${{ matrix.name }}-${{ env.QT_VER }} | |
- name: Build | |
run: ${{ matrix.build_sh }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@main | |
with: | |
name: RPCS3 for Mac (${{ matrix.name }}) | |
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }} | |
compression-level: 0 | |
- name: Export Variables | |
run: | | |
while IFS='=' read -r key val; do | |
# Skip lines that are empty or start with '#' | |
[[ -z "$key" || "$key" =~ ^# ]] && continue | |
echo "$key=$val" >> "${{ github.env }}" | |
done < .ci/ci-vars.env | |
- name: Deploy master build to GitHub Releases | |
if: | | |
github.event_name != 'pull_request' && | |
github.repository == 'RPCS3/rpcs3' && | |
github.ref == 'refs/heads/master' | |
env: | |
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }} | |
run: .ci/github-upload.sh | |
- name: Save Build Ccache | |
if: github.ref == 'refs/heads/master' | |
uses: actions/cache/save@main | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }} | |
- name: Save Qt Cache | |
if: github.ref == 'refs/heads/master' | |
uses: actions/cache/save@main | |
with: | |
path: /tmp/Qt | |
key: ${{ steps.restore-qt-cache.outputs.cache-primary-key }} | |
Windows_Build: | |
# Only run push event on master branch of main repo, but run all PRs | |
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master') | |
name: RPCS3 Windows | |
runs-on: windows-2025 | |
env: | |
COMPILER: msvc | |
QT_VER_MAIN: '6' | |
QT_VER: '6.9.1' | |
QT_VER_MSVC: 'msvc2022' | |
QT_DATE: '202505291653' | |
LLVM_VER: '20.1.8' | |
VULKAN_VER: '1.3.268.0' | |
VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5' | |
CCACHE_SHA: '1f39f3ad5aae3fe915e99ad1302633bc8f6718e58fa7c0de2b0ba7e080f0f08c' | |
CCACHE_BIN_DIR: 'C:\ccache_bin' | |
CCACHE_DIR: 'C:\ccache' | |
CCACHE_INODECACHE: 'true' | |
CCACHE_SLOPPINESS: 'time_macros' | |
DEPS_CACHE_DIR: ./dependency_cache | |
UPLOAD_COMMIT_HASH: 7d09e3be30805911226241afbb14f8cdc2eb054e | |
UPLOAD_REPO_FULL_NAME: "RPCS3/rpcs3-binaries-win" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@main | |
with: | |
fetch-depth: 0 | |
- name: Setup NuGet | |
uses: nuget/setup-nuget@v2 | |
- name: Restore NuGet packages | |
run: nuget restore rpcs3.sln | |
- name: Setup env | |
shell: pwsh | |
run: | | |
echo "QTDIR=C:\Qt\${{ env.QT_VER }}\${{ env.QT_VER_MSVC }}_64" >> ${{ github.env }} | |
echo "VULKAN_SDK=C:\VulkanSDK\${{ env.VULKAN_VER }}" >> ${{ github.env }} | |
- name: Get Cache Keys | |
run: .ci/get_keys-windows.sh | |
- name: Restore Build Ccache | |
uses: actions/cache/restore@main | |
id: restore-build-ccache | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: "${{ runner.os }}-ccache-${{ env.COMPILER }}-${{github.run_id}}" | |
restore-keys: ${{ runner.os }}-ccache-${{ env.COMPILER }}- | |
- name: Restore Dependencies Cache | |
uses: actions/cache/restore@main | |
id: restore-dependencies-cache | |
with: | |
path: ${{ env.DEPS_CACHE_DIR }} | |
key: "${{ runner.os }}-${{ env.COMPILER }}-${{ env.QT_VER }}-${{ env.VULKAN_SDK_SHA }}-${{ env.CCACHE_SHA }}-${{ hashFiles('llvm.lock') }}" | |
restore-keys: ${{ runner.os }}-${{ env.COMPILER }}- | |
- name: Download and unpack dependencies | |
run: | | |
.ci/setup-windows.sh | |
.ci/setup-windows-ci-vars.sh win64 msvc | |
- name: Export Variables | |
run: | | |
while IFS='=' read -r key val; do | |
# Skip lines that are empty or start with '#' | |
[[ -z "$key" || "$key" =~ ^# ]] && continue | |
echo "$key=$val" >> "${{ github.env }}" | |
done < .ci/ci-vars.env | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@main | |
- name: Compile RPCS3 | |
shell: pwsh | |
run: msbuild rpcs3.sln /p:Configuration=Release /v:minimal /p:Platform=x64 /p:PreferredToolArchitecture=x64 /p:CLToolPath=${{ env.CCACHE_BIN_DIR }} /p:UseMultiToolTask=true /p:CustomAfterMicrosoftCommonTargets="${{ github.workspace }}\buildfiles\msvc\ci_only.targets" | |
- name: Run Unit Tests | |
if: github.event_name == 'pull_request' | |
shell: pwsh | |
run: build\lib\Release-x64\rpcs3_test.exe | |
- name: Pack up build artifacts | |
run: | | |
mkdir -p "${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }}" | |
.ci/deploy-windows.sh | |
- name: Upload artifacts (7z) | |
uses: actions/upload-artifact@main | |
with: | |
name: RPCS3 for Windows (MSVC) | |
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }} | |
compression-level: 0 | |
if-no-files-found: error | |
- name: Deploy master build to GitHub Releases | |
if: | | |
github.event_name != 'pull_request' && | |
github.repository == 'RPCS3/rpcs3' && | |
github.ref == 'refs/heads/master' | |
env: | |
RPCS3_TOKEN: ${{ secrets.RPCS3_TOKEN }} | |
run: .ci/github-upload.sh | |
- name: Save Build Ccache | |
if: github.ref == 'refs/heads/master' | |
uses: actions/cache/save@main | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }} | |
- name: Save Dependencies Cache | |
if: github.ref == 'refs/heads/master' | |
uses: actions/cache/save@main | |
with: | |
path: ${{ env.DEPS_CACHE_DIR }} | |
key: ${{ steps.restore-dependencies-cache.outputs.cache-primary-key }} | |
Windows_Build_Clang: | |
# Only run push event on master branch of main repo, but run all PRs | |
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master') | |
name: RPCS3 Windows Clang | |
runs-on: windows-2025 | |
strategy: | |
matrix: | |
include: | |
- msys2: clang64 | |
compiler: clang | |
arch: win64 | |
env: | |
CCACHE_DIR: 'C:\ccache' | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@main | |
with: | |
fetch-depth: 0 | |
- name: Setup msys2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.msys2 }} | |
update: true | |
cache: true | |
install: | | |
mingw-w64-clang-x86_64-clang | |
mingw-w64-clang-x86_64-ccache | |
mingw-w64-clang-x86_64-cmake | |
mingw-w64-clang-x86_64-lld | |
mingw-w64-clang-x86_64-ninja | |
mingw-w64-clang-x86_64-llvm | |
mingw-w64-clang-x86_64-ffmpeg | |
mingw-w64-clang-x86_64-opencv | |
mingw-w64-clang-x86_64-glew | |
mingw-w64-clang-x86_64-vulkan | |
mingw-w64-clang-x86_64-vulkan-headers | |
mingw-w64-clang-x86_64-vulkan-loader | |
mingw-w64-clang-x86_64-gtest | |
mingw-w64-clang-x86_64-qt6-base | |
mingw-w64-clang-x86_64-qt6-declarative | |
mingw-w64-clang-x86_64-qt6-multimedia | |
mingw-w64-clang-x86_64-qt6-svg | |
base-devel | |
curl | |
git | |
p7zip | |
- name: Restore build Ccache | |
uses: actions/cache/restore@main | |
id: restore-build-ccache | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}-${{ github.run_id }} | |
restore-keys: ${{ runner.os }}-ccache-${{ matrix.compiler }}-${{ runner.arch }}- | |
- name: Build RPCS3 | |
shell: msys2 {0} | |
run: | | |
export CCACHE_DIR=$(cygpath -u "$CCACHE_DIR") | |
echo "CCACHE_DIR=$CCACHE_DIR" | |
.ci/setup-windows-ci-vars.sh ${{ matrix.arch }} ${{ matrix.compiler }} | |
.ci/build-windows-clang.sh | |
- name: Save build Ccache | |
if: github.ref == 'refs/heads/master' | |
uses: actions/cache/save@main | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@main | |
with: | |
name: RPCS3 for Windows (${{ runner.arch }}, ${{ matrix.compiler }}) | |
path: ${{ env.BUILD_ARTIFACTSTAGINGDIRECTORY }} | |
compression-level: 0 | |
if-no-files-found: error | |
FreeBSD_Build: | |
# Only run push event on master branch of main repo, but run all PRs | |
if: github.event_name != 'push' || (github.repository == 'RPCS3/rpcs3' && github.ref_name == 'master') | |
name: RPCS3 FreeBSD | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
env: | |
CCACHE_DIR: ${{ github.workspace }}/ccache | |
QT_VER_MAIN: '6' | |
LLVM_COMPILER_VER: '20' | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@main | |
with: | |
fetch-depth: 0 | |
- name: Restore Build Ccache | |
uses: actions/cache/restore@main | |
id: restore-build-ccache | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: FreeBSD-ccache-${{github.run_id}} | |
restore-keys: FreeBSD-ccache- | |
- name: FreeBSD build | |
id: root | |
uses: vmactions/freebsd-vm@v1 | |
with: | |
envs: 'QT_VER_MAIN LLVM_COMPILER_VER CCACHE_DIR' | |
usesh: true | |
run: .ci/install-freebsd.sh && .ci/build-freebsd.sh | |
- name: Save Build Ccache | |
if: github.ref == 'refs/heads/master' | |
uses: actions/cache/save@main | |
with: | |
path: ${{ env.CCACHE_DIR }} | |
key: ${{ steps.restore-build-ccache.outputs.cache-primary-key }} |