From a97094bbac73164f8ed6e453fd0134716f832db9 Mon Sep 17 00:00:00 2001 From: n0099 Date: Sat, 23 Mar 2024 18:17:11 +0800 Subject: [PATCH] * change the hardcoded input `dotnet-version` of `actions/setup-dotnet@v4` to `global-json-file` * add hash for file `c#/.config/dotnet-tools.json` in the input `key` of `actions/cache/restore@v4` * replace the run `dotnet new globaljson` with `dotnet tool restore` * add `--locked-mode` param for run `dotnet restore` @ actions/c#/action.yml + env `NUGET_PACKAGES` to use runner-level preinstalled NuGet packages + run `jb inspectcode` over the whole solution and upload its output file to `github/codeql-action/upload-sarif@v3` @ workflows/c#.yml @ .github $ dotnet new globaljson --sdk-version 8.0.0 # then set `rollForward: latestFeature` $ dotnet new tool-manifest && dotnet tool install JetBrains.ReSharper.GlobalTools @ c# --- .github/actions/c#/action.yml | 13 +++++++------ .github/workflows/c#.yml | 14 ++++++++++++++ c#/.config/dotnet-tools.json | 12 ++++++++++++ c#/global.json | 6 ++++++ 4 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 c#/.config/dotnet-tools.json create mode 100644 c#/global.json diff --git a/.github/actions/c#/action.yml b/.github/actions/c#/action.yml index 4e6bc2e4..4d4df7d0 100644 --- a/.github/actions/c#/action.yml +++ b/.github/actions/c#/action.yml @@ -8,7 +8,7 @@ runs: submodules: true - uses: actions/setup-dotnet@v4 with: # https://github.com/actions/setup-dotnet/tree/v4 - dotnet-version: 7 + global-json-file: c#/global.json # cache: true # # https://github.com/actions/setup-node/issues/624#issuecomment-1328681525 # cache-dependency-path: ${{ github.workspace }}/c#/*/packages.lock.json @@ -18,14 +18,15 @@ runs: - id: cache-restore uses: actions/cache/restore@v4 with: - path: ~/.nuget/packages - key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }} + path: ${{ github.workspace }}/.nuget/packages + key: ${{ runner.os }}-nuget-${{ hashFiles('c#/*/packages.lock.json') }}-${{ hashFiles('c#/.config/dotnet-tools.json') }} restore-keys: ${{ runner.os }}-nuget- - - run: dotnet new globaljson --sdk-version 7.0.405 + - run: dotnet restore --locked-mode working-directory: c# shell: bash - - run: dotnet restore + + - run: dotnet tool restore working-directory: c# shell: bash @@ -34,5 +35,5 @@ runs: - uses: actions/cache/save@v4 if: ${{ steps.cache-restore.outputs.cache-hit != 'true' }} with: - path: ~/.nuget/packages + path: ${{ github.workspace }}/.nuget/packages key: ${{ steps.cache-restore.outputs.cache-primary-key }} diff --git a/.github/workflows/c#.yml b/.github/workflows/c#.yml index 82973276..3433fe70 100644 --- a/.github/workflows/c#.yml +++ b/.github/workflows/c#.yml @@ -11,7 +11,21 @@ jobs: strategy: matrix: project: [crawler, imagePipeline, shared, tbClient] + env: + NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages steps: - uses: actions/checkout@v4 - uses: ./.github/actions/c# - run: dotnet build --no-restore -c Debug ${{ matrix.project }} + + ReSharper: + runs-on: ubuntu-latest + env: + NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/c# + - run: dotnet tool run jb inspectcode --build -f=sarif -o=ReSharper.sarif.json tbm.sln + - uses: github/codeql-action/upload-sarif@v3 + with: + sarif_file: c#/ReSharper.sarif.json diff --git a/c#/.config/dotnet-tools.json b/c#/.config/dotnet-tools.json new file mode 100644 index 00000000..c3d2a359 --- /dev/null +++ b/c#/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "jetbrains.resharper.globaltools": { + "version": "2023.3.4", + "commands": [ + "jb" + ] + } + } +} \ No newline at end of file diff --git a/c#/global.json b/c#/global.json new file mode 100644 index 00000000..3306bd68 --- /dev/null +++ b/c#/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "8.0.0", + "rollForward": "latestFeature" // https://github.com/actions/setup-dotnet/pull/481 + } +}