mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-04 10:33:30 +00:00
Using git's diff-filter when checking for changed files allows the actions to ignore any deleted files. Combined with explicitly passing glob expressions for source files to git directly allows the command to yield a list of changed files compatible with a given formatter directly.
60 lines
2 KiB
YAML
60 lines
2 KiB
YAML
name: Run cmake-format
|
|
description: Runs cmake-format and checks for any changes introduced by it
|
|
inputs:
|
|
failCondition:
|
|
description: Controls whether failed checks also fail the workflow run
|
|
required: false
|
|
default: never
|
|
workingDirectory:
|
|
description: Working directory for checks
|
|
required: false
|
|
default: ${{ github.workspace }}
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Check Runner Operating System 🏃♂️
|
|
if: runner.os == 'Windows'
|
|
shell: bash
|
|
run: |
|
|
: Check Runner Operating System 🏃♂️
|
|
echo "::notice::run-cmake-format action requires a macOS-based or Linux-based runner."
|
|
exit 2
|
|
|
|
- name: Check for Changed Files ✅
|
|
uses: ./.github/actions/check-changes
|
|
id: checks
|
|
with:
|
|
checkGlob: "'*.cmake' '*CMakeLists.txt'"
|
|
diffFilter: 'ACM'
|
|
|
|
- name: Install Dependencies 🛍️
|
|
if: runner.os == 'Linux' && fromJSON(steps.checks.outputs.hasChangedFiles)
|
|
shell: bash
|
|
run: |
|
|
: Install Dependencies 🛍️
|
|
echo ::group::Install Dependencies
|
|
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
|
|
echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH
|
|
brew install --quiet zsh
|
|
echo ::endgroup::
|
|
|
|
- name: Run cmake-format 🎛️
|
|
if: fromJSON(steps.checks.outputs.hasChangedFiles)
|
|
id: result
|
|
shell: zsh --no-rcs --errexit --pipefail {0}
|
|
working-directory: ${{ github.workspace }}
|
|
env:
|
|
CHANGED_FILES: ${{ steps.checks.outputs.changedFiles }}
|
|
run: |
|
|
: Run cmake-format 🎛️
|
|
if (( ${+RUNNER_DEBUG} )) setopt XTRACE
|
|
|
|
print ::group::Install cmakelang
|
|
pip3 install cmakelang
|
|
print ::endgroup::
|
|
|
|
print ::group::Run cmake-format
|
|
local -a changes=(${(s:,:)CHANGED_FILES//[\[\]\'\"]/})
|
|
./build-aux/run-cmake-format --fail-${{ inputs.failCondition }} --check ${changes}
|
|
print ::endgroup::
|