From 06f585892e8b4f1185d50fd3fe350376d998ce93 Mon Sep 17 00:00:00 2001 From: Patrick Kurmann Date: Mon, 8 Apr 2024 17:26:45 +0200 Subject: [PATCH 1/7] worklfow has now automated preview versioning on branches besides main --- .github/workflows/dotnet.yml | 50 +++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index e0b15e9..87c2cd9 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -1,27 +1,53 @@ name: Pack .NET Template +# Versionierungsstrategie: +# Für den main-Branch werden Releases mit der in der .csproj-Datei festgelegten Version erstellt, +# die manuell vor dem Merge angepasst werden sollte. Dies ermöglicht eine präzise Kontrolle über Major und Minor Releases. +# Für alle anderen Branches werden automatische Zwischenreleases mit einem Datumssuffix generiert, um kontinuierliches Testing und Feedback +# für Entwicklungsstände zu ermöglichen. Das Datumssuffix wird basierend auf dem aktuellen Datum und der Uhrzeit zum Zeitpunkt des Builds hinzugefügt, +# was jede Version einzigartig macht. + on: push: branches: - - main + - '**' jobs: pack: runs-on: ubuntu-latest + env: + PROJECT_FILE: Templates/Templates.csproj + BASE_VERSION: '1.0.0' # Wird dynamisch überschrieben + steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - name: Setup .NET Core - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '8.0.x' + - name: Setup .NET Core + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.0.x' - - name: Restore NuGet packages - run: dotnet restore + - name: Restore NuGet packages + run: dotnet restore ${{ env.PROJECT_FILE }} - - name: Pack .NET Template Project - run: dotnet pack --configuration Release --no-build --output nupkg + # Schritt: Lese die PackageVersion aus der .csproj Datei und setze sie als Umgebungsvariable + - name: Read Package Version from .csproj and Set as Env Var + run: | + version=$(grep '' ${{ env.PROJECT_FILE }} | sed -n -e 's/.*\(.*\)<\/PackageVersion>.*/\1/p') + echo "Base version is $version" + echo "BASE_VERSION=$version" >> $GITHUB_ENV - - name: Publish to NuGet.org - run: dotnet nuget push "nupkg/*.nupkg" --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json \ No newline at end of file + # Schritt: Pack .NET Template Project mit dynamischer Versionierung für Zwischenreleases + - name: Pack .NET Template Project + run: | + if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then + dotnet pack ${{ env.PROJECT_FILE }} --configuration Release --output nupkg + else + datetimeSuffix=$(date +"%Y%m%d%H%M") + version="${{ env.BASE_VERSION }}-preview.$datetimeSuffix" + dotnet pack ${{ env.PROJECT_FILE }} /p:PackageVersion=$version --configuration Release --output nupkg + echo "Zwischenversion ist $version" + + - name: Publish to NuGet.org + run: dotnet nuget push "nupkg/*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate From 196d92a0db257693a7f6451b909135776c88e7f0 Mon Sep 17 00:00:00 2001 From: Patrick Kurmann Date: Mon, 8 Apr 2024 17:29:02 +0200 Subject: [PATCH 2/7] version increase --- Templates.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Templates.csproj b/Templates.csproj index 0234ebd..8278a8b 100644 --- a/Templates.csproj +++ b/Templates.csproj @@ -12,7 +12,7 @@ - 0.3.0-beta.1 + 0.4.0 Korrektur: Workflow-Vorlage übernimmt korrekt den Bibliotheks-Namen in den Kurmann-Namespace. From 2dde5ac4598b98df48b09cb22b6d4199de52dbb5 Mon Sep 17 00:00:00 2001 From: Patrick Kurmann Date: Mon, 8 Apr 2024 17:32:46 +0200 Subject: [PATCH 3/7] applied new version strategy to csproj --- Templates.csproj | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/Templates.csproj b/Templates.csproj index 8278a8b..bf35093 100644 --- a/Templates.csproj +++ b/Templates.csproj @@ -1,20 +1,37 @@ Template + netstandard2.0 Kurmann.Templates Templates Patrick Kurmann - Vorlagen für .NET-Entwicklung im Kurmann-Namespace. - git - https://github.com/kurmann/Templates + + dotnet-new;templates; - netstandard2.0 - - 0.4.0 - Korrektur: Workflow-Vorlage übernimmt korrekt den Bibliotheks-Namen in den Kurmann-Namespace. - + + https://github.com/kurmann/Templates + git + + + Vorlagen für .NET-Entwicklung im Kurmann-Namespace. + + + 0.3.1 + + + Siehe README.md für Details. README.md LICENSE From 724ea48ec888804d30b813b4015c8a4502028457 Mon Sep 17 00:00:00 2001 From: Patrick Kurmann Date: Mon, 8 Apr 2024 17:33:06 +0200 Subject: [PATCH 4/7] fixed csproj path --- .github/workflows/dotnet.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 87c2cd9..47642df 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest env: - PROJECT_FILE: Templates/Templates.csproj + PROJECT_FILE: Templates.csproj BASE_VERSION: '1.0.0' # Wird dynamisch überschrieben steps: From e3e57fef32f5d7647d0cb9a34f2c8049aba76228 Mon Sep 17 00:00:00 2001 From: Patrick Kurmann Date: Mon, 8 Apr 2024 17:36:49 +0200 Subject: [PATCH 5/7] fixed missing fi --- .github/workflows/dotnet.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 47642df..802c5ae 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -48,6 +48,7 @@ jobs: version="${{ env.BASE_VERSION }}-preview.$datetimeSuffix" dotnet pack ${{ env.PROJECT_FILE }} /p:PackageVersion=$version --configuration Release --output nupkg echo "Zwischenversion ist $version" + fi - name: Publish to NuGet.org run: dotnet nuget push "nupkg/*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate From 20fcd9dc4ca647b834bc9fd4d92d068e4b033876 Mon Sep 17 00:00:00 2001 From: Patrick Kurmann Date: Mon, 8 Apr 2024 17:46:22 +0200 Subject: [PATCH 6/7] integrated version history from nuget release notes --- README.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/README.md b/README.md index a6cc05d..2d25f8a 100644 --- a/README.md +++ b/README.md @@ -58,3 +58,34 @@ Dieser Befehl fügt ein vorkonfiguriertes `.gitignore` zu Ihrem Projekt hinzu, d ## Lizenz Das Projekt steht unter der [Apache 2.0 Lizenz](LICENSE). + +## Änderungsverlauf + +### Unveröffentlicht + +- Neues Template um ein ganzes GitHub-Repository zu erstellen mit .NET-Projekten, Gitignore, Nuget-Packaging-Workflows + +### Version 0.3.1 - 2024-04-08 + +#### Geändert + +- Vereinfachter Workflow für Zwischenreleases mit automatischer Datumsvergabe bei Vorschauversionen nach dem Vorbild aus "Kurmann.Messaging" + +### Version 0.3.0 - 2024-04-06 + +#### Hinzugefügt + +- Template erstellt zur Erstellung einer GitHub-Action für die automatische Veröffentlichung von NuGet-Paketen. + +### Version 0.2.0 - 2024-04-06 + +#### Hinzugefügt + +- Template erstellt zur Erstellung einer Klassenbibliothek im Kurmann-Namespace. + +### Version 0.1.0 - 2024-04-06 + +#### Hinzugefügt + +- Template zur Erstellung einer Gitignore-Datei. +- Erste Veröffentlichung mit einer Vorlage für eine .NET-Klassenbibliothek mit NuGet-Unterstützung. \ No newline at end of file From 2c05003ab4686117532cde19cba8b6444366dd3c Mon Sep 17 00:00:00 2001 From: Patrick Kurmann Date: Mon, 8 Apr 2024 17:50:21 +0200 Subject: [PATCH 7/7] changelog causes version increase --- README.md | 6 ++++++ Templates.csproj | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d25f8a..66c07ed 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,12 @@ Das Projekt steht unter der [Apache 2.0 Lizenz](LICENSE). - Neues Template um ein ganzes GitHub-Repository zu erstellen mit .NET-Projekten, Gitignore, Nuget-Packaging-Workflows +### Version 0.3.2 - 2024-04-08 + +#### Hinzugefügt + +- Änderungsverlauf aus den zugehörigen veröffentlichen Nuget-Packages in dieses Readme integriert. + ### Version 0.3.1 - 2024-04-08 #### Geändert diff --git a/Templates.csproj b/Templates.csproj index bf35093..75be123 100644 --- a/Templates.csproj +++ b/Templates.csproj @@ -28,7 +28,7 @@ sollten stattdessen durch den CI/CD-Prozess gesteuert werden. Die Release Notes für jede Version sollten separat gepflegt und vor dem Merge in den 'main'-Branch aktualisiert werden. --> - 0.3.1 + 0.3.2 Siehe README.md für Details.