@@ -34,9 +34,7 @@ workflow [`step-summary`][step-summary], and Pull Request reviews (with
34
34
[ ` tidy-review ` ] [ tidy-review ] or [ ` format-review ` ] [ format-review ] ).
35
35
36
36
> [ !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 ) .
40
38
41
39
## Usage
42
40
@@ -158,8 +156,55 @@ Example
158
156
159
157
To provide feedback (requesting a feature or reporting a bug) please post to [issues](https://github.com/cpp-linter/cpp-linter-action/issues).
160
158
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
+
161
200
# # License
162
201
163
202
The scripts and documentation in this project are released under the [MIT License](https://github.com/cpp-linter/cpp-linter-action/blob/main/LICENSE)
164
203
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
+
165
210
<!--README-end-->
0 commit comments