A GitHub Action that wraps the .NET CLI dotnet format
command.
- Wraps the
dotnet format
.NET CLI command- Provides a structured way of using this command in a workflow
- Supports all platforms (Linux, macOS, Windows)
- No external GitHub Actions dependencies
Note
This action provides a wrapper around the
dotnet format
.NET CLI command. For further details, please check out the official documentation.
steps:
- name: Checkout
uses: actions/checkout@v3
- name: .NET Format
uses: zyactions/dotnet-format@v1
with:
workspace: test
implicit-restore: true
Note
Unlike the wrapped command, this action does not perform an implicit package restore by default. A manual package restore (e.g. using zyactions/dotnet-restore) is required by design.
Set
implicit-restore
totrue
to switch back to the original behavior.
steps:
steps:
- name: Checkout
uses: actions/checkout@v3
- name: .NET Format
uses: zyactions/dotnet-format@v1
with:
workspace: test/Test.csproj
implicit-restore: true
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Glob Match
id: glob
uses: zyactions/glob@v2
with:
pattern: |
test/*.cs
!test/*.AutoGenerated.cs
return-pipe: true
- name: .NET Format
uses: zyactions/dotnet-format@v1
with:
workspace: test/Test.csproj
include: '-'
pipe: ${{ steps.glob.outputs.pipe }}
implicit-restore: true
Note: Check out the zyactions/glob action for further details.
steps:
- name: Checkout
uses: actions/checkout@v3
- name: .NET Format
uses: zyactions/dotnet-format@v1
with:
workspace: test
verify-no-changes: true
implicit-restore: true
Note
Check out the zyactions/dotnet-lint action action if you like to create pull request annotations for detected formatting violations.
The working-directory for the action.
Defaults to the repository root directory (github.workspace
).
Note
If a specific .NET SDK version is to be used, the working directory must point to the directory that contains the
global.json
or a subdirectory of it.
The Visual Studio workspace (directory, project- or solution-file).
The dotnet restore
command automatically searches for a Visual Studio Solution file (*.sln
) in the specified workspace directory, if no explicit solution- or project- file is specified.
Example values:
path/to/workspace
path/to/Solution.sln
path/to/Project.csproj
A newline-separated list of diagnostic IDs to use as a filter when fixing code style or third-party issues. Default value is whichever IDs are listed in the .editorconfig
file. For a list of built-in analyzer rule IDs that you can specify, see the list of IDs for code-analysis style rules.
The minimum severity of diagnostics to fix. Allowed values are info
, warn
, and error
. The default value is warn
.
Verifies that no formatting changes would be performed. Terminates with a non zero exit code if any files would have been formatted.
A newline-separated list of relative file or folder paths to include in formatting. The default is all files in the solution or project.
Use -
to read the list of files from the pipe
input.
A newline-separated list of relative file or folder paths to exclude from formatting.
The default is none.
Use -
to read the list of files from the pipe
input.
Produces a JSON report in the specified directory.
Execute an implicit restore before formatting.
Uses the standalone version of the dotnet-format
tool instead of the version bundled with the .NET SDK.
Note
Check out the instructions for installing a development build of
dotnet-format
.
An optional pipe input from which the include
or exclude
filenames are to be read.
This must be set to a valid shell command line (bash) that can be used for piping. The command must output to stdout
and separate the individual filenames by line breaks.
Warning
The command passed to this input will be evaluated and should not come from untrusted sources.
The .NET CLI needs to be installed on the runner. To be independent from the GitHub defaults, it's recommended to install a specific version of the SDK prior to calling this action.
To install the .NET SDK in your workflow, the following actions can be used:
This action does not use external GitHub Actions dependencies.
Versions follow the semantic versioning scheme.
.NET Format Action is licensed under the MIT license.