Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix converter value for Updates list (installed versions with green t…#149

fix converter value for Updates list (installed versions with green t…

fix converter value for Updates list (installed versions with green t… #149

Workflow file for this run

name:CI
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches:[ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on:windows-2022
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Step to check if the commit message contains #GITBUILD
-name:Check Commit Message
shell:powershell
run:|
# Get the commit message
$strVal = '${{ github.event.commits[0].message }}'
# Convert commit message to a single line if multiline
$singleLineStrVal = $strVal -replace "`r`n", " " -replace "`n", " "
if ($singleLineStrVal -match '#GITBUILD') {
Write-Host 'Build commit detected. Proceeding with build...'
echo "build_trigger=true" >> $env:GITHUB_ENV
} else {
Write-Host 'No build commit. Skipping build steps...'
echo "build_trigger=false" >> $env:GITHUB_ENV
}
# Step to ensure the repository is checked out
-uses:actions/checkout@v2
# Inform if build steps are skipped
-name:Inform Skipped Build Steps
if:env.build_trigger != 'true'
shell:powershell
run:|
Write-Host "Skipping build steps because the commit message does not contain #GITBUILD."
# Install 7Zip PowerShell module
-name:Install 7Zip PowerShell Module
if:env.build_trigger == 'true'
shell:powershell
run:Install-Module 7Zip4PowerShell -Force -Verbose
# Restore NuGet packages
-name:Restore NuGet packages
if:env.build_trigger == 'true'
run:nuget restore UnityLauncherPro.sln
# Build the binary
-name:Build Binary
if:env.build_trigger == 'true'
shell:cmd
run:call .\Build.cmd
# Build the artifact
-name:Build Artifact
if:env.build_trigger == 'true'
shell:cmd
run:call .\ArtifactBuild.cmd
# Check that output exists
-name:Validate UnityLauncherPro.exe exists
if:env.build_trigger == 'true'
shell:cmd
run:|
if not exist "UnityLauncherPro\bin\Release\UnityLauncherPro.exe" (
echo ERROR: UnityLauncherPro.exe not found.
exit /b 1
)
echo Found UnityLauncherPro.exe
# 1) Compute a wrapped major.minor.build from the run number
-name:Compute installer version
if:env.build_trigger == 'true'
shell:bash
run:|
TOTAL=${{ github.run_number }}
BUILD=$(( TOTAL % 65536 ))
MINOR_TOTAL=$(( TOTAL / 65536 ))
MINOR=$(( MINOR_TOTAL % 256 ))
MAJOR=$(( MINOR_TOTAL / 256 ))
echo "INSTALLER_MAJOR=$MAJOR" >> $GITHUB_ENV
echo "INSTALLER_MINOR=$MINOR" >> $GITHUB_ENV
echo "INSTALLER_BUILD=$BUILD" >> $GITHUB_ENV
echo "INSTALLER_VER=$MAJOR.$MINOR.$BUILD" >> $GITHUB_ENV
echo "Computed installer version → $MAJOR.$MINOR.$BUILD (run #${{ github.run_number }})"
# 2) Patch your .vdproj in place (inject ProductVersion and a new GUID)
-name:Patch .vdproj ProductVersion & ProductCode
if:env.build_trigger == 'true'
shell:pwsh
run:|
$proj = 'UnityLauncherProInstaller\UnityLauncherProInstaller.vdproj'
$ver = "${{ env.INSTALLER_VER }}" # e.g. 0.0.118
$guid = [Guid]::NewGuid().ToString("B").ToUpper() # e.g. {E821A3F5-1F84-4A4B-BE9D-115D93E9E6F0}
# Read & rewrite line-by-line
$fixed = Get-Content $proj | ForEach-Object {
if ($_ -match '^(\s*)"ProductVersion"') {
# preserve indentation, then inject exactly one pair of braces
"$($Matches[1])""ProductVersion"" = ""8:$ver"""
}
elseif ($_ -match '^(\s*)"ProductCode"') {
"$($Matches[1])""ProductCode"" = ""8:$guid"""
}
else {
$_
}
}
# Overwrite the project
Set-Content -Path $proj -Value $fixed
Write-Host "→ ProductVersion patched to 8:$ver"
Write-Host "→ ProductCode patched to 8:$guid"
# 3) **DEBUG**: print out the patched .vdproj so you can inspect it
-name:Show patched .vdproj
if:env.build_trigger == 'true'
shell:pwsh
run:|
$proj = 'UnityLauncherProInstaller\UnityLauncherProInstaller.vdproj'
Write-Host "=== BEGIN .vdproj CONTENT ==="
Get-Content $proj
Write-Host "=== END .vdproj CONTENT ==="
# locate VS 2022
-name:Locate Visual Studio 2022
id:vswhere
shell:pwsh
run:|
$installPath = vswhere -latest -products * -requires Microsoft.Component.MSBuild `
-property installationPath
if (-not $installPath) { throw 'VS 2022 not found' }
"installPath=$installPath" >> $env:GITHUB_OUTPUT
# download vs installer builder (v2.0.1)
-name:Download Installer-Projects VSIX
shell:pwsh
run:|
$vsixUrl = "https://marketplace.visualstudio.com/_apis/public/gallery/publishers/VisualStudioClient/vsextensions/MicrosoftVisualStudio2022InstallerProjects/2.0.1/vspackage"
Invoke-WebRequest $vsixUrl -OutFile installerprojects.vsix
# install vs installer builder
-name:Install Installer-Projects extension
shell:pwsh
run:|
$vsixInstaller = Join-Path "${{ steps.vswhere.outputs.installPath }}" 'Common7\IDE\VSIXInstaller.exe'
Write-Host "Running: $vsixInstaller installerprojects.vsix /quiet"
& $vsixInstaller installerprojects.vsix /quiet
# Build MSI installer project using Visual Studio 2022 workaround
-name:Build Installer MSI
if:env.build_trigger == 'true'
shell:cmd
run:|
echo === Running BuildInstaller.bat ===
call .\BuildInstaller.bat || echo WARNING: BuildInstaller.bat exited with %ERRORLEVEL%, continuing...
echo === Verifying MSI ===
if exist "UnityLauncherProInstaller\Release\UnityLauncherPro-Installer.msi" (
echo Success: MSI found at UnityLauncherProInstaller\Release\UnityLauncherPro-Installer.msi
exit /b 0
) else (
echo ERROR: MSI not found in UnityLauncherProInstaller\Release
exit /b 1
)
# Get the current date and time
-name:Get current date and time
id:datetime
if:env.build_trigger == 'true'# Only run if build was triggered
run:|
# Save the current date and time to an environment variable
echo "current_datetime=$(date +'%d/%m/%Y %H:%M')" >> $GITHUB_ENV
# Step to get previous tag and commits
-name:Get commits since last release
id:get_commits
if:env.build_trigger == 'true'# Only run if build was triggered
shell:bash
run:|
# Get the most recent tag
PREV_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "none")
if [ "$PREV_TAG" = "none" ]; then
echo "No previous tag found, listing all commits"
COMMITS=$(git log --pretty=format:"* %s" --no-merges)
else
echo "Previous tag: $PREV_TAG"
# List commits since last tag
COMMITS=$(git log $PREV_TAG..HEAD --pretty=format:"* %s" --no-merges)
fi
# Save commits to the environment
echo "commits=$COMMITS" >> $GITHUB_ENV
# Create a release
-name:Create Release
id:create_release
if:env.build_trigger == 'true'# Execute only if build was triggered
uses:actions/create-release@latest
env:
GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}
with:
tag_name:${{github.run_number}}
release_name:${{ env.current_datetime }} (${{ github.run_number }})
body:|
Automated Release by GitHub Action CI
### Commits in this release:
${{ env.commits }}
draft:false
prerelease:false
# Upload the release asset
-name:Upload Release Asset
id:upload-release-asset
if:env.build_trigger == 'true'# Execute only if build was triggered
uses:actions/upload-release-asset@v1
env:
GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}
with:
upload_url:${{ steps.create_release.outputs.upload_url }}
asset_path:./UnityLauncherPro.zip
asset_name:UnityLauncherPro.zip
asset_content_type:application/zip
# Upload MSI installer to release
-name:Upload MSI Installer
if:env.build_trigger == 'true'
uses:actions/upload-release-asset@v1
env:
GITHUB_TOKEN:${{ secrets.GITHUB_TOKEN }}
with:
upload_url:${{ steps.create_release.outputs.upload_url }}
asset_path:./UnityLauncherProInstaller/Release/UnityLauncherPro-Installer.msi
asset_name:UnityLauncherPro-Installer.msi
asset_content_type:application/x-msi

[8]ページ先頭

©2009-2025 Movatter.jp