Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: Update macOS workflows to macOS 15 runners with Xcode 16.1 #11624

Merged
merged 2 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion .github/workflows/analyze-project.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:

macos:
name: macOS 🍏 (clang-analyze)
runs-on: macos-14
runs-on: macos-15
defaults:
run:
shell: zsh --no-rcs --errexit --pipefail {0}
Expand All @@ -51,6 +51,26 @@ jobs:
submodules: recursive
fetch-depth: 0

- name: Set Up Environment 🔧
id: setup
run: |
: Set Up Environment 🔧
if (( ${+RUNNER_DEBUG} )) setopt XTRACE
print '::group::Enable Xcode 16.1'
sudo xcode-select --switch /Applications/Xcode_16.1.0.app/Contents/Developer
print '::endgroup::'
print '::group::Clean Homebrew Environment'
local -a unwanted_formulas=()
local -a remove_formulas=()
for formula (${unwanted_formulas}) {
if [[ -d ${HOMEBREW_PREFIX}/Cellar/${formula} ]] remove_formulas+=(${formula})
}
if (( #remove_formulas )) brew uninstall --ignore-dependencies ${remove_formulas}
print '::endgroup::'
- name: Set Up Code Signing 🔑
uses: ./.github/actions/setup-macos-codesigning
id: codesign
Expand Down Expand Up @@ -89,6 +109,7 @@ jobs:
git fetch origin --no-tags --no-recurse-submodules -q
.github/scripts/build-macos ${build_args}
- name: Compile Analytics Data 📊
run: |
: Compile Analytics Data 📊
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/build-project.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:

macos-build:
name: macOS 🍏
runs-on: macos-14
runs-on: macos-15
needs: check-event
strategy:
fail-fast: false
Expand All @@ -80,18 +80,18 @@ jobs:
: Set Up Environment 🔧
if (( ${+RUNNER_DEBUG} )) setopt XTRACE

print '::group::Enable Xcode 15.4'
sudo xcode-select --switch /Applications/Xcode_15.4.app/Contents/Developer
print '::group::Enable Xcode 16.1'
sudo xcode-select --switch /Applications/Xcode_16.1.0.app/Contents/Developer
print '::endgroup::'

print '::group::Clean Homebrew Environment'
local -a to_remove=()

for formula (curl) {
if [[ -d ${HOMEBREW_PREFIX}/opt/${formula} ]] to_remove+=(${formula})
local -a unwanted_formulas=()
local -a remove_formulas=()
for formula (${unwanted_formulas}) {
if [[ -d ${HOMEBREW_PREFIX}/Cellar/${formula} ]] remove_formulas+=(${formula})
}

if (( #to_remove )) brew uninstall --ignore-dependencies ${to_remove}
if (( #remove_formulas )) brew uninstall --ignore-dependencies ${remove_formulas}
print '::endgroup::'

local -A arch_names=(x86_64 intel arm64 apple)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check-format.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
failCondition: error

swift-format:
runs-on: macos-14
runs-on: macos-15
steps:
- uses: actions/checkout@v4
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dispatch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
services-validation:
name: Validate Services 🕵️
if: github.repository_owner == 'obsproject' && inputs.job == 'services'
runs-on: macos-14
runs-on: macos-15
permissions:
checks: write
contents: write
Expand Down Expand Up @@ -73,7 +73,7 @@ jobs:
steam-upload:
name: Upload Steam Builds 🚂
if: github.repository_owner == 'obsproject' && inputs.job == 'steam'
runs-on: macos-14
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/steam-upload
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ jobs:
create-appcast:
name: Create Sparkle Appcast 🎙️
if: github.repository_owner == 'obsproject' && github.ref_type == 'tag'
runs-on: macos-14
runs-on: macos-15
needs: build-project
strategy:
fail-fast: false
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/scheduled.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
services-availability:
name: Check Service Availability 🛜
if: github.repository_owner == 'obsproject'
runs-on: macos-14
runs-on: macos-15
permissions:
checks: write
contents: write
Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:
# each item in the array with the 'actions_caches' key.
# First it only selects objects whose 'ref' element has the value
# 'refs/heads/master', of those objects only those whose 'key'
# value matches the specifies expression, before finally only
# value matches the specified expression, before finally only
# selecting the 'id' and 'key' elements for a new object.
# The final 'join' command combines both elements with a semicolon
# into a raw string which can then be parsed directly.
Expand Down Expand Up @@ -124,7 +124,7 @@ jobs:
if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi

# This 'gh' command retrieves the last 2 runs of the workflow defined
# by 'scheduled.yaml' and retrieve only the 'headSha' value of the
# by 'scheduled.yaml' and retrieves just the 'headSha' value of the
# JSON response payload.
#
# As this job runs in context of the same workflow, the first element
Expand Down Expand Up @@ -162,7 +162,7 @@ jobs:
name: Upload Steam Builds 🚂
needs: [build-project]
if: github.repository_owner == 'obsproject'
runs-on: macos-14
runs-on: macos-15
defaults:
run:
shell: zsh --no-rcs --errexit --pipefail {0}
Expand All @@ -178,7 +178,7 @@ jobs:
if (( ${+RUNNER_DEBUG} )) setopt XTRACE

# This 'gh' command retrieves the last 2 runs of the workflow defined
# by 'scheduled.yaml' and retrieve only the 'headSha' value of the
# by 'scheduled.yaml' and retrieves just the 'headSha' value of the
# JSON response payload.
#
# As this job runs in context of the same workflow, the first element
Expand Down
4 changes: 2 additions & 2 deletions cmake/macos/compilerconfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ endif()
set_property(CACHE CMAKE_OSX_ARCHITECTURES PROPERTY STRINGS arm64 x86_64)

# Ensure recent enough Xcode and platform SDK
set(_obs_macos_minimum_sdk 14.2) # Keep in sync with Xcode
set(_obs_macos_minimum_xcode 15.1) # Keep in sync with SDK
set(_obs_macos_minimum_sdk 15.0) # Keep in sync with Xcode
set(_obs_macos_minimum_xcode 16.0) # Keep in sync with SDK
RytoEX marked this conversation as resolved.
Show resolved Hide resolved
message(DEBUG "macOS SDK Path: ${CMAKE_OSX_SYSROOT}")
string(REGEX MATCH ".+/MacOSX.platform/Developer/SDKs/MacOSX([0-9]+\\.[0-9])+\\.sdk$" _ ${CMAKE_OSX_SYSROOT})
set(_obs_macos_current_sdk ${CMAKE_MATCH_1})
Expand Down
Loading