기타 사용되지 않는 코드 제거 #244
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: TableCloth Publish Pipeline | |
on: [push, pull_request] | |
jobs: | |
build: | |
if: github.repository_owner == 'yourtablecloth' | |
strategy: | |
matrix: | |
configuration: [Debug, Release] | |
platform: [x64] # Windows-AArch64 build machine is not available currently on GitHub (as of Aug, 2022) | |
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on | |
runs-on: windows-2022 | |
env: | |
Solution_Name: src\TableCloth.sln | |
Hostess_Project_Path: src\Hostess\Hostess.csproj | |
ResourceBuilder_Project_Path: src\TableCloth.ResourceBuilder\TableCloth.ResourceBuilder.csproj | |
Loom_Project_Path: src\Loom\Loom.csproj | |
TableCloth_Project_Directory: src\TableCloth | |
TableCloth_Project_Path: src\TableCloth\TableCloth.csproj | |
Setup_Project_Name: TableCloth.SetupBuilder | |
Setup_Project_Directory: src\TableCloth.SetupBuilder | |
Setup_Project_Path: src\TableCloth.SetupBuilder\TableCloth.SetupBuilder.csproj | |
Platform: ${{ matrix.platform }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
#token: ${{ secrets.TABLECLOTH_GITHUB_PAT }} | |
# Install the .NET Core workload | |
- name: Install .NET Core | |
uses: actions/setup-dotnet@v1 | |
with: | |
dotnet-version: 6.0.x | |
# Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild | |
- name: Setup MSBuild.exe | |
uses: microsoft/[email protected] | |
# Setup NuGet CLI | |
- name: Setup NuGet CLI | |
uses: nuget/setup-nuget@v1 | |
with: | |
nuget-version: '5.x' | |
# Restore .NET Framework nuget packages | |
- name: Restore the application (.NET Framework Part) | |
run: nuget restore $env:Solution_Name | |
# Restore the application to populate the obj folder with RuntimeIdentifiers | |
- name: Restore the application (.NET Core Part) | |
run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration /m | |
env: | |
Configuration: ${{ matrix.configuration }} | |
# Build Hostess project separately | |
- name: Build Hostess project | |
run: msbuild $env:Hostess_Project_Path /p:Configuration=$env:Configuration /p:Platform=$env:Platform /m | |
env: | |
Configuration: ${{ matrix.configuration }} | |
# Build ResourceBuilder project separately | |
- name: Build ResourceBuilder project | |
run: msbuild $env:ResourceBuilder_Project_Path /p:Configuration=$env:Configuration /p:Platform=$env:Platform /m | |
env: | |
Configuration: ${{ matrix.configuration }} | |
# Execute all unit tests in the solution | |
#- name: Execute unit tests | |
# run: dotnet test -c:$env:Configuration | |
# env: | |
# Configuration: ${{ matrix.configuration }} | |
# Publish TableCloth project | |
- name: Build TableCloth project | |
run: dotnet publish $env:TableCloth_Project_Path -r win-${{ env.Platform }} --self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true -c:$env:Configuration | |
env: | |
Configuration: ${{ matrix.configuration }} | |
# Build Loom project separately | |
- name: Build Loom project | |
run: dotnet publish $env:Loom_Project_Path -r win-${{ env.Platform }} --self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true -c:$env:Configuration | |
env: | |
Configuration: ${{ matrix.configuration }} | |
# Decode the base 64 encoded pfx and save the Signing_Certificate | |
- name: Decode the pfx | |
run: | | |
$pfx_cert_byte = [System.Convert]::FromBase64String("${{ secrets.Base64_Encoded_Pfx }}") | |
$certificatePath = Join-Path -Path $env:Setup_Project_Directory -ChildPath GitHubActionsWorkflow.pfx | |
[IO.File]::WriteAllBytes("$certificatePath", $pfx_cert_byte) | |
- name: Set path for candle and light | |
run: echo "$env:WIX_PATH\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
env: | |
WIX_PATH: ${{ env.wix }} | |
# Build setup builder project separately | |
- name: Build setup builder project | |
run: msbuild $env:Setup_Project_Path /p:Configuration=$env:Configuration /p:Platform=$env:Platform /m | |
env: | |
Configuration: ${{ matrix.configuration }} | |
# Run Setup builder | |
- name: Run setup builder | |
run: | | |
$SetupBuilderFullPath = [System.IO.Path]::GetFullPath('${{ env.Setup_Project_Directory }}\bin\${{ env.Platform }}\${{ matrix.configuration }}\${{ env.Setup_Project_Name }}.exe') | |
$InputDirPath = [System.IO.Path]::GetFullPath('${{ env.TableCloth_Project_Directory }}\bin\${{ env.Platform }}\${{ matrix.configuration }}\net6.0-windows10.0.18362.0\win-${{ env.Platform }}\publish') | |
$PfxFileFullPath = [System.IO.Path]::GetFullPath('${{ env.Setup_Project_Directory }}\GitHubActionsWorkflow.pfx') | |
$IconFilePath = [System.IO.Path]::GetFullPath('${{ env.TableCloth_Project_Directory }}\App.ico') | |
echo $SetupBuilderFullPath | |
echo $InputDirPath | |
echo $PfxFileFullPath | |
echo $IconFilePath | |
dir $SetupBuilderFullPath -ErrorAction Continue | |
dir $InputDirPath -ErrorAction Continue | |
dir $PfxFileFullPath -ErrorAction Continue | |
dir $IconFilePath -ErrorAction Continue | |
. $SetupBuilderFullPath $InputDirPath $PfxFileFullPath '${{ secrets.Pfx_Key }}' $IconFilePath | |
# Remove the pfx | |
- name: Remove the pfx | |
run: | | |
$certificatePath = Join-Path -Path $env:Setup_Project_Directory -ChildPath GitHubActionsWorkflow.pfx | |
Remove-Item -path $certificatePath | |
# Upload the MSI package: https://github.com/actions/upload-artifact | |
- name: Upload build artifacts (TableCloth MSI) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: MSI Package (${{ matrix.platform }}, ${{ matrix.configuration }}) | |
path: TableCloth.msi | |
if-no-files-found: error | |
retention-days: 90 | |
# Upload the zip package: https://github.com/actions/upload-artifact | |
- name: Upload build artifacts (Loom CLI) | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Loom CLI (${{ matrix.platform }}, ${{ matrix.configuration }}) | |
path: src\Loom\bin\${{ env.Platform }}\${{ matrix.configuration }}\net6.0\win-${{ env.Platform }}\publish\Loom.exe | |
if-no-files-found: error | |
retention-days: 90 |