2021-05-20 21:36:02 +00:00
name : ASF-publish
on : [ push, pull_request]
env :
CONFIGURATION : Release
2023-11-19 18:33:42 +00:00
DOTNET_CLI_TELEMETRY_OPTOUT : true
DOTNET_NOLOGO : true
2023-11-14 18:12:33 +00:00
DOTNET_SDK_VERSION : 8.0
2021-06-30 14:26:33 +00:00
NODE_JS_VERSION : 'lts/*'
2024-03-25 23:29:23 +00:00
PLUGINS_BUNDLED : ArchiSteamFarm.OfficialPlugins.ItemsMatcher ArchiSteamFarm.OfficialPlugins.MobileAuthenticator ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
PLUGINS_INCLUDED : ArchiSteamFarm.OfficialPlugins.Monitoring # Apart from declaring them here, there is certain amount of hardcoding needed below for uploading
2021-05-20 21:36:02 +00:00
2023-11-19 18:33:42 +00:00
permissions : {}
2021-05-20 21:36:02 +00:00
jobs :
2023-02-09 16:22:31 +00:00
publish-asf-ui :
runs-on : ubuntu-latest
2021-05-20 21:36:02 +00:00
steps :
- name : Checkout code
2023-10-17 17:26:45 +00:00
uses : actions/checkout@v4.1.1
2021-05-20 21:36:02 +00:00
with :
2023-09-04 17:19:48 +00:00
show-progress : false
2021-05-20 21:36:02 +00:00
submodules : recursive
- name : Setup Node.js with npm
2024-02-07 07:24:21 +00:00
uses : actions/setup-node@v4.0.2
2021-05-20 21:36:02 +00:00
with :
check-latest : true
node-version : ${{ env.NODE_JS_VERSION }}
- name : Verify Node.js
run : node -v
- name : Verify npm
run : npm -v
- name : Install npm modules for ASF-ui
run : npm ci --no-progress --prefix ASF-ui
- name : Publish ASF-ui
run : npm run-script deploy --no-progress --prefix ASF-ui
2023-02-09 16:22:31 +00:00
- name : Upload ASF-ui
2024-02-06 13:05:46 +00:00
uses : actions/upload-artifact@v4.3.1
2023-02-09 16:22:31 +00:00
with :
2024-03-26 03:42:31 +00:00
if-no-files-found : error
2023-02-09 16:22:31 +00:00
name : ASF-ui
path : ASF-ui/dist
publish-asf :
needs : publish-asf-ui
strategy :
fail-fast : false
matrix :
include :
- os : ubuntu-latest
variant : generic
- os : ubuntu-latest
variant : linux-arm
- os : ubuntu-latest
variant : linux-arm64
- os : ubuntu-latest
variant : linux-x64
- os : macos-latest
variant : osx-arm64
- os : macos-latest
variant : osx-x64
- os : windows-latest
variant : win-arm64
- os : windows-latest
variant : win-x64
runs-on : ${{ matrix.os }}
steps :
- name : Checkout code
2023-10-17 17:26:45 +00:00
uses : actions/checkout@v4.1.1
2023-09-04 17:19:48 +00:00
with :
show-progress : false
2023-02-09 16:22:31 +00:00
- name : Setup .NET Core
2023-12-04 20:04:53 +00:00
uses : actions/setup-dotnet@v4.0.0
2023-02-09 16:22:31 +00:00
with :
dotnet-version : ${{ env.DOTNET_SDK_VERSION }}
- name : Verify .NET Core
run : dotnet --info
- name : Download previously built ASF-ui
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2023-02-09 16:22:31 +00:00
with :
name : ASF-ui
path : ASF-ui/dist
2021-08-01 10:56:08 +00:00
- name : Prepare private key for signing on Unix
if : startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
2023-02-09 16:22:31 +00:00
env :
ASF_PRIVATE_SNK : ${{ secrets.ASF_PRIVATE_SNK }}
2021-08-01 10:56:08 +00:00
shell : sh
run : |
2021-08-01 11:00:14 +00:00
set -eu
if [ -n "${ASF_PRIVATE_SNK-}" ]; then
echo "$ASF_PRIVATE_SNK" | base64 -d > "resources/ArchiSteamFarm.snk"
fi
2021-08-01 10:56:08 +00:00
- name : Prepare private key for signing on Windows
if : startsWith(matrix.os, 'windows-')
2023-02-09 16:22:31 +00:00
env :
ASF_PRIVATE_SNK : ${{ secrets.ASF_PRIVATE_SNK }}
2021-08-01 10:56:08 +00:00
shell : pwsh
run : |
2021-08-01 11:00:14 +00:00
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
2021-08-01 10:56:08 +00:00
2021-08-01 17:14:56 +00:00
if ((Test-Path env:ASF_PRIVATE_SNK) -and ($env:ASF_PRIVATE_SNK)) {
2021-08-01 11:00:14 +00:00
echo "$env:ASF_PRIVATE_SNK" > "resources\ArchiSteamFarm.snk"
2021-08-01 10:56:08 +00:00
2021-08-01 11:00:14 +00:00
certutil -f -decode "resources\ArchiSteamFarm.snk" "resources\ArchiSteamFarm.snk"
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
}
2021-08-01 10:56:08 +00:00
2021-05-20 21:36:02 +00:00
- name : Prepare ArchiSteamFarm.OfficialPlugins.SteamTokenDumper on Unix
if : startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
2023-02-09 16:22:31 +00:00
env :
STEAM_TOKEN_DUMPER_TOKEN : ${{ secrets.STEAM_TOKEN_DUMPER_TOKEN }}
2021-05-20 21:36:02 +00:00
shell : sh
run : |
2021-08-01 11:00:14 +00:00
set -eu
2022-12-15 17:46:37 +00:00
if [ -n "${STEAM_TOKEN_DUMPER_TOKEN-}" ] && [ -f "ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SharedInfo.cs" ]; then
sed "s/STEAM_TOKEN_DUMPER_TOKEN/${STEAM_TOKEN_DUMPER_TOKEN}/g" "ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SharedInfo.cs" > "ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SharedInfo.cs.new"
mv "ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SharedInfo.cs.new" "ArchiSteamFarm.OfficialPlugins.SteamTokenDumper/SharedInfo.cs"
2021-08-01 11:00:14 +00:00
fi
2021-05-20 21:36:02 +00:00
- name : Prepare ArchiSteamFarm.OfficialPlugins.SteamTokenDumper on Windows
if : startsWith(matrix.os, 'windows-')
2023-02-09 16:22:31 +00:00
env :
STEAM_TOKEN_DUMPER_TOKEN : ${{ secrets.STEAM_TOKEN_DUMPER_TOKEN }}
2021-05-20 21:36:02 +00:00
shell : pwsh
run : |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
2022-12-15 17:46:37 +00:00
if ((Test-Path env:STEAM_TOKEN_DUMPER_TOKEN) -and ($env:STEAM_TOKEN_DUMPER_TOKEN) -and (Test-Path "ArchiSteamFarm.OfficialPlugins.SteamTokenDumper\SharedInfo.cs" -PathType Leaf)) {
(Get-Content "ArchiSteamFarm.OfficialPlugins.SteamTokenDumper\SharedInfo.cs").Replace('STEAM_TOKEN_DUMPER_TOKEN', "$env:STEAM_TOKEN_DUMPER_TOKEN") | Set-Content "ArchiSteamFarm.OfficialPlugins.SteamTokenDumper\SharedInfo.cs"
}
2024-03-26 16:12:50 +00:00
- name : Publish ASF-${{ matrix.variant }} on Unix
2022-12-15 17:46:37 +00:00
if : startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
env :
2024-03-26 03:42:31 +00:00
VARIANT : ${{ matrix.variant }}
2022-12-15 17:46:37 +00:00
shell : bash
run : |
set -euo pipefail
2024-03-26 16:12:50 +00:00
if [ "$VARIANT" = 'generic' ]; then
variantArgs="-p:TargetLatestRuntimePatch=false -p:UseAppHost=false"
else
variantArgs="-p:PublishSingleFile=true -p:PublishTrimmed=true -r $VARIANT --self-contained"
fi
2023-02-09 16:22:31 +00:00
2024-03-26 16:12:50 +00:00
dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -o "out/${VARIANT}" "-p:ASFVariant=${VARIANT}" -p:ContinuousIntegrationBuild=true --nologo $variantArgs
2022-12-15 17:46:37 +00:00
2024-03-26 16:12:50 +00:00
# Include .ico file for all platforms, since only Windows script can bundle it inside the exe
cp "resources/ASF.ico" "out/${VARIANT}/ArchiSteamFarm.ico"
2022-12-15 17:46:37 +00:00
2024-03-26 17:51:11 +00:00
# Include extra logic for builds marked for release
case "$GITHUB_REF" in
"refs/tags/" *)
# Update link in Changelog.html accordingly
if [ -f "out/${VARIANT}/Changelog.html" ]; then
tag="$(echo "$GITHUB_REF" | cut -c 11-)"
sed "s/ArchiSteamFarm\/commits\/main/ArchiSteamFarm\/releases\/tag\/${tag}/g" "out/${VARIANT}/Changelog.html" > "out/${VARIANT}/Changelog.html.new"
mv "out/${VARIANT}/Changelog.html.new" "out/${VARIANT}/Changelog.html"
fi
;;
esac
2024-03-26 16:12:50 +00:00
- name : Publish ASF-${{ matrix.variant }} on Windows
2021-05-20 21:36:02 +00:00
if : startsWith(matrix.os, 'windows-')
2022-12-15 17:46:37 +00:00
env :
2024-03-26 03:42:31 +00:00
VARIANT : ${{ matrix.variant }}
2022-12-15 17:46:37 +00:00
shell : pwsh
run : |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
2024-03-26 16:12:50 +00:00
if ($env:VARIANT -like 'generic*') {
$variantArgs = '-p:TargetLatestRuntimePatch=false', '-p:UseAppHost=false'
} else {
$variantArgs = '-p:PublishSingleFile=true', '-p:PublishTrimmed=true', '-r', "$env:VARIANT", '--self-contained'
2022-12-15 17:46:37 +00:00
}
2024-03-26 16:12:50 +00:00
dotnet publish ArchiSteamFarm -c "$env:CONFIGURATION" -o "out\$env:VARIANT" "-p:ASFVariant=$env:VARIANT" -p:ContinuousIntegrationBuild=true --nologo $variantArgs
2023-02-09 16:22:31 +00:00
2024-03-26 16:12:50 +00:00
if ($LastExitCode -ne 0) {
throw "Last command failed."
2022-12-15 17:46:37 +00:00
}
2024-03-26 16:12:50 +00:00
# Icon is available only in .exe Windows builds, we'll bundle the .ico file for other flavours
if (!(Test-Path "out\$env:VARIANT\ArchiSteamFarm.exe" -PathType Leaf)) {
Copy-Item 'resources\ASF.ico' "out\$env:VARIANT\ArchiSteamFarm.ico"
}
2021-05-20 21:36:02 +00:00
2024-03-26 17:51:11 +00:00
# Include extra logic for builds marked for release
if ($env:GITHUB_REF -like 'refs/tags/*') {
# Update link in Changelog.html accordingly
if (Test-Path "out\$env:VARIANT\Changelog.html" -PathType Leaf) {
$tag = $env:GITHUB_REF.Substring(10)
(Get-Content "out\$env:VARIANT\Changelog.html").Replace('ArchiSteamFarm/commits/main', "ArchiSteamFarm/releases/tag/$tag") | Set-Content "out\$env:VARIANT\Changelog.html"
}
}
2024-03-26 16:12:50 +00:00
- name : Publish bundled plugins on Unix
if : startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
2024-03-25 23:29:23 +00:00
env :
2024-03-26 03:42:31 +00:00
VARIANT : ${{ matrix.variant }}
2024-03-25 23:29:23 +00:00
shell : bash
run : |
set -euo pipefail
2024-03-26 16:12:50 +00:00
if [ "$VARIANT" = 'generic' ]; then
variantArgs="-p:TargetLatestRuntimePatch=false -p:UseAppHost=false"
else
variantArgs="-r $VARIANT"
fi
2024-03-25 23:29:23 +00:00
2024-03-26 16:12:50 +00:00
for plugin in $PLUGINS_BUNDLED; do
dotnet publish "$plugin" -c "$CONFIGURATION" -o "out/${VARIANT}/plugins/${plugin}" "-p:ASFVariant=${VARIANT}" -p:ContinuousIntegrationBuild=true --nologo $variantArgs
done
2024-03-25 23:29:23 +00:00
2024-03-26 16:12:50 +00:00
- name : Publish bundled plugins on Windows
if : startsWith(matrix.os, 'windows-')
env :
VARIANT : ${{ matrix.variant }}
shell : pwsh
run : |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
2024-03-25 23:29:23 +00:00
2024-03-26 16:12:50 +00:00
if ($env:VARIANT -like 'generic*') {
$variantArgs = '-p:TargetLatestRuntimePatch=false', '-p:UseAppHost=false'
} else {
$variantArgs = '-r', "$env:VARIANT"
2024-03-25 23:29:23 +00:00
}
2024-03-26 16:12:50 +00:00
foreach ($plugin in $env:PLUGINS_BUNDLED.Split([char[]] $null, [System.StringSplitOptions]::RemoveEmptyEntries)) {
dotnet publish "$plugin" -c "$env:CONFIGURATION" -o "out\$env:VARIANT\plugins\$plugin" "-p:ASFVariant=$env:VARIANT" -p:ContinuousIntegrationBuild=true --nologo $variantArgs
2024-03-25 23:29:23 +00:00
2024-03-26 16:12:50 +00:00
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
}
2024-03-25 23:29:23 +00:00
2024-03-26 16:12:50 +00:00
- name : Zip ASF-${{ matrix.variant }} on Unix
2021-05-20 21:36:02 +00:00
if : startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
env :
2023-02-09 16:22:31 +00:00
VARIANT : ${{ matrix.variant }}
2022-11-16 12:41:26 +00:00
shell : bash
2021-05-20 21:36:02 +00:00
run : |
2022-11-16 12:41:26 +00:00
set -euo pipefail
2021-05-20 21:36:02 +00:00
2023-02-09 16:22:31 +00:00
# By default use fastest compression
seven_zip_args="-mx=1"
zip_args="-1"
2022-11-14 23:12:41 +00:00
2024-03-26 17:51:11 +00:00
# Tweak compression args for release publishing
2023-02-09 16:22:31 +00:00
case "$GITHUB_REF" in
"refs/tags/" *)
seven_zip_args="-mx=9 -mfb=258 -mpass=15"
zip_args="-9"
;;
esac
# Create the final zip file
case "$(uname -s)" in
"Darwin" )
# We prefer to use zip on macOS as 7z implementation on that OS doesn't handle file permissions (chmod +x)
if command -v zip >/dev/null; then
(
cd "${GITHUB_WORKSPACE}/out/${VARIANT}"
zip -q -r $zip_args "../ASF-${VARIANT}.zip" .
)
else
2024-03-25 23:29:23 +00:00
7z a -bd -slp -tzip -mm=Deflate $seven_zip_args "out/ASF-${VARIANT}.zip" "${GITHUB_WORKSPACE}/out/${VARIANT}/*"
2023-02-09 16:22:31 +00:00
fi
;;
*)
if command -v 7z >/dev/null; then
7z a -bd -slp -tzip -mm=Deflate $seven_zip_args "out/ASF-${VARIANT}.zip" "${GITHUB_WORKSPACE}/out/${VARIANT}/*"
2024-03-25 23:29:23 +00:00
else
2023-02-09 16:22:31 +00:00
(
cd "${GITHUB_WORKSPACE}/out/${VARIANT}"
zip -q -r $zip_args "../ASF-${VARIANT}.zip" .
)
fi
;;
esac
2021-05-20 21:36:02 +00:00
2024-03-26 16:12:50 +00:00
- name : Zip ASF-${{ matrix.variant }} on Windows
2021-05-20 21:36:02 +00:00
if : startsWith(matrix.os, 'windows-')
env :
2023-02-09 16:22:31 +00:00
VARIANT : ${{ matrix.variant }}
2021-05-20 21:36:02 +00:00
shell : pwsh
run : |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
2023-02-09 16:22:31 +00:00
# By default use fastest compression
$compressionArgs = '-mx=1'
2021-08-01 19:31:49 +00:00
2024-03-26 17:51:11 +00:00
# Tweak compression args for release publishing
2023-02-09 16:22:31 +00:00
if ($env:GITHUB_REF -like 'refs/tags/*') {
$compressionArgs = '-mx=9', '-mfb=258', '-mpass=15'
}
2021-08-01 17:27:16 +00:00
2023-02-09 16:22:31 +00:00
# Create the final zip file
7z a -bd -slp -tzip -mm=Deflate $compressionArgs "out\ASF-$env:VARIANT.zip" "$env:GITHUB_WORKSPACE\out\$env:VARIANT\*"
2021-08-01 17:27:16 +00:00
2023-02-09 16:22:31 +00:00
if ($LastExitCode -ne 0) {
throw "Last command failed."
2021-05-20 21:36:02 +00:00
}
2023-02-09 16:22:31 +00:00
# We can aid non-windows users by adding chmod +x flag to appropriate executables directly in the zip file
# This is ALMOST a hack, but works reliably enough
if (Test-Path "tools\zip_exec\zip_exec.exe" -PathType Leaf) {
$executableFiles = @()
2021-12-17 13:09:55 +00:00
2023-02-09 16:22:31 +00:00
if ($env:VARIANT -like 'generic*') {
$executableFiles += 'ArchiSteamFarm.sh', 'ArchiSteamFarm-Service.sh'
} elseif (($env:VARIANT -like 'linux*') -or ($env:VARIANT -like 'osx*')) {
$executableFiles += 'ArchiSteamFarm', 'ArchiSteamFarm-Service.sh'
}
2021-12-17 13:09:55 +00:00
2023-02-09 16:22:31 +00:00
foreach ($executableFile in $executableFiles) {
tools\zip_exec\zip_exec.exe "out\ASF-$env:VARIANT.zip" "$executableFile"
2021-12-17 13:09:55 +00:00
2023-02-09 16:22:31 +00:00
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
2021-12-17 13:09:55 +00:00
}
2021-05-20 21:36:02 +00:00
}
2023-02-09 16:22:31 +00:00
- name : Upload ASF-${{ matrix.variant }}
2024-02-06 13:05:46 +00:00
uses : actions/upload-artifact@v4.3.1
2021-05-20 21:36:02 +00:00
with :
2024-03-26 03:42:31 +00:00
if-no-files-found : error
2023-02-09 16:22:31 +00:00
name : ${{ matrix.os }}_ASF-${{ matrix.variant }}
path : out/ASF-${{ matrix.variant }}.zip
2021-05-20 21:36:02 +00:00
2024-03-26 16:12:50 +00:00
- name : Publish included plugins on Unix
if : ${{ matrix.os == 'ubuntu-latest' && matrix.variant == 'generic' }}
env :
VARIANT : ${{ matrix.variant }}
shell : bash
run : |
set -euo pipefail
2024-03-26 17:51:11 +00:00
# By default use fastest compression
seven_zip_args="-mx=1"
zip_args="-1"
2024-03-26 16:12:50 +00:00
2024-03-26 17:51:11 +00:00
# Tweak compression args for release publishing
case "$GITHUB_REF" in
"refs/tags/" *)
seven_zip_args="-mx=9 -mfb=258 -mpass=15"
zip_args="-9"
;;
esac
2024-03-26 16:12:50 +00:00
2024-03-26 17:51:11 +00:00
for plugin in $PLUGINS_INCLUDED; do
dotnet publish "$plugin" -c "$CONFIGURATION" -o "out/${plugin}" "-p:ASFVariant=${VARIANT}" -p:ContinuousIntegrationBuild=true -p:TargetLatestRuntimePatch=false -p:UseAppHost=false --nologo
2024-03-26 16:12:50 +00:00
# Create the final zip file
if command -v 7z >/dev/null; then
2024-03-26 17:51:11 +00:00
7z a -bd -slp -tzip -mm=Deflate $seven_zip_args "out/${plugin}.zip" "${GITHUB_WORKSPACE}/out/${plugin}/*"
2024-03-26 16:12:50 +00:00
else
(
2024-03-26 17:51:11 +00:00
cd "${GITHUB_WORKSPACE}/out/${plugin}"
zip -q -r $zip_args "../${plugin}.zip" .
2024-03-26 16:12:50 +00:00
)
fi
done
- name : Upload ArchiSteamFarm.OfficialPlugins.Monitoring
if : ${{ matrix.os == 'ubuntu-latest' && matrix.variant == 'generic' }}
uses : actions/upload-artifact@v4.3.1
with :
if-no-files-found : error
name : ArchiSteamFarm.OfficialPlugins.Monitoring
path : out/ArchiSteamFarm.OfficialPlugins.Monitoring.zip
2021-08-01 19:31:49 +00:00
release :
if : ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
2023-02-09 16:22:31 +00:00
needs : publish-asf
2021-08-01 19:31:49 +00:00
runs-on : ubuntu-latest
2023-11-19 18:33:42 +00:00
permissions :
contents : write
2021-08-01 19:31:49 +00:00
steps :
- name : Checkout code
2023-10-17 17:26:45 +00:00
uses : actions/checkout@v4.1.1
2023-09-04 17:19:48 +00:00
with :
show-progress : false
2021-08-01 19:31:49 +00:00
2022-11-14 23:27:52 +00:00
- name : Download ASF-generic artifact from ubuntu-latest
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2021-08-01 19:31:49 +00:00
with :
2022-11-14 23:27:52 +00:00
name : ubuntu-latest_ASF-generic
2021-08-01 19:31:49 +00:00
path : out
2022-11-14 23:27:52 +00:00
- name : Download ASF-linux-arm artifact from ubuntu-latest
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2021-08-01 19:31:49 +00:00
with :
2022-11-14 23:27:52 +00:00
name : ubuntu-latest_ASF-linux-arm
2021-08-01 19:31:49 +00:00
path : out
2022-11-14 23:27:52 +00:00
- name : Download ASF-linux-arm64 artifact from ubuntu-latest
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2021-08-01 19:31:49 +00:00
with :
2022-11-14 23:27:52 +00:00
name : ubuntu-latest_ASF-linux-arm64
2021-08-01 19:31:49 +00:00
path : out
2022-11-14 23:27:52 +00:00
- name : Download ASF-linux-x64 artifact from ubuntu-latest
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2021-08-01 19:31:49 +00:00
with :
2022-11-14 23:27:52 +00:00
name : ubuntu-latest_ASF-linux-x64
2021-08-01 19:31:49 +00:00
path : out
2022-11-17 13:31:33 +00:00
- name : Download ASF-osx-arm64 artifact from macos-latest
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2021-11-10 19:36:09 +00:00
with :
2022-11-17 13:31:33 +00:00
name : macos-latest_ASF-osx-arm64
2021-11-10 19:36:09 +00:00
path : out
2022-11-17 13:31:33 +00:00
- name : Download ASF-osx-x64 artifact from macos-latest
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2021-08-01 19:31:49 +00:00
with :
2022-11-17 13:31:33 +00:00
name : macos-latest_ASF-osx-x64
2021-08-01 19:31:49 +00:00
path : out
2023-02-09 13:08:39 +00:00
- name : Download ASF-win-arm64 artifact from windows-latest
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2023-02-09 13:08:39 +00:00
with :
name : windows-latest_ASF-win-arm64
path : out
2022-04-04 20:06:03 +00:00
- name : Download ASF-win-x64 artifact from windows-latest
2024-03-02 04:14:53 +00:00
uses : actions/download-artifact@v4.1.4
2021-08-01 19:31:49 +00:00
with :
2022-04-04 20:06:03 +00:00
name : windows-latest_ASF-win-x64
2021-08-01 19:31:49 +00:00
path : out
2024-04-03 20:07:54 +00:00
# TODO: Enable me when documentation is ready and plugin is stable for usage
# - name: Download ArchiSteamFarm.OfficialPlugins.Monitoring artifact
# uses: actions/download-artifact@v4.1.4
# with:
# name: ArchiSteamFarm.OfficialPlugins.Monitoring
# path: out
2024-03-26 16:12:50 +00:00
2021-08-01 22:45:58 +00:00
- name : Import GPG key for signing
2023-12-26 20:02:14 +00:00
uses : crazy-max/ghaction-import-gpg@v6.1.0
2021-08-01 22:45:58 +00:00
with :
2021-09-05 00:36:12 +00:00
gpg_private_key : ${{ secrets.ARCHIBOT_GPG_PRIVATE_KEY }}
2021-08-01 22:45:58 +00:00
- name : Generate SHA-512 checksums and signature
shell : sh
run : |
set -eu
(
cd "out"
sha512sum *.zip > SHA512SUMS
gpg -a -b -o SHA512SUMS.sign SHA512SUMS
)
- name : Upload SHA512SUMS
2024-02-06 13:05:46 +00:00
uses : actions/upload-artifact@v4.3.1
2021-08-01 22:45:58 +00:00
with :
2024-03-26 03:42:31 +00:00
if-no-files-found : error
2021-08-01 22:45:58 +00:00
name : SHA512SUMS
path : out/SHA512SUMS
- name : Upload SHA512SUMS.sign
2024-02-06 13:05:46 +00:00
uses : actions/upload-artifact@v4.3.1
2021-08-01 22:45:58 +00:00
with :
2024-03-26 03:42:31 +00:00
if-no-files-found : error
2021-08-01 22:45:58 +00:00
name : SHA512SUMS.sign
path : out/SHA512SUMS.sign
2021-05-20 21:36:02 +00:00
- name : Create ArchiSteamFarm GitHub release
2024-02-07 16:15:35 +00:00
uses : ncipollo/release-action@v1.14.0
2021-05-20 21:36:02 +00:00
with :
2024-03-18 14:45:37 +00:00
allowUpdates : true
2024-03-18 14:44:36 +00:00
artifactErrorsFailBuild : true
2023-02-26 12:43:25 +00:00
artifacts : "out/*"
bodyFile : .github/RELEASE_TEMPLATE.md
makeLatest : false
name : ArchiSteamFarm V${{ github.ref_name }}
2021-05-20 21:36:02 +00:00
prerelease : true
2023-02-26 12:43:25 +00:00
token : ${{ secrets.ARCHIBOT_GITHUB_TOKEN }}
2024-03-18 14:45:37 +00:00
updateOnlyUnreleased : true