@@ -34,9 +34,7 @@ workflow [`step-summary`][step-summary], and Pull Request reviews (with
3434[ ` tidy-review ` ] [ tidy-review ] or [ ` format-review ` ] [ format-review ] ).
3535
3636> [ !WARNING]
37- > We only support Linux runners using a Debian-based Linux OS (like Ubuntu and many others).
38- >
39- > MacOS and Windows runners are supported as well.
37+ > See the [ required tools section below] ( #required-tools-installed ) .
4038
4139## Usage
4240
@@ -158,8 +156,55 @@ Example
158156
159157To provide feedback (requesting a feature or reporting a bug) please post to [issues](https://github.com/cpp-linter/cpp-linter-action/issues).
160158
159+ # # Required tools installed
160+
161+ As of v2.16.0, this action now uses
162+
163+ - [nushell] for cross-platform compatible scripting
164+ - [uv] for driving a Python virtual environment
165+
166+ This action installs [nushell] and [uv] automatically, but only [nushell] is added to the PATH environment variable;
167+ [uv], and any standalone Python distribution it downloads, are not added to the PATH environment variable.
168+
169+ # ## On Linux runners
170+
171+ We only support Linux runners using a Debian-based Linux OS (like Ubuntu and many others).
172+ This is because we first try to use the `apt` package manager to install clang tools.
173+
174+ Linux workflows that use a specific [`container`][gh-container-syntax] should ensure that
175+ the following is installed :
176+
177+ - GLIBC (v2.32 or later)
178+ - ` wget` or `curl`
179+ - ` lsb-release` (required by LLVM-provided install script)
180+ - ` software-properties-common` (required by LLVM-provided install script)
181+ - ` gnupg` (required by LLVM-provided install script)
182+
183+ ` ` ` shell
184+ apt-get install -y libc6 wget lsb-release software-properties-common gnupg
185+ ` ` `
186+
187+ Otherwise, [nushell] and/or the LLVM-provided bash script will fail to run.
188+
189+ # ## On MacOS runners
190+
191+ The specified `version` of clang-format and `clang-tidy` is installed via Homebrew.
192+ Failing that, we attempt to use static binaries that we built ourselves;
193+ see [cpp-linter/clang-tools-pip] and [cpp-linter/clang-tools-static-binaries] projects for more detail.
194+
195+ # ## On Windows runners
196+
197+ For Windows runners, we only use clang tools built as static binaries.
198+ See [cpp-linter/clang-tools-pip] and [cpp-linter/clang-tools-static-binaries] projects for more detail.
199+
161200# # License
162201
163202The scripts and documentation in this project are released under the [MIT License](https://github.com/cpp-linter/cpp-linter-action/blob/main/LICENSE)
164203
204+ [nushell] : https://www.nushell.sh/
205+ [uv] : https://docs.astral.sh/uv/
206+ [cpp-linter/clang-tools-pip] : https://github.com/cpp-linter/clang-tools-pip
207+ [cpp-linter/clang-tools-static-binaries] : https://github.com/cpp-linter/clang-tools-static-binaries
208+ [gh-container-syntax] : https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idcontainer
209+
165210<!--README-end-->
0 commit comments