Skip to content

Commit

Permalink
scripts: add new script
Browse files Browse the repository at this point in the history
Add not_respecting_some_naming_conventions.fsx script to
detect if some naming conventions are respected.

Fixes #93
  • Loading branch information
tehraninasab committed Aug 8, 2023
1 parent c1901e1 commit 5fe6d23
Show file tree
Hide file tree
Showing 17 changed files with 57 additions and 14 deletions.
28 changes: 15 additions & 13 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Compile the conventions solution
run: dotnet build --configuration Release conventions.sln
- name: Compile F# scripts
run: dotnet fsi scripts/compileFSharpScripts.fsx
run: dotnet fsi scripts/compile_fsharp_scripts.fsx

file-conventions-tests:
name: Run FileConventions-lib unit tests
Expand Down Expand Up @@ -166,30 +166,32 @@ jobs:
apt install --yes --no-install-recommends dotnet6
- name: Check all files end with EOL
run: dotnet fsi scripts/eofConvention.fsx
run: dotnet fsi scripts/eof_convention.fsx
- name: Check all .fsx scripts have shebang
run: dotnet fsi scripts/shebangConvention.fsx
run: dotnet fsi scripts/shebang_convention.fsx
- name: Check all F# scripts have execute permission
run: dotnet fsi scripts/executableConvention.fsx
run: dotnet fsi scripts/executable_convention.fsx
- name: Check there are no mixed line-endings in any files
run: dotnet fsi scripts/mixedLineEndings.fsx
run: dotnet fsi scripts/mixed_line_endings.fsx
- name: Check there are no unpinned GitHubActions image versions
run: dotnet fsi scripts/unpinnedGitHubActionsImageVersions.fsx
run: dotnet fsi scripts/unpinned_github_actions_image_versions.fsx
- name: Check there are no unpinned dotnet package versions
run: dotnet fsi scripts/unpinnedDotnetPackageVersions.fsx
run: dotnet fsi scripts/unpinned_dotnet_package_versions.fsx
- name: Check there are no unpinned nuget package reference versions in F# scripts
run: dotnet fsi scripts/unpinnedNugetPackageReferenceVersions.fsx
run: dotnet fsi scripts/unpinned_nuget_package_reference_versions.fsx
- name: Check there are no unpinned versions in `dotnet tool install` commands
run: dotnet fsi scripts/unpinnedDotnetToolInstallVersions.fsx
run: dotnet fsi scripts/unpinned_dotnet_tool_install_versions.fsx
- name: Check if script names (.fsx, .bat, and .sh files) are snake_case and CI job names are kebab-case.
run: dotnet fsi scripts/not_respecting_some_naming_conventions.fsx
- name: Check commits 1 by 1
if: github.event_name == 'pull_request'
run: dotnet fsi scripts/checkCommits1by1.fsx
run: dotnet fsi scripts/check_commits_1by1.fsx
- name: Check there are no inconsistent versions GitHubCI files
run: dotnet fsi scripts/inconsistentVersionsInGitHubCI.fsx
run: dotnet fsi scripts/inconsistent_versions_in_githubci.fsx
- name: Check there are no inconsistent versions in nuget package references of F# scripts
run: dotnet fsi scripts/inconsistentVersionsInFSharpScripts.fsx
run: dotnet fsi scripts/inconsistent_versions_in_fsharp_scripts.fsx
- name: Check there are no non-verbose flags in scripts and CI YML files
run: dotnet fsi scripts/nonVerboseFlagsInGitHubCIAndScripts.fsx
run: dotnet fsi scripts/non_verbose_flags_in_githubci_and_scripts.fsx
- name: Install prettier
run: npm install prettier@2.8.3
- name: Change file permissions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -920,7 +920,7 @@ if notUsedGitPush1by1 then
sprintf
"Please push the commits one by one to make sure every commit has a CI status; using this script is recommended:%s%s"
Environment.NewLine
"https://github.com/nblockchain/conventions/blob/master/scripts/gitPush1by1.fsx"
"https://github.com/nblockchain/conventions/blob/master/scripts/git_push_1by1.fsx"

Console.Error.WriteLine errMsg
Environment.Exit 2
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
41 changes: 41 additions & 0 deletions scripts/not_respecting_some_naming_conventions.fsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env -S dotnet fsi

open System
open System.IO

#r "nuget: YamlDotNet, Version=13.0.2"
#load "../src/FileConventions/Library.fs"
#load "../src/FileConventions/Helpers.fs"

let rootDir = Path.Combine(__SOURCE_DIRECTORY__, "..") |> DirectoryInfo

let invalidYmlFiles =
Helpers.GetInvalidFiles
rootDir
"*.yml"
FileConventions.DetectNotUsingKebabCaseInGitHubCIJobs

Helpers.AssertNoInvalidFiles
invalidYmlFiles
"Please use kebab-case for CI job names in the following files:"

let scriptExtensions =
seq {
".fsx"
".bat"
".sh"
}

let scriptsWithInvalidNames =
scriptExtensions
|> Seq.map(fun extension ->
Helpers.GetInvalidFiles
rootDir
("*" + extension)
FileConventions.DetectNotUsingSnakeCaseInScriptName
)
|> Seq.concat

Helpers.AssertNoInvalidFiles
scriptsWithInvalidNames
"Please use snake_case for naming the following scripts:"
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 5fe6d23

Please sign in to comment.