diff --git a/.github/workflows/build+test+deploy.yml b/.github/workflows/build+test+deploy.yml index 1aa9c4182..7ab6aeea2 100644 --- a/.github/workflows/build+test+deploy.yml +++ b/.github/workflows/build+test+deploy.yml @@ -36,6 +36,28 @@ jobs: - name: Run FSharpLint on itself run: make selfcheck + testToolInvocation: + needs: buildAndTest + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + global-json-file: global.json + - name: Setup .NET 10 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '10.0.x' + - name: Restore tools + run: dotnet tool restore + - name: Build and pack + run: dotnet fsi build.fsx -t Pack + - name: Remove global.json to allow using .NET 10 SDK (for dnx) + run: rm --force global.json + - name: Run fsharplint as tool using dnx + run: dnx fslint lint ./src/FSharpLint.Console/FSharpLint.Console.fsproj --source ./out/ --prerelease --yes --interactive false packReleaseBinaries: needs: buildAndTest @@ -161,11 +183,11 @@ jobs: EOF - name: Install FSharpLint from downloaded binaries - run: dotnet tool install --global dotnet-fsharplint --prerelease --framework net8.0 + run: dotnet tool install --global fslint --prerelease --framework net8.0 - name: Add .NET tools to PATH run: echo "$HOME/.dotnet/tools" >> $GITHUB_PATH - name: Lint FSharpLint.Console project (net8.0 only) - run: dotnet fsharplint lint ./src/FSharpLint.Console/FSharpLint.Console.fsproj --framework net8.0 + run: fslint lint ./src/FSharpLint.Console/FSharpLint.Console.fsproj --framework net8.0 testReleaseBinariesWithDotNet10: needs: packReleaseBinaries @@ -195,8 +217,8 @@ jobs: EOF - name: Install FSharpLint from downloaded binaries - run: dotnet tool install --global dotnet-fsharplint --prerelease + run: dotnet tool install --global fslint --prerelease - name: Add .NET tools to PATH run: echo "$HOME/.dotnet/tools" >> $GITHUB_PATH - name: Lint FSharpLint.Console project - run: dotnet fsharplint lint ./src/FSharpLint.Console/FSharpLint.Console.fsproj + run: fslint lint ./src/FSharpLint.Console/FSharpLint.Console.fsproj diff --git a/README.md b/README.md index 60a846d90..229c1a76e 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ The [docs](http://fsprojects.github.io/FSharpLint/) contain an overview of the t Package | Latest Stable Version | Latest Version (including Pre-Releases) ------- | --------------------- | ---------------------------------------- -[dotnet tool](https://www.nuget.org/packages/dotnet-fsharplint/) | [![NuGet Status](http://img.shields.io/nuget/v/dotnet-fsharplint.svg?style=flat)](https://www.nuget.org/packages/dotnet-fsharplint/) | [![NuGet Status](http://img.shields.io/nuget/vpre/dotnet-fsharplint.svg?style=flat)](https://www.nuget.org/packages/dotnet-fsharplint/) +dotnet tool | [![NuGet Status](http://img.shields.io/nuget/v/dotnet-fsharplint.svg?style=flat)](https://www.nuget.org/packages/dotnet-fsharplint/) | [![NuGet Status](http://img.shields.io/nuget/vpre/fslint.svg?style=flat)](https://www.nuget.org/packages/fslint/) [API](https://www.nuget.org/packages/FSharpLint.Core/) | [![NuGet Status](http://img.shields.io/nuget/v/FSharpLint.Core.svg?style=flat)](https://www.nuget.org/packages/FSharpLint.Core/) | [![NuGet Status](http://img.shields.io/nuget/vpre/FSharpLint.Core.svg?style=flat)](https://www.nuget.org/packages/FSharpLint.Core/) ## How to build diff --git a/docs/content/how-tos/install-dotnet-tool.md b/docs/content/how-tos/install-dotnet-tool.md index 69d996ffa..83fc2098a 100644 --- a/docs/content/how-tos/install-dotnet-tool.md +++ b/docs/content/how-tos/install-dotnet-tool.md @@ -4,16 +4,24 @@ category: how-to menu_order: 1 --- -# Installing as dotnet tool +# Running fsharplint + +The console application is a wrapper around the linter. For basic usage, just run `dnx fslint lint `, where `input` can be an fsproj, sln, fs, fsx file, or a string of source code. This will install (if run for the first time) and run fsharplint. + +Run `dnx fsharplint --help` for full usage information. + +# Installing and running on .NET versions older than 10.0 + +## Installing as dotnet tool The linter can be [installed as a dotnet tool](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-install). -Install as a global tool: `dotnet tool install -g dotnet-fsharplint`. +Install as a global tool: `dotnet tool install -g fslint`. -Install as tool to specific directory: `dotnet tool install --tool-path dotnet-fsharplint` +Install as tool to specific directory: `dotnet tool install --tool-path fslint` ## Running the Console Application -The console application is a wrapper around the linter. For basic usage, just run `dotnet fsharplint lint `, where `input` can be an fsproj, sln, fs, fsx file, or a string of source code. +If installed as a local tool, run `dotnet fslint lint ` -Run `dotnet fsharplint --help` for full usage information. +If installed as a global tool, run it as `fslint lint `. diff --git a/src/FSharpLint.Console/FSharpLint.Console.fsproj b/src/FSharpLint.Console/FSharpLint.Console.fsproj index 03c445115..68a20a3e5 100644 --- a/src/FSharpLint.Console/FSharpLint.Console.fsproj +++ b/src/FSharpLint.Console/FSharpLint.Console.fsproj @@ -9,7 +9,7 @@ F#;fsharp;lint;FSharpLint;fslint;cli DotNetCliTool true - dotnet-fsharplint + fslint FSharpLint.Console true LatestMajor diff --git a/tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs b/tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs index bd6f9cb06..de3d6233d 100644 --- a/tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs +++ b/tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs @@ -39,7 +39,7 @@ module Tests = |> Seq.sortByDescending _.Name |> Seq.tryHead match dllDir with - | Some dir -> dir.FullName "dotnet-fsharplint.dll" + | Some dir -> dir.FullName "fslint.dll" | None -> failwithf "No target framework folder found in %s" binDir.FullName let startInfo = ProcessStartInfo