Enable private signing of CI builds

This commit is contained in:
Archi
2021-08-01 12:56:08 +02:00
parent 4ac2774eaf
commit 7971585a32
7 changed files with 68 additions and 5 deletions

View File

@@ -7,9 +7,6 @@
# Ignore all files in custom in-tree config directory (if exists)
ArchiSteamFarm/config
# Ignore private SNK key (if exists)
resources/ArchiSteamFarm.snk
# Ignore local log + debug of development builds
ArchiSteamFarm/log.txt
ArchiSteamFarm/debug

15
.github/appveyor.yml vendored
View File

@@ -6,6 +6,8 @@ image: Visual Studio 2019
configuration: Release
clone_depth: 10
environment:
ASF_PRIVATE_SNK:
secure: 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
DOTNET_CHANNEL: 5.0
DOTNET_CLI_TELEMETRY_OPTOUT: true
DOTNET_INSTALL_DIR: C:\Program Files\dotnet
@@ -156,6 +158,17 @@ after_test:
$ProgressPreference = 'SilentlyContinue'
if (Test-Path env:ASF_PRIVATE_SNK) {
echo "$env:ASF_PRIVATE_SNK" > "resources\ArchiSteamFarm.snk"
certutil -f -decode "resources\ArchiSteamFarm.snk" "resources\ArchiSteamFarm.snk"
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
}
if ((Test-Path env:STEAM_TOKEN_DUMPER_TOKEN) -and (Test-Path "$env:STEAM_TOKEN_DUMPER_NAME\SharedInfo.cs" -PathType Leaf)) {
(Get-Content "$env:STEAM_TOKEN_DUMPER_NAME\SharedInfo.cs").Replace('STEAM_TOKEN_DUMPER_TOKEN', "$env:STEAM_TOKEN_DUMPER_TOKEN") | Set-Content "$env:STEAM_TOKEN_DUMPER_NAME\SharedInfo.cs"
}
@@ -177,7 +190,7 @@ after_test:
}
dotnet restore ArchiSteamFarm -p:ContinuousIntegrationBuild=true
dotnet restore ArchiSteamFarm -p:ContinuousIntegrationBuild=true --nologo
if ($LastExitCode -ne 0) {

View File

@@ -5,6 +5,7 @@ on:
types: [released]
env:
ASF_PRIVATE_SNK: ${{ secrets.ASF_PRIVATE_SNK }}
PLATFORMS: linux/amd64,linux/arm,linux/arm64
TAG: latest
@@ -34,6 +35,13 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Prepare private key for signing
shell: sh
run: |
if [ -n "${ASF_PRIVATE_SNK-}" ]; then
echo "$ASF_PRIVATE_SNK" | base64 -d > "resources/ArchiSteamFarm.snk"
fi
- name: Prepare environment outputs
shell: sh
run: |

View File

@@ -6,6 +6,7 @@ on:
- main
env:
ASF_PRIVATE_SNK: ${{ secrets.ASF_PRIVATE_SNK }}
PLATFORMS: linux/amd64,linux/arm,linux/arm64
TAG: main
@@ -35,6 +36,13 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Prepare private key for signing
shell: sh
run: |
if [ -n "${ASF_PRIVATE_SNK-}" ]; then
echo "$ASF_PRIVATE_SNK" | base64 -d > "resources/ArchiSteamFarm.snk"
fi
- name: Prepare environment outputs
shell: sh
run: |

View File

@@ -6,6 +6,7 @@ on:
- '*'
env:
ASF_PRIVATE_SNK: ${{ secrets.ASF_PRIVATE_SNK }}
PLATFORMS: linux/amd64,linux/arm,linux/arm64
TAG: released
@@ -35,6 +36,13 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Prepare private key for signing
shell: sh
run: |
if [ -n "${ASF_PRIVATE_SNK-}" ]; then
echo "$ASF_PRIVATE_SNK" | base64 -d > "resources/ArchiSteamFarm.snk"
fi
- name: Prepare environment outputs
shell: sh
run: |

View File

@@ -3,6 +3,7 @@ name: ASF-publish
on: [push, pull_request]
env:
ASF_PRIVATE_SNK: ${{ secrets.ASF_PRIVATE_SNK }}
CONFIGURATION: Release
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: 1
@@ -54,6 +55,28 @@ jobs:
- name: Publish ASF-ui
run: npm run-script deploy --no-progress --prefix ASF-ui
- name: Prepare private key for signing on Unix
if: startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
shell: sh
run: |
if [ -n "${ASF_PRIVATE_SNK-}" ]; then
echo "$ASF_PRIVATE_SNK" | base64 -d > "resources/ArchiSteamFarm.snk"
fi
- name: Prepare private key for signing on Windows
if: startsWith(matrix.os, 'windows-')
shell: pwsh
run: |
if (Test-Path env:ASF_PRIVATE_SNK) {
echo "$env:ASF_PRIVATE_SNK" > "resources\ArchiSteamFarm.snk"
certutil -f -decode "resources\ArchiSteamFarm.snk" "resources\ArchiSteamFarm.snk"
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
}
- name: Prepare ArchiSteamFarm.OfficialPlugins.SteamTokenDumper on Unix
if: startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
shell: sh
@@ -83,7 +106,7 @@ jobs:
run: dotnet publish "${{ env.STEAM_TOKEN_DUMPER_NAME }}" -c "${{ env.CONFIGURATION }}" -f "${{ env.NET_FRAMEWORK_VERSION }}" -o "out/${{ env.STEAM_TOKEN_DUMPER_NAME }}/${{ env.NET_FRAMEWORK_VERSION }}" -p:ContinuousIntegrationBuild=true -p:TargetLatestRuntimePatch=false -p:UseAppHost=false --nologo
- name: Restore packages in preparation for ArchiSteamFarm publishing
run: dotnet restore ArchiSteamFarm -p:ContinuousIntegrationBuild=true
run: dotnet restore ArchiSteamFarm -p:ContinuousIntegrationBuild=true --nologo
- name: Publish ArchiSteamFarm on Unix
if: startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')

View File

@@ -43,6 +43,12 @@
<WarningsNotAsErrors>CS8002</WarningsNotAsErrors>
</PropertyGroup>
<!-- Private SNK signing -->
<PropertyGroup Condition="'$(Configuration)' == 'Release' AND EXISTS('resources/ArchiSteamFarm.snk')">
<AssemblyOriginatorKeyFile>../resources/ArchiSteamFarm.snk</AssemblyOriginatorKeyFile>
<PublicSign>false</PublicSign>
</PropertyGroup>
<!-- Trimming features as specified on https://docs.microsoft.com/dotnet/core/deploying/trimming-options#trimming-framework-library-features and https://github.com/dotnet/runtime/blob/master/docs/workflow/trimming/feature-switches.md -->
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<DebuggerSupport>false</DebuggerSupport>