diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4a677f2c..af23b3fa 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -8,6 +8,39 @@ on:
paths-ignore:
- '**/**.md'
jobs:
+ lint:
+ name: Lint
+ runs-on: windows-latest
+ timeout-minutes: 15
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ - name: Set up .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '6.0'
+ - name: Install dependencies
+ run: dotnet restore
+ - name: Cache NuGet packages
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/.nuget/packages
+ ~/.local/share/NuGet/Cache
+ key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
+ restore-keys: |
+ ${{ runner.os }}-nuget-
+ - name: Run linting
+ run: dotnet build --no-restore --configuration Release /warnaserror
+ env:
+ DOTNET_CLI_TELEMETRY_OPTOUT: 1
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
+ - name: Save linting logs
+ if: failure()
+ uses: actions/upload-artifact@v4
+ with:
+ name: stylecop-lint-log
+ path: lint-output.log
check-dotnet:
strategy:
matrix:
@@ -19,7 +52,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v4
- - name: Set up .NET SDK
+ - name: Set up .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ matrix.DOTNET_VERSION }}
diff --git a/Parse/Parse.csproj b/Parse/Parse.csproj
index 4e098693..d0085628 100644
--- a/Parse/Parse.csproj
+++ b/Parse/Parse.csproj
@@ -27,6 +27,10 @@
+
+
+
+
diff --git a/Parse/stylecop.json b/Parse/stylecop.json
new file mode 100644
index 00000000..590850cf
--- /dev/null
+++ b/Parse/stylecop.json
@@ -0,0 +1,18 @@
+{
+ "settings": {
+ "documentationRules": {
+ "documentPublicElements": false
+ },
+ "layoutRules": {
+ "ignoreSpacesAroundParentheses": true
+ },
+ "orderingRules": {
+ "elementOrder": [
+ "kind",
+ "accessibility",
+ "static"
+ ],
+ "ignoreAccessModifiers": true
+ }
+ }
+}