Skip to content

Commit 364d16f

Browse files
authored
feat: improve linting workflow with violation detection (#182)
* feat: add StyleTest class for future style validation * refactor: improve code consistency with naming conventions * feat: improve linting workflow with violation detection
1 parent 261f53a commit 364d16f

File tree

4 files changed

+34
-7
lines changed

4 files changed

+34
-7
lines changed

.github/workflows/reusable-unity-cs-linter.yaml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ jobs:
188188
dotnet add package StyleCop.Analyzers
189189
190190
- name: Collect Style Violations Log
191+
id: violations-log
191192
if: ${{ steps.detect-cs-files.outputs.files != '' }}
192193
run: |
193194
echo "Collecting style violations into output.log..."
@@ -198,33 +199,38 @@ jobs:
198199
modified_line=$(echo "$line" | sed -E 's/(\\s){6}/6 spaces/g' | sed -E 's/(\\s){4}/4 spaces/g' | sed -E 's/(\\s){2}/2 spaces/g' | sed -E 's/\\s/1 space/g')
199200
echo "$modified_line" >> output_temp.log
200201
done < output.log
201-
mv output_temp.log output.log
202+
if [ -f output_temp.log ]; then
203+
mv output_temp.log output.log
204+
echo "available=1" >> "$GITHUB_OUTPUT"
205+
else
206+
echo "::notice::No issues were found in the code"
207+
fi
202208
203209
- name: Debug Raw Output Log
204-
if: ${{ steps.detect-cs-files.outputs.files != '' }}
210+
if: ${{ steps.violations-log.outputs.available == '1' }}
205211
run: |
206212
echo "=== DEBUG RAW OUTPUT.LOG ==="
207213
cat output.log
208214
echo "=== END RAW OUTPUT.LOG ==="
209215
210216
- name: Download `convert_to_sarif.py`
211-
if: ${{ steps.detect-cs-files.outputs.files != '' }}
217+
if: ${{ steps.violations-log.outputs.available == '1' }}
212218
run: |
213219
curl --fail --silent --show-error --max-time 10 -o convert_to_sarif.py ${{ env.CONVERT_TO_SARIF_URI }} || { echo "Failed to download script"; exit 1; }
214220
215221
- name: Convert to SARIF
216-
if: ${{ steps.detect-cs-files.outputs.files != '' }}
222+
if: ${{ steps.violations-log.outputs.available == '1' }}
217223
run: |
218224
python3 convert_to_sarif.py output.log output.sarif
219225
220226
- name: Setup reviewdog
221-
if: ${{ steps.detect-cs-files.outputs.files != '' }}
227+
if: ${{ steps.violations-log.outputs.available == '1' }}
222228
uses: reviewdog/action-setup@v1
223229
with:
224230
reviewdog_version: latest
225231

226232
- name: Apply Style Suggestions with reviewdog
227-
if: ${{ steps.detect-cs-files.outputs.files != '' }}
233+
if: ${{ steps.violations-log.outputs.available == '1' }}
228234
env:
229235
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
230236
run: |
@@ -237,6 +243,6 @@ jobs:
237243
< output.sarif
238244
239245
- name: Cleanup temporary files
240-
if: ${{ steps.detect-cs-files.outputs.files != '' && always() }}
246+
if: ${{ steps.violations-log.outputs.available == '1' && always() }}
241247
run: |
242248
rm -f TempProject.csproj convert_to_sarif.py output.log output.sarif || true

Assets/Tests/StyleTest.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Tests/StyleTest/StyleTest.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
namespace Tests.StyleTest
3+
{
4+
public sealed class StyleTest
5+
{
6+
static string s_staticField = string.Empty;
7+
string _test;
8+
string _test2;
9+
10+
void Test()
11+
{
12+
13+
}
14+
}
15+
}

Assets/Tests/StyleTest/StyleTest.cs.meta

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)