Specialization auth handler #399
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Lint Backend | |
on: | |
pull_request: | |
branches: ["main", "feature*"] | |
paths: | |
- "webapi/**" | |
- "memorypipeline/**" | |
- "tools/**" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
env: | |
NUGET_CERT_REVOCATION_MODE: offline | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
with: | |
clean: true | |
- name: Get changed files | |
id: changed-files | |
uses: jitterbit/get-changed-files@v1 | |
continue-on-error: true | |
- name: No C# files changed | |
id: no-csharp | |
if: steps.changed-files.outputs.added_modified == '' | |
run: echo "No C# files changed" | |
# This step will loop over the changed files and find the nearest .csproj file for each one, then store the unique csproj files in a variable | |
- name: Find csproj files | |
id: find-csproj | |
run: | | |
csproj_files=() | |
if [[ ${{ steps.changed-files.outcome }} == 'success' ]]; then | |
for file in ${{ steps.changed-files.outputs.added_modified }}; do | |
echo "$file was changed" | |
dir="./$file" | |
while [[ $dir != "." && $dir != "/" && $dir != $GITHUB_WORKSPACE ]]; do | |
if find "$dir" -maxdepth 1 -name "*.csproj" -print -quit | grep -q .; then | |
csproj_files+=("$(find "$dir" -maxdepth 1 -name "*.csproj" -print -quit)") | |
break | |
fi | |
dir=$(echo ${dir%/*}) | |
done | |
done | |
else | |
# if the changed-files step failed, run dotnet on the whole sln instead of specific projects | |
echo "Running dotnet format on whole solution" | |
csproj_files=$(find ./ -type f -name "*.sln" | tr '\n' ' '); | |
fi | |
csproj_files=($(printf "%s\n" "${csproj_files[@]}" | sort -u)) | |
echo "Found ${#csproj_files[@]} unique csproj/sln files: ${csproj_files[*]}" | |
echo "csproj_files=${csproj_files[*]}" >> $GITHUB_OUTPUT | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
- name: Check For Lint | |
if: steps.find-csproj.outputs.csproj_files != '' | |
run: | | |
for csproj in ${{ steps.find-csproj.outputs.csproj_files }}; do | |
echo "Checking formatting for $csproj" | |
# https://csharpier.com/docs/IntegratingWithLinters | |
dotnet format style $csproj --verify-no-changes --verbosity diagnostic | |
dotnet format analyzers $csproj --verify-no-changes --verbosity diagnostic | |
done |