Skip to content

Commit a27ea8b

Browse files
committed
document required tools
for each platform
1 parent e3308f8 commit a27ea8b

File tree

1 file changed

+48
-3
lines changed

1 file changed

+48
-3
lines changed

README.md

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

159157
To 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

163202
The 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

Comments
 (0)