From 06f585892e8b4f1185d50fd3fe350376d998ce93 Mon Sep 17 00:00:00 2001 From: Patrick Kurmann Date: Mon, 8 Apr 2024 17:26:45 +0200 Subject: [PATCH 1/5] 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/5] 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/5] 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/5] 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/5] 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