Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[*.cs]
csharp_style_prefer_primary_constructors = false
dotnet_style_prefer_collection_expression = false

# ReSharper properties
resharper_align_multiline_binary_expressions_chain = false
resharper_braces_for_foreach = required
resharper_braces_for_ifelse = required
resharper_braces_for_while = required
resharper_csharp_keep_blank_lines_in_code = 1
resharper_csharp_keep_blank_lines_in_declarations = 1
resharper_csharp_wrap_before_binary_opsign = true
resharper_csharp_wrap_parameters_style = chop_if_long
resharper_method_or_operator_body = expression_body
resharper_place_single_method_argument_lambda_on_same_line = false
resharper_wrap_after_declaration_lpar = true
resharper_wrap_after_invocation_lpar = true
resharper_wrap_chained_binary_expressions = chop_if_long
30 changes: 30 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: PR Workflow
on:
pull_request: # Triggers when you create a PR
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
actions: read
checks: write
steps:
- uses: actions/checkout@v7
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Run Tests
run: dotnet test --report-trx --results-directory=".artifacts/test-results" --no-build --no-restore || true
- name: Publish Test Report
uses: dorny/test-reporter@v3
if: ${{ !cancelled() }}
with:
name: .NET Core Tests
path: ".artifacts/test-results/**/*.trx"
reporter: dotnet-trx
fail-on-error: true
31 changes: 31 additions & 0 deletions .github/workflows/release-nuget.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Release NuGet Package
on:
release:
types: [published] # Triggers when you create a GitHub Release
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
id-token: write # Required for OIDC
contents: read
steps:
- uses: actions/checkout@v7
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: 10.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build -c Release -p:Version=${GITHUB_REF_NAME#v} --no-restore
- name: Run Tests
run: dotnet test -c Release --report-trx --results-directory=".artifacts/test-results" --no-build --no-restore
- name: Pack Nuget
run: dotnet pack -c Release -p:Version=${GITHUB_REF_NAME#v} -o .artifacts/packages --no-build --no-restore
- name: Authenticate with NuGet via OIDC
uses: NuGet/login@v1
id: nuget-login
with:
user: ig-sinicyn
- name: Push Nuget
run: dotnet nuget push ".artifacts/packages/**/*.nupkg" -s https://api.nuget.org/v3/index.json -k ${{ steps.nuget-login.outputs.NUGET_API_KEY }} --skip-duplicate
13 changes: 13 additions & 0 deletions CodeMe.ScaffoldCS.sln.DotSettings
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertClosureToMethodGroup/@EntryIndexedValue">HINT</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToLocalFunction/@EntryIndexedValue">HINT</s:String>
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToPrimaryConstructor/@EntryIndexedValue">SUGGESTION</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeCleanup/CleanupOnSave/@EntryValue">True</s:Boolean>
<s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=Cleanup_0020on_0020Save/@EntryIndexedValue">&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;Profile name="Cleanup on Save"&gt;&lt;CSCodeStyleAttributes ArrangeVarStyle="True" ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" ArrangeAccessors="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeAttributes="True" ArrangeCodeBodyStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeEmptyString="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" ArrangeBraces="True" /&gt;&lt;CSArrangeQualifiers&gt;True&lt;/CSArrangeQualifiers&gt;&lt;CSFixBuiltinTypeReferences&gt;True&lt;/CSFixBuiltinTypeReferences&gt;&lt;XMLReformatCode&gt;True&lt;/XMLReformatCode&gt;&lt;CSMakeFieldReadonly&gt;True&lt;/CSMakeFieldReadonly&gt;&lt;CSMakeAutoPropertyGetOnly&gt;True&lt;/CSMakeAutoPropertyGetOnly&gt;&lt;CSOptimizeUsings&gt;&lt;OptimizeUsings&gt;True&lt;/OptimizeUsings&gt;&lt;/CSOptimizeUsings&gt;&lt;CSShortenReferences&gt;True&lt;/CSShortenReferences&gt;&lt;CSReformatCode&gt;True&lt;/CSReformatCode&gt;&lt;CSharpFormatDocComments&gt;True&lt;/CSharpFormatDocComments&gt;&lt;CSharpReformatComments&gt;True&lt;/CSharpReformatComments&gt;&lt;XAMLCollapseEmptyTags&gt;False&lt;/XAMLCollapseEmptyTags&gt;&lt;RemoveCodeRedundancies&gt;True&lt;/RemoveCodeRedundancies&gt;&lt;/Profile&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/BRACES_FOR_IFELSE/@EntryValue">Required</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/XmlDocFormatter/IndentTagContent/@EntryValue">ZeroIndent</s:String>
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/XmlDocFormatter/TagSpaceBeforeHeaderEnd1/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=15b5b1f1_002D457c_002D4ca6_002Db278_002D5615aedc07d3/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static readonly fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="READONLY_FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" WarnAboutPrefixesAndSuffixes="False" Prefix="_" Suffix="" Style="aaBb" /&gt;&lt;/Policy&gt;</s:String>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EUnitTestFramework_002EMigrations_002EEnableDisabledProvidersMigration/@EntryIndexedValue">True</s:Boolean>

</wpf:ResourceDictionary>
15 changes: 15 additions & 0 deletions CodeMe.ScaffoldCS.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<Solution>
<Folder Name="/docs/">
<Project Path="docs/docs.csproj" />
</Folder>
<Folder Name="/env/">
<Project Path="cicd/cicd.csproj" />
<Project Path="env/env.csproj" />
</Folder>
<Folder Name="/src/">
<Project Path="src/CodeMe.ScaffoldCS/CodeMe.ScaffoldCS.csproj" />
</Folder>
<Folder Name="/tests/">
<Project Path="tests/CodeMe.ScaffoldCS.UnitTests/CodeMe.ScaffoldCS.UnitTests.csproj" />
</Folder>
</Solution>
70 changes: 70 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<Project>

<PropertyGroup>
<UseArtifactsOutput>true</UseArtifactsOutput>
<ArtifactsPath>$(MSBuildThisFileDirectory).artifacts/</ArtifactsPath>
</PropertyGroup>

<PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>

<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<RestoreLockedMode>true</RestoreLockedMode>
</PropertyGroup>

<PropertyGroup>
<IsSrcProject>false</IsSrcProject>
<IsSrcProject Condition="$([System.String]::new('$(MSBuildProjectDirectory)').ToLower().Contains('\src\'))">true</IsSrcProject>
<IsSrcProject Condition="$([System.String]::new('$(MSBuildProjectDirectory)').ToLower().Contains('/src/'))">true</IsSrcProject>
</PropertyGroup>

<PropertyGroup>
<IsTestProject>false</IsTestProject>
<IsTestProject Condition="$([System.String]::new('$(MSBuildProjectDirectory)').ToLower().Contains('\tests\'))">true</IsTestProject>
<IsTestProject Condition="$([System.String]::new('$(MSBuildProjectDirectory)').ToLower().Contains('/tests/'))">true</IsTestProject>
<TestProjectBaseName Condition="'$(IsTestProject)' == 'true'">$([System.String]::Copy('$(MSBuildProjectName)').Replace('.UnitTests','').Replace('.IntegrationTests','').Replace('.Tests',''))</TestProjectBaseName>
</PropertyGroup>

<PropertyGroup Condition="'$(IsSrcProject)' == 'true'">
<IsPackable>true</IsPackable>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<Authors>Igor Sinicyn</Authors>
<Company>CodeMe</Company>
<Product>CodeMe.ScaffoldCS</Product>
<PackageProjectUrl>https://github.com/ig-sinicyn/CodeMe.ScaffoldCS</PackageProjectUrl>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup Condition="'$(IsSrcProject)' == 'true'">
<InternalsVisibleTo Include="$(MSBuildProjectName).Tests" />
<InternalsVisibleTo Include="$(MSBuildProjectName).UnitTests" />
<InternalsVisibleTo Include="$(MSBuildProjectName).IntegrationTests" />
<None Include="README.md" Pack="true" PackagePath="/" />
</ItemGroup>

<PropertyGroup Condition="'$(IsTestProject)' == 'true'">
<OutputType>Exe</OutputType>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<UseMicrosoftTestingPlatformRunner>true</UseMicrosoftTestingPlatformRunner>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>

<ItemGroup Condition="'$(IsTestProject)' == 'true'">
<PackageReference Include="AwesomeAssertions" />
<PackageReference Include="Microsoft.Testing.Extensions.TrxReport" />
<PackageReference Include="xunit.v3.mtp-v2" />
<ProjectReference Include="../../src/$(TestProjectBaseName)/$(TestProjectBaseName).csproj" />
<Using Include="AwesomeAssertions" />
<Using Include="Xunit" />
</ItemGroup>

</Project>
10 changes: 10 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AwesomeAssertions" Version="9.5.0" />
<PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="2.3.3" />
<PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# CodeMe.ScaffoldCS
Scaffolding platform inspired by CodegenCS
Scaffolding framework inspired by CodegenCS
13 changes: 13 additions & 0 deletions cicd/cicd.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.Build.NoTargets/3.7.0">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<None Include="../.github/**/*.*">
<Link>.github/%(RecursiveDir)%(Filename)%(Extension)</Link>
</None>
</ItemGroup>

</Project>
4 changes: 4 additions & 0 deletions cicd/debug.build.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
$ErrorActionPreference = 'Stop'
$PSNativeCommandUseErrorActionPreference = $true

dotnet build --tl:off
6 changes: 6 additions & 0 deletions cicd/local.publish.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
$ErrorActionPreference = 'Stop'
$PSNativeCommandUseErrorActionPreference = $true

dotnet restore
dotnet build -c Release --no-restore
dotnet pack -c Release -o .artifacts\packages --no-restore --no-build /p:Version="0.0.1-local"
11 changes: 11 additions & 0 deletions docs/docs.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.Build.NoTargets/3.7.0">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<None Include="..\README.md" Link="README.md" />
</ItemGroup>

</Project>
14 changes: 14 additions & 0 deletions env/env.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<Project Sdk="Microsoft.Build.NoTargets/3.7.0">

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<None Include="../*.*">
<Link>%(Filename)%(Extension)</Link>
</None>
<None Remove="../*.slnx"/>
</ItemGroup>

</Project>
5 changes: 5 additions & 0 deletions global.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
9 changes: 9 additions & 0 deletions src/CodeMe.ScaffoldCS/CodeMe.ScaffoldCS.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Description>Scaffolding framework inspired by CodegenCS</Description>
<PackageTags>Scaffolld;Template;Codegen;Code Generation</PackageTags>
</PropertyGroup>

</Project>
2 changes: 2 additions & 0 deletions src/CodeMe.ScaffoldCS/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# CodeMe.ScaffoldCS
Scaffolding framework inspired by CodegenCS
6 changes: 6 additions & 0 deletions src/CodeMe.ScaffoldCS/packages.lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"version": 2,
"dependencies": {
"net10.0": {}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>

</Project>
Loading