From b0e8a9af552ecbb41f8deb1c10990b507e2306b9 Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 18:52:29 -0500 Subject: [PATCH 01/15] Change in versioning strategy. --- .github/workflows/ManualRelease.yml | 50 +++++++++++++++++--------- src/ProcessMemory/ProcessMemory.csproj | 6 ++-- version.txt | 1 + 3 files changed, 38 insertions(+), 19 deletions(-) create mode 100644 version.txt diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 9bc4baf..e3b10a6 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -46,7 +46,6 @@ jobs: BUILD_PLATFORM: ${{matrix.BUILD_PLATFORM}} SOLUTION: ProcessMemory.sln CSPROJECT: src/ProcessMemory/ProcessMemory.csproj - VERSION: 0.1.0 steps: - name: Checkout @@ -55,20 +54,34 @@ jobs: fetch-depth: 0 ref: ${{github.ref}} - - name: Get C# project version - uses: Squirrelies/CI-CD/GetCSProjVersion@main - id: Get-CSProj-Version - with: - repository: ${{github.repository}} - ref: ${{github.ref}} - csproj-path: ${{env.CSPROJECT}} + - name: Read and process version.txt + id: Get-Version + run: | + $baseVersion = (Get-Content "version.txt" -Raw).Trim('.') + $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) + echo "VersionMajor=$baseVersion[0]" | Set-Content $env:GITHUB_OUTPUT + echo "VersionMinor=$baseVersion[1]" | Set-Content $env:GITHUB_OUTPUT + echo "VersionPatch=$baseVersion[2]" | Set-Content $env:GITHUB_OUTPUT + echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT + echo "VersionPreRelease=${{inputs.releaseTypeTag}}" | Set-Content $env:GITHUB_OUTPUT + echo "VersionCommitHash=$(("${{ github.sha }}".substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT - - name: Get UTC DateTime - uses: Squirrelies/CI-CD/GetUTCDateTime@main - id: Get-UTC-DateTime + - name: Get SemVer + uses: Squirrelies/CI-CD/GetSemVerString@main + id: Get-SemVer + with: + versionMajor: ${{steps.Get-Version.outputs.VersionMajor}} + versionMinor: ${{steps.Get-Version.outputs.VersionMinor}} + versionPatch: ${{steps.Get-Version.outputs.VersionPatch}} + preRelease: ${{steps.Get-Version.outputs.VersionPreRelease}} + versionBuild: ${{steps.Get-Version.outputs.VersionBuild}} + commitHash: ${{steps.Get-Version.outputs.VersionCommitHash}} - - name: Set VERSION environment variable - run: echo 'VERSION=${{steps.Get-CSProj-Version.outputs.Version}}${{inputs.releaseTypeTag}}.${{steps.Get-UTC-DateTime.outputs.UTC-DateTime}}' >> $env:GITHUB_ENV + - name: Set versioning environment variable + run: | + echo 'VERSION=${{steps.Get-SemVer.outputs.Version}}' >> $env:GITHUB_ENV + echo 'FILEVERSION=${{steps.Get-Version.outputs.VersionMajor}}.${{steps.Get-Version.outputs.VersionMinor}}.${{steps.Get-Version.outputs.VersionPatch}}.${{steps.Get-Version.outputs.VersionBuild}}' >> $env:GITHUB_ENV + echo 'ASSEMBLYVERSION=${{steps.Get-Version.outputs.VersionMajor}}.${{steps.Get-Version.outputs.VersionMinor}}.0.0' >> $env:GITHUB_ENV - name: Build Native Library uses: Squirrelies/CI-CD/BuildMSYS2CMakeVCPkgProject@main @@ -81,7 +94,7 @@ jobs: preset-configuration: ${{inputs.buildConfig}} preset-configuration-tidy: ${{ inputs.runLinters == true && format('{0}-Tidy', inputs.buildConfig) || ''}} run-unit-tests: ${{inputs.unitTests}} - additional-cmake-args: -DARCH=${{matrix.BUILD_PLATFORM}} + additional-cmake-args: -DARCH=${{matrix.BUILD_PLATFORM}} -DRC_VERSION_MAJOR=${{steps.Get-Version.outputs.VersionMajor}} -DRC_VERSION_MINOR=${{steps.Get-Version.outputs.VersionMinor}} -DRC_VERSION_PATCH=${{steps.Get-Version.outputs.VersionPatch}} -DRC_VERSION_BUILD=${{steps.Get-Version.outputs.VersionBuild}} -DRC_VERSION_PRERELEASE_TAG=${{steps.Get-Version.outputs.VersionPreRelease}} -DRC_VERSION_BUILD_HASH=${{steps.Get-Version.outputs.VersionCommitHash}} - name: Setup NuGet uses: NuGet/setup-nuget@v2 @@ -96,10 +109,15 @@ jobs: run: dotnet restore $env:SOLUTION --verbosity normal - name: Build .NET Project - run: dotnet build $env:SOLUTION /p:"Configuration=${{inputs.buildConfig}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION" --no-restore --verbosity normal + run: dotnet build $env:SOLUTION /p:"Configuration=${{inputs.buildConfig}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION;FILEVERSION=$env:FILEVERSION;ASSEMBLYVERSION=$env:ASSEMBLYVERSION" --no-restore --verbosity normal - name: Run .NET Project Unit Tests - run: dotnet test /p:"Configuration=${{inputs.buildConfig}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION" --no-restore --no-build --verbosity normal + run: dotnet test /p:"Configuration=${{inputs.buildConfig}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION;FILEVERSION=$env:FILEVERSION;ASSEMBLYVERSION=$env:ASSEMBLYVERSION" --no-restore --no-build --verbosity normal - name: Publish NuGet Package run: nuget push **\*.nupkg -Source "https://api.nuget.org/v3/index.json" -ApiKey "${{secrets.NUGET_API_KEY}}" -SkipDuplicate + + - name: Update build number variable + env: + GH_TOKEN: ${{ secrets.GH_VARIABLE_RW_TOKEN }} + run: gh variable set BUILD_NUMBER -b${{ steps.Get-Version.outputs.VersionBuild }} diff --git a/src/ProcessMemory/ProcessMemory.csproj b/src/ProcessMemory/ProcessMemory.csproj index 7db6cfe..64057dd 100644 --- a/src/ProcessMemory/ProcessMemory.csproj +++ b/src/ProcessMemory/ProcessMemory.csproj @@ -10,9 +10,9 @@ Process Memory Access Library ($(Platform)) A library for reading and writing process memory. - 4.0.6 - 4.0.6 - 4.0.0 + 0.1.0 + 0.1.0 + 0.1.0 ProcessMemory $(AssemblyName) diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..d356c34 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +4.0.7 \ No newline at end of file From c3ef9b77f860a89a57385f05a8c12eb61e2acc2a Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 18:59:08 -0500 Subject: [PATCH 02/15] Fix workflows in some spots. --- .github/workflows/AutomatedRelease.yml | 51 ++++++++++++++++++-------- .github/workflows/ManualRelease.yml | 7 ++++ 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/.github/workflows/AutomatedRelease.yml b/.github/workflows/AutomatedRelease.yml index 2b49e36..01691b7 100644 --- a/.github/workflows/AutomatedRelease.yml +++ b/.github/workflows/AutomatedRelease.yml @@ -23,7 +23,6 @@ jobs: BUILD_PLATFORM: ${{matrix.BUILD_PLATFORM}} SOLUTION: ProcessMemory.sln CSPROJECT: src/ProcessMemory/ProcessMemory.csproj - VERSION: 0.1.0 steps: - name: Checkout @@ -32,20 +31,34 @@ jobs: fetch-depth: 0 ref: ${{github.ref}} - - name: Get C# project version - uses: Squirrelies/CI-CD/GetCSProjVersion@main - id: Get-CSProj-Version - with: - repository: ${{github.repository}} - ref: ${{github.ref}} - csproj-path: ${{env.CSPROJECT}} + - name: Read and process version.txt + id: Get-Version + run: | + $baseVersion = (Get-Content "version.txt" -Raw).Trim('.') + $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) + echo "VersionMajor=$baseVersion[0]" | Set-Content $env:GITHUB_OUTPUT + echo "VersionMinor=$baseVersion[1]" | Set-Content $env:GITHUB_OUTPUT + echo "VersionPatch=$baseVersion[2]" | Set-Content $env:GITHUB_OUTPUT + echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT + echo "VersionPreRelease=${{env.RELEASE_TYPE_TAG}}" | Set-Content $env:GITHUB_OUTPUT + echo "VersionCommitHash=$(("${{ github.sha }}".substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT - - name: Get UTC DateTime - uses: Squirrelies/CI-CD/GetUTCDateTime@main - id: Get-UTC-DateTime + - name: Get SemVer + uses: Squirrelies/CI-CD/GetSemVerString@main + id: Get-SemVer + with: + versionMajor: ${{steps.Get-Version.outputs.VersionMajor}} + versionMinor: ${{steps.Get-Version.outputs.VersionMinor}} + versionPatch: ${{steps.Get-Version.outputs.VersionPatch}} + preRelease: ${{steps.Get-Version.outputs.VersionPreRelease}} + versionBuild: ${{steps.Get-Version.outputs.VersionBuild}} + commitHash: ${{steps.Get-Version.outputs.VersionCommitHash}} - - name: Set VERSION environment variable - run: echo 'VERSION=${{steps.Get-CSProj-Version.outputs.Version}}${{env.RELEASE_TYPE_TAG}}.${{steps.Get-UTC-DateTime.outputs.UTC-DateTime}}' >> $env:GITHUB_ENV + - name: Set versioning environment variable + run: | + echo 'VERSION=${{steps.Get-SemVer.outputs.Version}}' >> $env:GITHUB_ENV + echo 'FILEVERSION=${{steps.Get-Version.outputs.VersionMajor}}.${{steps.Get-Version.outputs.VersionMinor}}.${{steps.Get-Version.outputs.VersionPatch}}.${{steps.Get-Version.outputs.VersionBuild}}' >> $env:GITHUB_ENV + echo 'ASSEMBLYVERSION=${{steps.Get-Version.outputs.VersionMajor}}.${{steps.Get-Version.outputs.VersionMinor}}.0.0' >> $env:GITHUB_ENV - name: Build Native Library uses: Squirrelies/CI-CD/BuildMSYS2CMakeVCPkgProject@main @@ -58,7 +71,7 @@ jobs: preset-configuration: ${{env.BUILD_CONFIG}} preset-configuration-tidy: ${{ env.RUN_LINTERS == true && format('{0}-Tidy', env.BUILD_CONFIG) || ''}} run-unit-tests: ${{env.RUN_UNIT_TESTS}} - additional-cmake-args: -DARCH=${{matrix.BUILD_PLATFORM}} + additional-cmake-args: -DARCH=${{matrix.BUILD_PLATFORM}} -DRC_VERSION_MAJOR=${{steps.Get-Version.outputs.VersionMajor}} -DRC_VERSION_MINOR=${{steps.Get-Version.outputs.VersionMinor}} -DRC_VERSION_PATCH=${{steps.Get-Version.outputs.VersionPatch}} -DRC_VERSION_BUILD=${{steps.Get-Version.outputs.VersionBuild}} -DRC_VERSION_PRERELEASE_TAG=${{steps.Get-Version.outputs.VersionPreRelease}} -DRC_VERSION_BUILD_HASH=${{steps.Get-Version.outputs.VersionCommitHash}} - name: Setup NuGet uses: NuGet/setup-nuget@v2 @@ -73,10 +86,16 @@ jobs: run: dotnet restore $env:SOLUTION --verbosity normal - name: Build .NET Project - run: dotnet build $env:SOLUTION /p:"Configuration=${{env.BUILD_CONFIG}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION" --no-restore --verbosity normal + run: dotnet build $env:SOLUTION /p:"Configuration=${{env.BUILD_CONFIG}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION;FILEVERSION=$env:FILEVERSION;ASSEMBLYVERSION=$env:ASSEMBLYVERSION" --no-restore --verbosity normal - name: Run .NET Project Unit Tests - run: dotnet test /p:"Configuration=${{env.BUILD_CONFIG}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION" --no-restore --no-build --verbosity normal + if: ${{ !cancelled() && env.RUN_UNIT_TESTS == 'true' }} + run: dotnet test /p:"Configuration=${{env.BUILD_CONFIG}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION;FILEVERSION=$env:FILEVERSION;ASSEMBLYVERSION=$env:ASSEMBLYVERSION" --no-restore --no-build --verbosity normal - name: Publish NuGet Package run: nuget push **\*.nupkg -Source "https://api.nuget.org/v3/index.json" -ApiKey "${{secrets.NUGET_API_KEY}}" -SkipDuplicate + + - name: Update build number variable + env: + GH_TOKEN: ${{ secrets.GH_VARIABLE_RW_TOKEN }} + run: gh variable set BUILD_NUMBER -b${{ steps.Get-Version.outputs.VersionBuild }} diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index e3b10a6..c0e9d5a 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -31,6 +31,11 @@ on: required: false default: false type: boolean + publish: + description: "Publish to NuGet" + required: true + default: true + type: boolean jobs: Build: @@ -112,9 +117,11 @@ jobs: run: dotnet build $env:SOLUTION /p:"Configuration=${{inputs.buildConfig}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION;FILEVERSION=$env:FILEVERSION;ASSEMBLYVERSION=$env:ASSEMBLYVERSION" --no-restore --verbosity normal - name: Run .NET Project Unit Tests + if: ${{ !cancelled() && inputs.unitTests == 'true' }} run: dotnet test /p:"Configuration=${{inputs.buildConfig}};Platform=$env:BUILD_PLATFORM;VERSION=$env:VERSION;FILEVERSION=$env:FILEVERSION;ASSEMBLYVERSION=$env:ASSEMBLYVERSION" --no-restore --no-build --verbosity normal - name: Publish NuGet Package + if: ${{ !cancelled() && inputs.publish == 'true' }} run: nuget push **\*.nupkg -Source "https://api.nuget.org/v3/index.json" -ApiKey "${{secrets.NUGET_API_KEY}}" -SkipDuplicate - name: Update build number variable From 3ea4c8046f72428e42fe7e94b23332c7c97bfc21 Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:06:55 -0500 Subject: [PATCH 03/15] Fix . --- .github/workflows/AutomatedRelease.yml | 2 +- .github/workflows/ManualRelease.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/AutomatedRelease.yml b/.github/workflows/AutomatedRelease.yml index 01691b7..5143572 100644 --- a/.github/workflows/AutomatedRelease.yml +++ b/.github/workflows/AutomatedRelease.yml @@ -34,7 +34,7 @@ jobs: - name: Read and process version.txt id: Get-Version run: | - $baseVersion = (Get-Content "version.txt" -Raw).Trim('.') + $baseVersion = (Get-Content "version.txt" -Raw).Split('.') $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) echo "VersionMajor=$baseVersion[0]" | Set-Content $env:GITHUB_OUTPUT echo "VersionMinor=$baseVersion[1]" | Set-Content $env:GITHUB_OUTPUT diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index c0e9d5a..586202a 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -62,14 +62,14 @@ jobs: - name: Read and process version.txt id: Get-Version run: | - $baseVersion = (Get-Content "version.txt" -Raw).Trim('.') + $baseVersion = (Get-Content "version.txt" -Raw).Split('.') $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) echo "VersionMajor=$baseVersion[0]" | Set-Content $env:GITHUB_OUTPUT echo "VersionMinor=$baseVersion[1]" | Set-Content $env:GITHUB_OUTPUT echo "VersionPatch=$baseVersion[2]" | Set-Content $env:GITHUB_OUTPUT echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT echo "VersionPreRelease=${{inputs.releaseTypeTag}}" | Set-Content $env:GITHUB_OUTPUT - echo "VersionCommitHash=$(("${{ github.sha }}".substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT + echo "VersionCommitHash=$(("${{ github.sha }}".Substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT - name: Get SemVer uses: Squirrelies/CI-CD/GetSemVerString@main From 0faa9cf7bef6098c5728736922e3479d72466f64 Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:08:42 -0500 Subject: [PATCH 04/15] Fix baseVersion? --- .github/workflows/ManualRelease.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 586202a..5cbcba5 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -62,7 +62,7 @@ jobs: - name: Read and process version.txt id: Get-Version run: | - $baseVersion = (Get-Content "version.txt" -Raw).Split('.') + $baseVersion = $(((Get-Content "version.txt" -Raw).Split('.'))) $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) echo "VersionMajor=$baseVersion[0]" | Set-Content $env:GITHUB_OUTPUT echo "VersionMinor=$baseVersion[1]" | Set-Content $env:GITHUB_OUTPUT From 9e9233d8cfc803df598c2670adbd3d7fe5fb0346 Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:12:24 -0500 Subject: [PATCH 05/15] Fix baseVersion? --- .github/workflows/ManualRelease.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 5cbcba5..5277130 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -64,9 +64,9 @@ jobs: run: | $baseVersion = $(((Get-Content "version.txt" -Raw).Split('.'))) $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) - echo "VersionMajor=$baseVersion[0]" | Set-Content $env:GITHUB_OUTPUT - echo "VersionMinor=$baseVersion[1]" | Set-Content $env:GITHUB_OUTPUT - echo "VersionPatch=$baseVersion[2]" | Set-Content $env:GITHUB_OUTPUT + echo "VersionMajor=$($baseVersion[0])" | Set-Content $env:GITHUB_OUTPUT + echo "VersionMinor=$($baseVersion[1])" | Set-Content $env:GITHUB_OUTPUT + echo "VersionPatch=$($baseVersion[2])" | Set-Content $env:GITHUB_OUTPUT echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT echo "VersionPreRelease=${{inputs.releaseTypeTag}}" | Set-Content $env:GITHUB_OUTPUT echo "VersionCommitHash=$(("${{ github.sha }}".Substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT From 286e3912eb87ac8eb8ed90864921c48d3573b162 Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:17:43 -0500 Subject: [PATCH 06/15] Fix baseVersion? --- .github/workflows/ManualRelease.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 5277130..3859ed5 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -64,12 +64,12 @@ jobs: run: | $baseVersion = $(((Get-Content "version.txt" -Raw).Split('.'))) $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) - echo "VersionMajor=$($baseVersion[0])" | Set-Content $env:GITHUB_OUTPUT - echo "VersionMinor=$($baseVersion[1])" | Set-Content $env:GITHUB_OUTPUT - echo "VersionPatch=$($baseVersion[2])" | Set-Content $env:GITHUB_OUTPUT - echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT - echo "VersionPreRelease=${{inputs.releaseTypeTag}}" | Set-Content $env:GITHUB_OUTPUT - echo "VersionCommitHash=$(("${{ github.sha }}".Substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT + echo 'VersionMajor=$($baseVersion[0])' | Set-Content $env:GITHUB_OUTPUT + echo 'VersionMinor=$($baseVersion[1])' | Set-Content $env:GITHUB_OUTPUT + echo 'VersionPatch=$($baseVersion[2])' | Set-Content $env:GITHUB_OUTPUT + echo 'VersionBuild=$versionBuild' | Set-Content $env:GITHUB_OUTPUT + echo 'VersionPreRelease=${{inputs.releaseTypeTag}}' | Set-Content $env:GITHUB_OUTPUT + echo 'VersionCommitHash=$(("${{ github.sha }}".Substring(0, 7)))' | Set-Content $env:GITHUB_OUTPUT - name: Get SemVer uses: Squirrelies/CI-CD/GetSemVerString@main From e7ccc95c956c38367ab5bad2b53011dcb3ba0874 Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:24:21 -0500 Subject: [PATCH 07/15] Grr. --- .github/workflows/ManualRelease.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 3859ed5..8fdc18b 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -64,12 +64,12 @@ jobs: run: | $baseVersion = $(((Get-Content "version.txt" -Raw).Split('.'))) $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) - echo 'VersionMajor=$($baseVersion[0])' | Set-Content $env:GITHUB_OUTPUT - echo 'VersionMinor=$($baseVersion[1])' | Set-Content $env:GITHUB_OUTPUT - echo 'VersionPatch=$($baseVersion[2])' | Set-Content $env:GITHUB_OUTPUT - echo 'VersionBuild=$versionBuild' | Set-Content $env:GITHUB_OUTPUT - echo 'VersionPreRelease=${{inputs.releaseTypeTag}}' | Set-Content $env:GITHUB_OUTPUT - echo 'VersionCommitHash=$(("${{ github.sha }}".Substring(0, 7)))' | Set-Content $env:GITHUB_OUTPUT + echo "VersionMajor=$($baseVersion[0])" | Set-Content $env:GITHUB_OUTPUT + echo "VersionMinor=$($baseVersion[1])" | Set-Content $env:GITHUB_OUTPUT + echo "VersionPatch=$($baseVersion[2])" | Set-Content $env:GITHUB_OUTPUT + echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT + echo "VersionPreRelease=${{inputs.releaseTypeTag}}" | Set-Content $env:GITHUB_OUTPUT + echo "VersionCommitHash=$(("${{ github.sha }}".Substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT - name: Get SemVer uses: Squirrelies/CI-CD/GetSemVerString@main @@ -88,6 +88,11 @@ jobs: echo 'FILEVERSION=${{steps.Get-Version.outputs.VersionMajor}}.${{steps.Get-Version.outputs.VersionMinor}}.${{steps.Get-Version.outputs.VersionPatch}}.${{steps.Get-Version.outputs.VersionBuild}}' >> $env:GITHUB_ENV echo 'ASSEMBLYVERSION=${{steps.Get-Version.outputs.VersionMajor}}.${{steps.Get-Version.outputs.VersionMinor}}.0.0' >> $env:GITHUB_ENV + - name: Ensure we detected the version properly + id: assert-version + if: ${{ env.ASSEMBLYVERSION == '..0.0' }} + run: exit 1 + - name: Build Native Library uses: Squirrelies/CI-CD/BuildMSYS2CMakeVCPkgProject@main id: build-native-library From fefd35da22952c83a555e8d049d613c28a28e212 Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:28:36 -0500 Subject: [PATCH 08/15] Grr. --- .github/workflows/ManualRelease.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 8fdc18b..1f002f6 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -63,6 +63,7 @@ jobs: id: Get-Version run: | $baseVersion = $(((Get-Content "version.txt" -Raw).Split('.'))) + Write-Host $baseVersion $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) echo "VersionMajor=$($baseVersion[0])" | Set-Content $env:GITHUB_OUTPUT echo "VersionMinor=$($baseVersion[1])" | Set-Content $env:GITHUB_OUTPUT From eb88562a0e322a0ef808057349b4ff2a8ad3c83d Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:34:27 -0500 Subject: [PATCH 09/15] Grr. --- .github/workflows/ManualRelease.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 1f002f6..9c99307 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -63,14 +63,13 @@ jobs: id: Get-Version run: | $baseVersion = $(((Get-Content "version.txt" -Raw).Split('.'))) - Write-Host $baseVersion $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) - echo "VersionMajor=$($baseVersion[0])" | Set-Content $env:GITHUB_OUTPUT - echo "VersionMinor=$($baseVersion[1])" | Set-Content $env:GITHUB_OUTPUT - echo "VersionPatch=$($baseVersion[2])" | Set-Content $env:GITHUB_OUTPUT + echo $("VersionMajor="+$baseVersion[0]) | Set-Content $env:GITHUB_OUTPUT + echo $("VersionMinor="+$baseVersion[1]) | Set-Content $env:GITHUB_OUTPUT + echo $("VersionPatch="+$baseVersion[2]) | Set-Content $env:GITHUB_OUTPUT echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT echo "VersionPreRelease=${{inputs.releaseTypeTag}}" | Set-Content $env:GITHUB_OUTPUT - echo "VersionCommitHash=$(("${{ github.sha }}".Substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT + echo "VersionCommitHash=$(("${{ github.sha }}".substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT - name: Get SemVer uses: Squirrelies/CI-CD/GetSemVerString@main From 5faf90021ceefd920fab1410bf1a7c4fdf4a71fa Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:42:58 -0500 Subject: [PATCH 10/15] Grr. --- .github/workflows/ManualRelease.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 9c99307..0340502 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -62,14 +62,15 @@ jobs: - name: Read and process version.txt id: Get-Version run: | - $baseVersion = $(((Get-Content "version.txt" -Raw).Split('.'))) - $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) - echo $("VersionMajor="+$baseVersion[0]) | Set-Content $env:GITHUB_OUTPUT - echo $("VersionMinor="+$baseVersion[1]) | Set-Content $env:GITHUB_OUTPUT - echo $("VersionPatch="+$baseVersion[2]) | Set-Content $env:GITHUB_OUTPUT - echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT - echo "VersionPreRelease=${{inputs.releaseTypeTag}}" | Set-Content $env:GITHUB_OUTPUT - echo "VersionCommitHash=$(("${{ github.sha }}".substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT + $baseVersion = (Get-Content "version.txt" -Raw).Split('.') + $versionBuild = (${{vars.BUILD_NUMBER}} + 1) + + "VersionMajor=$($baseVersion[0])" >> $env:GITHUB_OUTPUT + "VersionMinor=$($baseVersion[1])" >> $env:GITHUB_OUTPUT + "VersionPatch=$($baseVersion[2])" >> $env:GITHUB_OUTPUT + "VersionBuild=$versionBuild" >> $env:GITHUB_OUTPUT + "VersionPreRelease=${{inputs.releaseTypeTag}}" >> $env:GITHUB_OUTPUT + "VersionCommitHash=$(("${{github.sha}}".substring(0, 7)))" >> $env:GITHUB_OUTPUT - name: Get SemVer uses: Squirrelies/CI-CD/GetSemVerString@main From f6aa51a277f1a9c20a43138474a4d642b1f4694e Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:45:43 -0500 Subject: [PATCH 11/15] Fixed? --- .github/workflows/AutomatedRelease.yml | 17 +++++++++-------- .github/workflows/ManualRelease.yml | 11 +++-------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/.github/workflows/AutomatedRelease.yml b/.github/workflows/AutomatedRelease.yml index 5143572..d2c8ec8 100644 --- a/.github/workflows/AutomatedRelease.yml +++ b/.github/workflows/AutomatedRelease.yml @@ -17,7 +17,7 @@ jobs: BUILD_PLATFORM: [x86, x64] env: BUILD_CONFIG: Release - RELEASE_TYPE_TAG: "-beta" # For the moment, everything is beta. + RELEASE_TYPE_TAG: "beta" # For the moment, everything is beta. RUN_LINTERS: false # These are not ready yet. RUN_UNIT_TESTS: false # These are not ready yet. BUILD_PLATFORM: ${{matrix.BUILD_PLATFORM}} @@ -35,13 +35,14 @@ jobs: id: Get-Version run: | $baseVersion = (Get-Content "version.txt" -Raw).Split('.') - $versionBuild = $((${{ vars.BUILD_NUMBER }} + 1)) - echo "VersionMajor=$baseVersion[0]" | Set-Content $env:GITHUB_OUTPUT - echo "VersionMinor=$baseVersion[1]" | Set-Content $env:GITHUB_OUTPUT - echo "VersionPatch=$baseVersion[2]" | Set-Content $env:GITHUB_OUTPUT - echo "VersionBuild=$versionBuild" | Set-Content $env:GITHUB_OUTPUT - echo "VersionPreRelease=${{env.RELEASE_TYPE_TAG}}" | Set-Content $env:GITHUB_OUTPUT - echo "VersionCommitHash=$(("${{ github.sha }}".substring(0, 7)))" | Set-Content $env:GITHUB_OUTPUT + $versionBuild = (${{vars.BUILD_NUMBER}} + 1) + + "VersionMajor=$($baseVersion[0])" >> $env:GITHUB_OUTPUT + "VersionMinor=$($baseVersion[1])" >> $env:GITHUB_OUTPUT + "VersionPatch=$($baseVersion[2])" >> $env:GITHUB_OUTPUT + "VersionBuild=$versionBuild" >> $env:GITHUB_OUTPUT + "VersionPreRelease=${{env.RELEASE_TYPE_TAG}}" >> $env:GITHUB_OUTPUT + "VersionCommitHash=$(("${{github.sha}}".substring(0, 7)))" >> $env:GITHUB_OUTPUT - name: Get SemVer uses: Squirrelies/CI-CD/GetSemVerString@main diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index 0340502..f53ba05 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -17,9 +17,9 @@ on: default: "-beta" type: choice options: - - "-alpha" - - "-beta" - - "-RC" + - "alpha" + - "beta" + - "RC" - "" runLinters: description: "Run Linters" @@ -89,11 +89,6 @@ jobs: echo 'FILEVERSION=${{steps.Get-Version.outputs.VersionMajor}}.${{steps.Get-Version.outputs.VersionMinor}}.${{steps.Get-Version.outputs.VersionPatch}}.${{steps.Get-Version.outputs.VersionBuild}}' >> $env:GITHUB_ENV echo 'ASSEMBLYVERSION=${{steps.Get-Version.outputs.VersionMajor}}.${{steps.Get-Version.outputs.VersionMinor}}.0.0' >> $env:GITHUB_ENV - - name: Ensure we detected the version properly - id: assert-version - if: ${{ env.ASSEMBLYVERSION == '..0.0' }} - run: exit 1 - - name: Build Native Library uses: Squirrelies/CI-CD/BuildMSYS2CMakeVCPkgProject@main id: build-native-library From cc1eb65d501ff60a3ab99632002c2dac0c30e71c Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:46:52 -0500 Subject: [PATCH 12/15] Fixed? --- .github/workflows/ManualRelease.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index f53ba05..b143ce1 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -14,7 +14,7 @@ on: releaseTypeTag: # Use -alpha, -beta, or -rc for pre-release. An empty string for stable. description: "Release type tag" required: true - default: "-beta" + default: "beta" type: choice options: - "alpha" From e0652845098355e6a77b22f03fa594c4c3d76ee6 Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 19:59:17 -0500 Subject: [PATCH 13/15] Debugging. --- .github/workflows/ManualRelease.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index b143ce1..a188625 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -126,6 +126,17 @@ jobs: run: nuget push **\*.nupkg -Source "https://api.nuget.org/v3/index.json" -ApiKey "${{secrets.NUGET_API_KEY}}" -SkipDuplicate - name: Update build number variable + if: ${{ !cancelled() && inputs.publish == 'true' }} # Only update the build number if the NuGet package was published env: GH_TOKEN: ${{ secrets.GH_VARIABLE_RW_TOKEN }} run: gh variable set BUILD_NUMBER -b${{ steps.Get-Version.outputs.VersionBuild }} + + - name: Upload publish artifacts + uses: actions/upload-artifact@v4 + with: + name: ProcessMemory${{ env.BUILD_PLATFORM == 'x64' && '64' || '32'}}_v${{env.VERSION}} + path: | + src/ProcessMemory/bin/${{env.BUILD_PLATFORM}}/${{inputs.buildConfig}}/netstandard2.1/ProcessMemory${{ env.BUILD_PLATFORM == 'x64' && '64' || '32'}}.dll + src/ProcessMemory/bin/${{env.BUILD_PLATFORM}}/${{inputs.buildConfig}}/netstandard2.1/ProcessMemory${{ env.BUILD_PLATFORM == 'x64' && '64' || '32'}}.pdb + src/ProcessMemoryNative/build/ProcessMemory.Native.${{ env.BUILD_PLATFORM == 'x64' && '64' || '32'}}.dll + src/ProcessMemoryNative/build/ProcessMemory.Native.${{ env.BUILD_PLATFORM == 'x64' && '64' || '32'}}.pdb From d7b40d04cdf0d62b40d5a9699ee98ccbddddfcbe Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 20:07:04 -0500 Subject: [PATCH 14/15] Do not. I am already handling this you saucy creature! --- src/Directory.Build.props | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 0b124cc..a8f1666 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -18,6 +18,7 @@ README.md LICENSE true + false From d668cf27bf7617b580904af141d4eb0cd253b64c Mon Sep 17 00:00:00 2001 From: "Travis J. Gutjahr" <33809229+Squirrelies@users.noreply.github.com> Date: Fri, 14 Mar 2025 20:12:28 -0500 Subject: [PATCH 15/15] Testing rc version. --- .github/workflows/ManualRelease.yml | 10 +++++++++- src/ProcessMemoryNative/src/VersionInfo.rc.in | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ManualRelease.yml b/.github/workflows/ManualRelease.yml index a188625..151c166 100644 --- a/.github/workflows/ManualRelease.yml +++ b/.github/workflows/ManualRelease.yml @@ -92,6 +92,14 @@ jobs: - name: Build Native Library uses: Squirrelies/CI-CD/BuildMSYS2CMakeVCPkgProject@main id: build-native-library + env: + RC_VERSION: ${{steps.Get-SemVer.outputs.Version}} + RC_VERSION_MAJOR: ${{steps.Get-Version.outputs.VersionMajor}} + RC_VERSION_MINOR: ${{steps.Get-Version.outputs.VersionMinor}} + RC_VERSION_PATCH: ${{steps.Get-Version.outputs.VersionPatch}} + RC_VERSION_BUILD: ${{steps.Get-Version.outputs.VersionBuild}} + RC_VERSION_PRERELEASE_TAG: ${{steps.Get-Version.outputs.VersionPreRelease}} + RC_VERSION_BUILD_HASH: ${{steps.Get-Version.outputs.VersionCommitHash}} with: root-path: ./src/ProcessMemoryNative msys2-msystem: ${{ matrix.BUILD_PLATFORM == 'x64' && 'clang64' || 'mingw32' }} @@ -100,7 +108,7 @@ jobs: preset-configuration: ${{inputs.buildConfig}} preset-configuration-tidy: ${{ inputs.runLinters == true && format('{0}-Tidy', inputs.buildConfig) || ''}} run-unit-tests: ${{inputs.unitTests}} - additional-cmake-args: -DARCH=${{matrix.BUILD_PLATFORM}} -DRC_VERSION_MAJOR=${{steps.Get-Version.outputs.VersionMajor}} -DRC_VERSION_MINOR=${{steps.Get-Version.outputs.VersionMinor}} -DRC_VERSION_PATCH=${{steps.Get-Version.outputs.VersionPatch}} -DRC_VERSION_BUILD=${{steps.Get-Version.outputs.VersionBuild}} -DRC_VERSION_PRERELEASE_TAG=${{steps.Get-Version.outputs.VersionPreRelease}} -DRC_VERSION_BUILD_HASH=${{steps.Get-Version.outputs.VersionCommitHash}} + additional-cmake-args: -DARCH=${{matrix.BUILD_PLATFORM}} -DRC_VERSION=${{steps.Get-SemVer.outputs.Version}} -DRC_VERSION_MAJOR=${{steps.Get-Version.outputs.VersionMajor}} -DRC_VERSION_MINOR=${{steps.Get-Version.outputs.VersionMinor}} -DRC_VERSION_PATCH=${{steps.Get-Version.outputs.VersionPatch}} -DRC_VERSION_BUILD=${{steps.Get-Version.outputs.VersionBuild}} -DRC_VERSION_PRERELEASE_TAG=${{steps.Get-Version.outputs.VersionPreRelease}} -DRC_VERSION_BUILD_HASH=${{steps.Get-Version.outputs.VersionCommitHash}} - name: Setup NuGet uses: NuGet/setup-nuget@v2 diff --git a/src/ProcessMemoryNative/src/VersionInfo.rc.in b/src/ProcessMemoryNative/src/VersionInfo.rc.in index 85875d6..f74b1eb 100644 --- a/src/ProcessMemoryNative/src/VersionInfo.rc.in +++ b/src/ProcessMemoryNative/src/VersionInfo.rc.in @@ -13,7 +13,7 @@ #define VER_FILEVERSION_STR "@RC_VERSION_MAJOR@.@RC_VERSION_MINOR@.@RC_VERSION_PATCH@.@RC_VERSION_BUILD@\0" #define VER_PRODUCTVERSION @RC_VERSION_MAJOR@,@RC_VERSION_MINOR@,@RC_VERSION_PATCH@,@RC_VERSION_BUILD@ -#define VER_PRODUCTVERSION_STR "@RC_VERSION_MAJOR@.@RC_VERSION_MINOR@.@RC_VERSION_PATCH@ (Build #@RC_VERSION_BUILD@)\0" +#define VER_PRODUCTVERSION_STR "@RC_VERSION@\0" #define VER_PRIVATEBUILD 0 #define VER_PRERELEASE 0