@@ -102,58 +102,102 @@ inputs:
102
102
outputs :
103
103
checks-failed :
104
104
description : An integer that can be used as a boolean value to indicate if any checks failed by clang-tidy and clang-format.
105
- value : ${{ steps.cpp-linter.outputs.checks-failed }}
105
+ value : ${{ steps.cpp-linter-unix.outputs.checks-failed || steps.cpp-linter-windows .outputs.checks-failed }}
106
106
clang-tidy-checks-failed :
107
107
description : An integer that can be used as a boolean value to indicate if any checks failed by clang-tidy only.
108
- value : ${{ steps.cpp-linter.outputs.clang-tidy-checks-failed }}
108
+ value : ${{ steps.cpp-linter-unix.outputs.clang-tidy-checks-failed || steps.cpp-linter-windows .outputs.clang-tidy-checks-failed }}
109
109
clang-format-checks-failed :
110
110
description : An integer that can be used as a boolean value to indicate if any checks failed by clang-format only.
111
- value : ${{ steps.cpp-linter.outputs.clang-format-checks-failed }}
111
+ value : ${{ steps.cpp-linter-unix.outputs.clang-format-checks-failed || steps.cpp-linter-windows .outputs.clang-format-checks-failed }}
112
112
runs :
113
113
using : " composite"
114
114
steps :
115
- - name : Install action dependencies
115
+ - name : Install python
116
+ uses : actions/setup-python@v4
117
+ id : setup-python
118
+ with :
119
+ python-version : ' 3.11'
120
+ update-environment : false
121
+
122
+ - name : Install Linux clang dependencies
123
+ if : runner.os == 'Linux'
116
124
shell : bash
117
125
run : |
118
- if [[ "${{runner.os}}" == "Linux" ]]; then
119
- sudo apt-get update
120
- # First try installing from default Ubuntu repositories before trying LLVM script
121
- if ! sudo apt-get install -y clang-format-${{ inputs.version }} clang-tidy-${{ inputs.version }}; then
122
- # This LLVM script will add the relevant LLVM PPA: https://apt.llvm.org/
123
- wget https://apt.llvm.org/llvm.sh -O $GITHUB_ACTION_PATH/llvm_install.sh
124
- chmod +x $GITHUB_ACTION_PATH/llvm_install.sh
125
- if sudo $GITHUB_ACTION_PATH/llvm_install.sh ${{ inputs.version }}; then
126
- sudo apt-get install -y clang-format-${{ inputs.version }} clang-tidy-${{ inputs.version }}
127
- fi
126
+ sudo apt-get update
127
+ # First try installing from default Ubuntu repositories before trying LLVM script
128
+ if ! sudo apt-get install -y clang-format-${{ inputs.version }} clang-tidy-${{ inputs.version }}; then
129
+ # This LLVM script will add the relevant LLVM PPA: https://apt.llvm.org/
130
+ wget https://apt.llvm.org/llvm.sh -O $GITHUB_ACTION_PATH/llvm_install.sh
131
+ chmod +x $GITHUB_ACTION_PATH/llvm_install.sh
132
+ if sudo $GITHUB_ACTION_PATH/llvm_install.sh ${{ inputs.version }}; then
133
+ sudo apt-get install -y clang-format-${{ inputs.version }} clang-tidy-${{ inputs.version }}
128
134
fi
129
135
fi
130
- if [[ "${{runner.os}}" == "macOS" ]]; then
131
- python3 -m venv "$GITHUB_ACTION_PATH/venv"
132
- source "$GITHUB_ACTION_PATH/venv/bin/activate"
133
- fi
134
- python3 -m pip install -r "$GITHUB_ACTION_PATH/requirements.txt"
136
+
137
+ - name : Setup python venv (Unix)
138
+ if : runner.os == 'Linux' || runner.os == 'macOS'
139
+ shell : bash
140
+ run : |
141
+ ${{ steps.setup-python.outputs.python-path }} -m venv "$GITHUB_ACTION_PATH/venv"
142
+ source "$GITHUB_ACTION_PATH/venv/bin/activate"
143
+ pip install -r "$GITHUB_ACTION_PATH/requirements.txt"
135
144
clang-tools -i ${{ inputs.version }} -b
136
145
137
- - name : Run cpp-linter
138
- id : cpp-linter
146
+ - name : Run cpp-linter (Unix)
147
+ id : cpp-linter-unix
148
+ if : runner.os == 'Linux' || runner.os == 'macOS'
139
149
shell : bash
140
150
run : |
141
- if [[ "${{runner.os}}" == "macOS" ]]; then
142
- source "$GITHUB_ACTION_PATH/venv/bin/activate"
143
- fi
151
+ source "$GITHUB_ACTION_PATH/venv/bin/activate"
152
+
144
153
cpp-linter \
145
- --style="${{ inputs.style }}" \
146
- --extensions=${{ inputs.extensions }} \
147
- --tidy-checks="${{ inputs.tidy-checks }}" \
148
- --repo-root=${{ inputs.repo-root }} \
149
- --version=${{ inputs.version }} \
150
- --verbosity=${{ inputs.verbosity }} \
151
- --lines-changed-only=${{ inputs.lines-changed-only }} \
152
- --files-changed-only=${{ inputs.files-changed-only }} \
153
- --thread-comments=${{ inputs.thread-comments }} \
154
- --no-lgtm=${{ inputs.no-lgtm }} \
155
- --step-summary=${{ inputs.step-summary }} \
156
- --ignore="${{ inputs.ignore }}" \
157
- --database=${{ inputs.database }} \
158
- --file-annotations=${{ inputs.file-annotations }} \
159
- --extra-arg="${{ inputs.extra-args }}"
154
+ --style="${{ inputs.style }}" \
155
+ --extensions=${{ inputs.extensions }} \
156
+ --tidy-checks="${{ inputs.tidy-checks }}" \
157
+ --repo-root=${{ inputs.repo-root }} \
158
+ --version=${{ inputs.version }} \
159
+ --verbosity=${{ inputs.verbosity }} \
160
+ --lines-changed-only=${{ inputs.lines-changed-only }} \
161
+ --files-changed-only=${{ inputs.files-changed-only }} \
162
+ --thread-comments=${{ inputs.thread-comments }} \
163
+ --no-lgtm=${{ inputs.no-lgtm }} \
164
+ --step-summary=${{ inputs.step-summary }} \
165
+ --ignore="${{ inputs.ignore }}" \
166
+ --database=${{ inputs.database }} \
167
+ --file-annotations=${{ inputs.file-annotations }} \
168
+ --extra-arg="${{ inputs.extra-args }}"
169
+
170
+ - name : Setup python venv (Windows)
171
+ if : runner.os == 'Windows'
172
+ shell : pwsh
173
+ run : |
174
+ ${{ steps.setup-python.outputs.python-path }} -m venv "$env:GITHUB_ACTION_PATH/venv"
175
+ Invoke-Expression -Command "$env:GITHUB_ACTION_PATH/venv/Scripts/Activate.ps1"
176
+ pip install -r "$env:GITHUB_ACTION_PATH/requirements.txt"
177
+ clang-tools -i ${{ inputs.version }} -b
178
+
179
+ - name : Run cpp-linter (Windows)
180
+ id : cpp-linter-windows
181
+ if : runner.os == 'Windows'
182
+ shell : pwsh
183
+ run : |
184
+ Invoke-Expression -Command "$env:GITHUB_ACTION_PATH/venv/Scripts/Activate.ps1"
185
+
186
+ $app = 'cpp-linter' +
187
+ ' --style="${{ inputs.style }}"' +
188
+ ' --extensions=${{ inputs.extensions }}' +
189
+ ' --tidy-checks="${{ inputs.tidy-checks }}"' +
190
+ ' --repo-root=${{ inputs.repo-root }}' +
191
+ ' --version=${{ inputs.version }}' +
192
+ ' --verbosity=${{ inputs.verbosity }}' +
193
+ ' --lines-changed-only=${{ inputs.lines-changed-only }}' +
194
+ ' --files-changed-only=${{ inputs.files-changed-only }}' +
195
+ ' --thread-comments=${{ inputs.thread-comments }}' +
196
+ ' --no-lgtm=${{ inputs.no-lgtm }}' +
197
+ ' --step-summary=${{ inputs.step-summary }}' +
198
+ ' --ignore="${{ inputs.ignore }}"' +
199
+ ' --database=${{ inputs.database }}' +
200
+ ' --file-annotations=${{ inputs.file-annotations }}' +
201
+ ' --extra-arg="${{ inputs.extra-args }}"'
202
+
203
+ Invoke-Expression -Command $app
0 commit comments