From 511e05d68a5d387a02e3d1c4d68abfe6812ee9b2 Mon Sep 17 00:00:00 2001 From: cdozdil <35529761+cdozdil@users.noreply.github.com> Date: Tue, 1 Jul 2025 00:17:20 +0300 Subject: [PATCH] Create just_build_no_signature.yml --- .github/workflows/just_build_no_signature.yml | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 .github/workflows/just_build_no_signature.yml diff --git a/.github/workflows/just_build_no_signature.yml b/.github/workflows/just_build_no_signature.yml new file mode 100644 index 00000000..b54187b2 --- /dev/null +++ b/.github/workflows/just_build_no_signature.yml @@ -0,0 +1,115 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Build + +on: + workflow_dispatch: +# push: +# branches: [ "master" ] +# pull_request: +# branches: [ "master" ] + +env: + # Path to the solution file relative to the root of the project. + SOLUTION_FILE_PATH: . + + # Configuration type to build. + # You can convert this to a build matrix if you need coverage of multiple configuration types. + # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + BUILD_CONFIGURATION: Release + +permissions: + contents: write + +jobs: + build: + runs-on: windows-latest + environment: Build + + steps: + - uses: actions/checkout@v4 + with: + submodules: 'true' + + - name: Extract Version + id: get_version + working-directory: ${{ github.workspace }} + shell: powershell + run: | + # Ensure the file exists before proceeding + $resourceFile = ".\OptiScaler\resource.h" + if (-Not (Test-Path $resourceFile)) { + Write-Error "File not found: $resourceFile" + exit 1 + } + + # Helper function to extract the first matching line for a version component + function Get-Version-Component { + param ( + [string]$pattern, + [string]$replacement + ) + # Use Select-String and take only the first match + $line = Get-Content $resourceFile | Select-String -Pattern $pattern | Select-Object -First 1 + if ($line) { + return ($line.Line -replace $replacement).Trim() + } else { + Write-Error "Pattern not found: $pattern" + exit 1 + } + } + + # Extract version components (only the first match for each pattern) + $majorVersion = Get-Version-Component 'VER_MAJOR_VERSION' '#define VER_MAJOR_VERSION\s+' + $minorVersion = Get-Version-Component 'VER_MINOR_VERSION' '#define VER_MINOR_VERSION\s+' + $hotfixVersion = Get-Version-Component 'VER_HOTFIX_VERSION' '#define VER_HOTFIX_VERSION\s+' + $buildVersion = Get-Version-Component 'VER_BUILD_NUMBER' '#define VER_BUILD_NUMBER\s+' + + # Merge into a single version string + $version = "v$majorVersion.$minorVersion.$hotfixVersion-pre$buildVersion" + + # Get the current date in a specific format (e.g., YYYYMMDD) + $date = Get-Date -Format "yyyyMMdd" + + # Construct the output filename with version and date + $outputFileName = "OptiScaler_${version}_${date}" + + # Output the generated filename + Write-Output "Generated Filename: $outputFileName" + + # Write outputs to GITHUB_OUTPUT + "version=$version" | Out-File -FilePath $env:GITHUB_OUTPUT -Append + "filename=$outputFileName" | Out-File -FilePath $env:GITHUB_OUTPUT -Append + + continue-on-error: false + + - name: Debug Outputs + run: | + echo "Version: ${{ steps.get_version.outputs.version }}" + echo "Filename: ${{ steps.get_version.outputs.filename }}" + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v2 + + - name: Build + working-directory: ${{env.GITHUB_WORKSPACE}} + # Add additional options to the MSBuild command line here (like platform or verbosity level). + # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference + run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} /verbosity:minimal + + - name: Compress the artifact + run: | + $zipName = "${{ steps.get_version.outputs.filename }}.7z" + 7z a -r ${{ github.workspace }}\$zipName ${{ github.workspace }}\x64\Release\a\*.* + + continue-on-error: false + + - uses: actions/upload-artifact@v4 + with: + name: '${{ steps.get_version.outputs.filename }}' + path: '${{ github.workspace }}\${{ steps.get_version.outputs.filename }}.7z' + compression-level: 0 + if-no-files-found: error