From 1fba17196b147de94778446dd3739a4c23e6e850 Mon Sep 17 00:00:00 2001 From: Ninja Date: Thu, 18 May 2023 13:54:50 +0100 Subject: [PATCH 1/2] - upgrade to .net standard 2.1 --- .github/workflows/CI-Build.yml | 162 ++++++++++++++++++ .github/workflows/codeql.yml | 75 ++++++++ GitVersion.yml | 15 ++ License.md | 2 +- Ninja.FileUtil.Core.sln | 31 +++- README.md | 7 +- ninja-icon-16.png | Bin 0 -> 15630 bytes src/Ninja.FileUtil/Ninja.FileUtil.csproj | 32 +++- .../Ninja.FileUtil.Tests.csproj | 4 +- 9 files changed, 309 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/CI-Build.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 GitVersion.yml create mode 100644 ninja-icon-16.png diff --git a/.github/workflows/CI-Build.yml b/.github/workflows/CI-Build.yml new file mode 100644 index 0000000..0b4f431 --- /dev/null +++ b/.github/workflows/CI-Build.yml @@ -0,0 +1,162 @@ +name: CI +'on': + pull_request: + types: [opened, reopened, edited, synchronize] + paths-ignore: + - "**/*.md" + - "**/*.gitignore" + - "**/*.gitattributes" +jobs: + Run-Lint: + runs-on: ubuntu-latest + env: + github-token: '${{ secrets.GITHUB_TOKEN }}' + steps: + - name: Step-01 Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Step-02 Lint Code Base + uses: github/super-linter@v4 + env: + VALIDATE_ALL_CODEBASE: false + FILTER_REGEX_INCLUDE: .*src/.* + DEFAULT_BRANCH: master + GITHUB_TOKEN: '${{ env.github-token }}' + Build-Beta: + if: ${{ !startsWith(github.head_ref, 'release/')}} + runs-on: ubuntu-latest + outputs: + semVersion: ${{ steps.gitversion.outputs.MajorMinorPatch }} + branchName: ${{ steps.gitversion.outputs.branchName }} + env: + working-directory: /home/runner/work/FileUtil.Core/FileUtil.Core + + steps: + - name: Step-01 Install GitVersion + uses: gittools/actions/gitversion/setup@v0.9.7 + with: + versionSpec: 5.x + + - name: Step-02 Check out Code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Step-03 Calculate Version + id: gitversion + uses: gittools/actions/gitversion/execute@v0.9.7 + with: + useConfigFile: true + + - name: Step-04 Install .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: 6.0.x + + - name: Step-05 Restore dependencies + run: dotnet restore + working-directory: '${{ env.working-directory }}' + + - name: Step-06 Build Beta Version + run: dotnet build --configuration Release --no-restore -p:PackageVersion=${{ steps.gitversion.outputs.nuGetVersion }} + working-directory: '${{ env.working-directory }}' + + - name: Step-07 Test Solution + run: dotnet test --configuration Release --no-build --no-restore --verbosity normal + working-directory: '${{ env.working-directory }}' + + - name: Step-08 Upload Build Artifacts + uses: actions/upload-artifact@v3 + with: + name: build-artifact + path: ${{env.working-directory}} + retention-days: 1 + Build-Release: + if: ${{ startsWith(github.head_ref, 'release/') }} + runs-on: ubuntu-latest + outputs: + semVersion: ${{ steps.gitversion.outputs.MajorMinorPatch }} + branchName: ${{ steps.gitversion.outputs.branchName }} + env: + working-directory: /home/runner/work/FileUtil.Core/FileUtil.Core + + steps: + - name: Step-01 Install GitVersion + uses: gittools/actions/gitversion/setup@v0.9.7 + with: + versionSpec: 5.x + + - name: Step-02 Check out Code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Step-03 Calculate Version + id: gitversion + uses: gittools/actions/gitversion/execute@v0.9.7 + with: + useConfigFile: true + + - name: Step-04 Install .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: 6.0.x + + - name: Step-05 Restore dependencies + run: dotnet restore + working-directory: '${{ env.working-directory }}' + + - name: Step-06 Build Release Version + if: ('startsWith(github.ref, ''refs/heads/release'')') + run: dotnet build --configuration Release --no-restore -p:PackageVersion=${{ steps.gitversion.outputs.MajorMinorPatch }} + working-directory: '${{ env.working-directory }}' + + - name: Step-07 Test Solution + run: dotnet test --configuration Release --no-build --no-restore --verbosity normal + working-directory: '${{ env.working-directory }}' + + - name: Step-08 Upload Build Artifacts + uses: actions/upload-artifact@v3 + with: + name: build-artifact + path: ${{env.working-directory}} + retention-days: 1 + Package-Release: + needs: [Build-Beta, Build-Release] + if: | + always() && + (needs.Build-Beta.result == 'success' || needs.Build-Release.result == 'success') + runs-on: ubuntu-latest + outputs: + semVersion: ${{ needs.Build-Release.outputs.semVersion }} + env: + github-token: '${{ secrets.GITHUB_TOKEN }}' + nuget-token: '${{ secrets.NUGET_API_KEY }}' + working-directory: /home/runner/work/FileUtil.Core/FileUtil.Core + steps: + - name: Step-01 Retrieve Build Artifacts + uses: actions/download-artifact@v3 + with: + name: build-artifact + path: ${{env.working-directory}} + + - name: Step-02 Install Github Packages + run: dotnet tool install gpr --global + + - name: Step-03 Publish to Github Packages + run: find -name "*.nupkg" -print -exec gpr push -k ${{env.github-token}} {} \; + + - name: Step-02 Create Github Release + if: ${{ startsWith(github.head_ref, 'release/')}} + run: | + curl \ + -X POST \ + -H "Accept:application/vnd.github+json" \ + -H "Authorization:token ${{ env.github-token }}" \ + https://api.github.com/ninjarocks/FileUtil.Core/releases \ + -d '{"tag_name":v1.0.0,"target_commitish":"master","name":"FileUtil.Core","body":"","draft":false,"prerelease":false,"generate_release_notes":false}' + + - name: Step-03 Release to Nuget Org + if: ${{ startsWith(github.head_ref, 'release/')}} + run: dotnet nuget push ${{env.working-directory}}/src/FileUtil.Core/bin/Release/*.nupkg --skip-duplicate --api-key ${{ env.nuget-token }} --source https://api.nuget.org/v3/index.json diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..078a395 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,75 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + pull_request: + types: [opened, reopened, edited, synchronize] + paths-ignore: + - "**/*.md" + - "**/*.gitignore" + - "**/*.gitattributes" + schedule: + - cron: '35 15 * * 2' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'csharp' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" diff --git a/GitVersion.yml b/GitVersion.yml new file mode 100644 index 0000000..74170bf --- /dev/null +++ b/GitVersion.yml @@ -0,0 +1,15 @@ +next-version: 1.0.5 +tag-prefix: '[vV]' +mode: ContinuousDeployment +branches: + master: + regex: ^master$ + release: + regex: ^release$ + develop: + regex: ^develop$|^dev$ + tag: beta + pull-request: + tag: beta +ignore: + sha: [] \ No newline at end of file diff --git a/License.md b/License.md index a72acc3..9c4a095 100644 --- a/License.md +++ b/License.md @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2016 Ninja +Copyright (c) 2016 Ninja Sha!4H Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Ninja.FileUtil.Core.sln b/Ninja.FileUtil.Core.sln index cb27d77..fd34bbb 100644 --- a/Ninja.FileUtil.Core.sln +++ b/Ninja.FileUtil.Core.sln @@ -1,23 +1,36 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28010.2050 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33712.159 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution", "Solution", "{4181FF50-7335-4293-8EE4-66E0C47C736E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ninja.FileUtil", "src\Ninja.FileUtil\Ninja.FileUtil.csproj", "{FD920B11-BA4F-4781-BD56-56CF362982CF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ninja.FileUtil.Tests", "test\Ninja.FileUtil.Tests\Ninja.FileUtil.Tests.csproj", "{95A1410C-6FB4-446D-A692-9BC018882298}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{D549CC35-5318-45B0-ACCD-F28C543E482C}" + ProjectSection(SolutionItems) = preProject + .github\workflows\CI-Build.yml = .github\workflows\CI-Build.yml + .github\workflows\codeql.yml = .github\workflows\codeql.yml + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8A1A1535-2928-4313-9AFC-9CA1892426E3}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F7C842B8-9D5C-4AF6-9F8B-779E1DEEEDC2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".misc", ".misc", "{8EDBC8F3-0169-4422-B44F-92AD9B9C8D5B}" ProjectSection(SolutionItems) = preProject .gitattributes = .gitattributes .gitignore = .gitignore .travis.yml = .travis.yml + GitVersion.yml = GitVersion.yml License.md = License.md ms-icon-310x310.png = ms-icon-310x310.png nuget.config = nuget.config README.md = README.md EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ninja.FileUtil", "src\Ninja.FileUtil\Ninja.FileUtil.csproj", "{FD920B11-BA4F-4781-BD56-56CF362982CF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ninja.FileUtil.Tests", "test\Ninja.FileUtil.Tests\Ninja.FileUtil.Tests.csproj", "{95A1410C-6FB4-446D-A692-9BC018882298}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -36,6 +49,12 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {FD920B11-BA4F-4781-BD56-56CF362982CF} = {8A1A1535-2928-4313-9AFC-9CA1892426E3} + {95A1410C-6FB4-446D-A692-9BC018882298} = {F7C842B8-9D5C-4AF6-9F8B-779E1DEEEDC2} + {D549CC35-5318-45B0-ACCD-F28C543E482C} = {4181FF50-7335-4293-8EE4-66E0C47C736E} + {8EDBC8F3-0169-4422-B44F-92AD9B9C8D5B} = {4181FF50-7335-4293-8EE4-66E0C47C736E} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {96B5A6F7-D0A4-4A34-890A-59E971AC4E94} EndGlobalSection diff --git a/README.md b/README.md index c366789..6ef5d7a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ -# FileUtil [![Build Status](https://travis-ci.org/NinjaRocks/FileUtil.Core.svg?branch=master)](https://travis-ci.org/NinjaRocks/FileUtil.Core) [![NuGet version](https://badge.fury.io/nu/FixedWidth.FileParser.svg)](https://badge.fury.io/nu/FixedWidth.FileParser) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/NinjaRocks/FileUtil.Core/blob/master/LICENSE) -.Net Library to read from fixed width or delimiter separated file using strongly typed objects. - +# FileUtil +[![NuGet version](https://badge.fury.io/nu/FileUtil.Core.svg)](https://badge.fury.io/nu/FileUtil.Core) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/NinjaRocks/FileUtil.Core/blob/master/License.md) [![CI](https://github.com/NinjaRocks/FileUtil.Core/actions/workflows/CI-Build.yml/badge.svg)](https://github.com/NinjaRocks/FileUtil.Core/actions/workflows/CI-Build.yml) [![GitHub Release](https://img.shields.io/github/v/release/ninjarocks/FileUtil.Core?logo=github&sort=semver)](https://github.com/ninjarocks/FileUtil.Core/releases/latest) +[![CodeQL](https://github.com/NinjaRocks/FileUtil.Core/actions/workflows/codeql.yml/badge.svg)](https://github.com/NinjaRocks/FileUtil.Core/actions/workflows/codeql.yml) [![.Net Stardard](https://img.shields.io/badge/.Net%20Standard-2.1-blue)](https://dotnet.microsoft.com/en-us/download/dotnet/2.1) +.Net Library to read from fixed width or delimiter separated file using strongly typed objects. ------------- diff --git a/ninja-icon-16.png b/ninja-icon-16.png new file mode 100644 index 0000000000000000000000000000000000000000..f8903fb2460f7952c8cd8cfa7a4d8083ccff7da3 GIT binary patch literal 15630 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 literal 0 HcmV?d00001 diff --git a/src/Ninja.FileUtil/Ninja.FileUtil.csproj b/src/Ninja.FileUtil/Ninja.FileUtil.csproj index 4932366..f9442e1 100644 --- a/src/Ninja.FileUtil/Ninja.FileUtil.csproj +++ b/src/Ninja.FileUtil/Ninja.FileUtil.csproj @@ -1,21 +1,39 @@ - + - netstandard2.0 + netstandard2.1 Public https://github.com/NinjaRocks/FileUtil.Core - csv fixed width file delimiter parser + csv fixed-width delimiter-file delimiter file-parser file parser true true .Net Library to read from fixed width or delimiter separated file using strongly typed objects. Example: pipe delimited, csv, etc. - https://github.com/NinjaRocks/FileUtil.Core/blob/master/License.md - en-GB + en-GB Ninja Corp - Najaf Shayk + Ninja Shayk FixedWidth.FileParser Fixed Width File Parser https://github.com/NinjaRocks/FileUtil.Core https://1drv.ms/u/s!Aq_ncig7TU4551b5fzxOad-pDMfL - 1.1.0 + 1.1.1 + FixedWidth.FileParser + © Copyright 2016 Ninja Sha!4h. + ninja-icon-16.png + README.md + License.md + + + True + \ + + + True + \ + + + True + \ + + \ No newline at end of file diff --git a/test/Ninja.FileUtil.Tests/Ninja.FileUtil.Tests.csproj b/test/Ninja.FileUtil.Tests/Ninja.FileUtil.Tests.csproj index 3d209e0..80c200b 100644 --- a/test/Ninja.FileUtil.Tests/Ninja.FileUtil.Tests.csproj +++ b/test/Ninja.FileUtil.Tests/Ninja.FileUtil.Tests.csproj @@ -1,7 +1,7 @@ - + - netcoreapp2.0 + netcoreapp3.1 false From fdeedfa8045656500cff42303ea32b9ac4782fb4 Mon Sep 17 00:00:00 2001 From: Ninja Date: Thu, 18 May 2023 14:02:15 +0100 Subject: [PATCH 2/2] - Fix tests project --- README.md | 3 +-- .../Ninja.FileUtil.Tests.csproj | 15 ++++++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6ef5d7a..e7caf19 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ # FileUtil [![NuGet version](https://badge.fury.io/nu/FileUtil.Core.svg)](https://badge.fury.io/nu/FileUtil.Core) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/NinjaRocks/FileUtil.Core/blob/master/License.md) [![CI](https://github.com/NinjaRocks/FileUtil.Core/actions/workflows/CI-Build.yml/badge.svg)](https://github.com/NinjaRocks/FileUtil.Core/actions/workflows/CI-Build.yml) [![GitHub Release](https://img.shields.io/github/v/release/ninjarocks/FileUtil.Core?logo=github&sort=semver)](https://github.com/ninjarocks/FileUtil.Core/releases/latest) [![CodeQL](https://github.com/NinjaRocks/FileUtil.Core/actions/workflows/codeql.yml/badge.svg)](https://github.com/NinjaRocks/FileUtil.Core/actions/workflows/codeql.yml) [![.Net Stardard](https://img.shields.io/badge/.Net%20Standard-2.1-blue)](https://dotnet.microsoft.com/en-us/download/dotnet/2.1) - -.Net Library to read from fixed width or delimiter separated file using strongly typed objects. ------------- +.Net Library to read from fixed width or delimiter separated file using strongly typed objects. **Fixed Width or Delimiter Separated File** diff --git a/test/Ninja.FileUtil.Tests/Ninja.FileUtil.Tests.csproj b/test/Ninja.FileUtil.Tests/Ninja.FileUtil.Tests.csproj index 80c200b..524e929 100644 --- a/test/Ninja.FileUtil.Tests/Ninja.FileUtil.Tests.csproj +++ b/test/Ninja.FileUtil.Tests/Ninja.FileUtil.Tests.csproj @@ -1,15 +1,20 @@ - netcoreapp3.1 + net6.0 + enable + enable + false - - - - + + + + + +