Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dotnet repo - coverage support #28

Merged
merged 10 commits into from
Aug 4, 2024
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
112 changes: 52 additions & 60 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,80 +3,80 @@ name: .NET
on:
push:
branches: [ master ]
paths:
paths:
- .github/workflows/*
- src/**/*
- tests/**/*

pull_request:
branches: [ master ]
types:
types:
- opened
- reopened
- synchronize
- synchronize
- closed

workflow_dispatch:

inputs:
workflow_dispatch:

inputs:

versionSuffix:
required: false
description: "Version suffix for nupkg"

publishRelease:
required: true
type: boolean
description: "Nuget release?"
default: false
default: false

configuration:
required: false
default: Release
type: choice
options:
- Debug
- Release
- Debug
- Release

verbosity:
required: false
default: minimal
type: choice
options:
- quiet
- minimal
- normal
- detailed
- diagnostic
- quiet
- minimal
- normal
- detailed
- diagnostic

jobs:
environment :
environment:
runs-on: ubuntu-latest

concurrency:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

outputs:
versionSuffix : ${{ steps.defaults.outputs.versionSuffix }}
verbosity : ${{ steps.defaults.outputs.verbosity }}
configuration : ${{ steps.defaults.outputs.configuration }}
publishRelease : ${{ steps.defaults.outputs.publishRelease }}
outputs:
versionSuffix: ${{ steps.defaults.outputs.versionSuffix }}
verbosity: ${{ steps.defaults.outputs.verbosity }}
configuration: ${{ steps.defaults.outputs.configuration }}
publishRelease: ${{ steps.defaults.outputs.publishRelease }}

steps:

- name: Git Information
shell: bash
run: |
echo "head: $GITHUB_HEAD_REF"
echo "base: $GITHUB_BASE_REF"
echo "base: $GITHUB_REF"
- name: declare default values

- name: declare default values
id: defaults
shell: pwsh
run: |

run: |
$suffixMap = @{
"push"="alpha.${{github.run_number}}";
"pull_request"="beta.${{github.run_number}}";
Expand Down Expand Up @@ -106,38 +106,30 @@ jobs:
Write-Host "Setting parameter $($pair[0]) => $value"
echo "$($pair[0])=$value" >> $env:GITHUB_OUTPUT
}

build:
if: true
runs-on: ubuntu-latest
runs-on: windows-latest
needs: environment
env:
verbosity: ${{ needs.environment.outputs.verbosity }}
configuration: ${{ needs.environment.outputs.configuration }}
publishRelease: ${{ needs.environment.outputs.publishRelease == 'true' }}
versionSuffix: ${{ needs.environment.outputs.versionSuffix }}

steps:
- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.x

- name: Restore dependencies
run: dotnet restore src/All.sln
- name: Build
run: dotnet build src/All.sln --no-restore --verbosity $verbosity -c $configuration
- name: Test
run: dotnet test src/All.sln --no-build --verbosity $verbosity -c $configuration
- name: Pack
run: dotnet pack src/Amusoft.Templates/Amusoft.Templates.csproj -o artifacts/nupkg --no-build --verbosity $verbosity -c $configuration /p:VersionSuffix=${{ needs.environment.outputs.versionSuffix}}

- name: Release
run: dotnet nuget push "artifacts/nupkg/*.nupkg" -k $NUGETKEY -s https://api.nuget.org/v3/index.json
if: ${{ needs.environment.outputs.publishRelease == 'true' }}
env:
NUGETKEY: ${{ secrets.NUGET }}



- uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v4.0.1
with:
dotnet-version: 6.0.x

- name: Restore dependencies
run: dotnet restore src/All.sln
- name: Build
run: dotnet build src/All.sln --no-restore --verbosity ${{ needs.environment.outputs.verbosity }} -c ${{ needs.environment.outputs.configuration }}
- name: Test
run: dotnet test src/All.sln --no-build --verbosity ${{ needs.environment.outputs.verbosity }} -c ${{ needs.environment.outputs.configuration }}
- name: Pack
run: dotnet pack src/Amusoft.Templates/Amusoft.Templates.csproj -o artifacts/nupkg --no-build --verbosity ${{ needs.environment.outputs.verbosity }} -c ${{ needs.environment.outputs.configuration }} /p:VersionSuffix=${{ needs.environment.outputs.versionSuffix}}

- name: Release
run: dotnet nuget push "artifacts/nupkg/*.nupkg" -k $env:NUGETKEY -s https://api.nuget.org/v3/index.json
if: ${{ needs.environment.outputs.publishRelease == 'true' && github.event.pull_request.merged }}
env:
NUGETKEY: ${{ secrets.NUGET }}
15 changes: 9 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
# Amusoft.Templates

## Project state

[![.GitHub](https://github.com/taori/Amusoft.Templates/actions/workflows/dotnet.yml/badge.svg)](https://github.com/taori/Amusoft.Templates/actions/workflows/dotnet.yml)
[![GitHub issues](https://img.shields.io/github/issues/taori/Amusoft.Templates)](https://github.com/taori/Amusoft.Templates/issues)
[![NuGet version (Amusoft.Templates)](https://img.shields.io/nuget/v/Amusoft.Templates.svg)](https://www.nuget.org/packages/Amusoft.Templates/)
[![NuGet version (Amusoft.Templates)](https://img.shields.io/nuget/vpre/Amusoft.Templates.svg)](https://www.nuget.org/packages/Amusoft.Templates/latest/prerelease)

## Description

If you enjoy the DRY principle and write .net libraries, this template collection may be for you. I made this template collection for this very purpose - To create reusable libraries faster in the future and not even have to think about the effort that goes into setting up CI, tests and all the same things every time.
If you enjoy the DRY principle and write .net libraries, this template collection may be for you. I made this template
collection for this very purpose - To create reusable libraries faster in the future and not even have to think about
the effort that goes into setting up CI, tests and all the same things every time.

## Templates

| kind | command | function |
|------|:--------|:---------|
| item | template-cheatsheet | Creates a cheatsheet.txt to get sample calls for templates |
| item | dotnet-template | Creates a .template.config to begin a new template at the current directory |
| project | dotnet-library-repo | Creates a quickstart repo to build nuget packages for dotnet |
| kind | command | function |
|---------|:--------------------|:----------------------------------------------------------------------------|
| item | template-cheatsheet | Creates a cheatsheet.txt to get sample calls for templates |
| item | dotnet-template | Creates a .template.config to begin a new template at the current directory |
| project | dotnet-library-repo | Creates a quickstart repo to build nuget packages for dotnet |
18 changes: 9 additions & 9 deletions src/Amusoft.Templates/Amusoft.Templates.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>1.0.0</FileVersion>
<VersionPrefix>1.2.1</VersionPrefix>
<VersionPrefix>1.3.0</VersionPrefix>
<VersionSuffix>beta</VersionSuffix>
<IsPackable>true</IsPackable>
<PackageIcon>packageIcon.png</PackageIcon>
Expand All @@ -23,29 +23,29 @@
<RepositoryType>git</RepositoryType>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<Copyright>Copyright © Andreas Müller 2022</Copyright>
<Copyright>Copyright © Andreas Müller 2024</Copyright>
<PackageReleaseNotes>
updates dotnet-library-repo
updates dotnet-library-repo
</PackageReleaseNotes>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;NU5128</NoWarn>
</PropertyGroup>

<ItemGroup>
<None Include="packageIcon.png" Pack="true" PackagePath="\" />
<None Include="..\..\README.md" Pack="True" PackagePath="\" />
<None Include="packageIcon.png" Pack="true" PackagePath="\"/>
<None Include="..\..\README.md" Pack="True" PackagePath="\"/>
</ItemGroup>

<ItemGroup>
<Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**;templates\**\.vs\**" />
<Compile Remove="**\*" />
<Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**;templates\**\.vs\**"/>
<Compile Remove="**\*"/>
</ItemGroup>

<ItemGroup>
<None Remove="templates\dotnet-library-repo\build\Project.Common.props" />
<None Remove="templates\dotnet-library-repo\build\Project.Common.props"/>
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
{
"$schema": "http://json.schemastore.org/template",
"author": "Andreas Müller",
"classifications": [ "Templating" ],
"identity": "Amusoft.Templates.Cheatsheet",
"name": "A cheatshee for Amusoft.Templates to copypaste commands",
"shortName": "amusoft-cheatsheet",
"tags": {
"type": "item"
},
"symbols": {

"Author": {
"type": "parameter",
"description": "author name",
"replaces": "AUTHOR",
"isRequired": true
},

"ProjectId": {
"type": "parameter",
"description": "author name",
"replaces": "PROJECTID",
"isRequired": true
}
}
"$schema": "http://json.schemastore.org/template",
"author": "Andreas Müller",
"classifications": [
"Templating"
],
"identity": "Amusoft.Templates.Cheatsheet",
"name": "A cheatshee for Amusoft.Templates to copypaste commands",
"shortName": "amusoft-cheatsheet",
"tags": {
"type": "item"
},
"symbols": {
"Author": {
"type": "parameter",
"description": "author name",
"replaces": "AUTHOR",
"isRequired": true
},
"ProjectId": {
"type": "parameter",
"description": "author name",
"replaces": "PROJECTID",
"isRequired": true
}
}
}
Loading
Loading