ArchiSteamFarm/.github/workflows/publish.yml

545 lines
19 KiB
YAML
Raw Normal View History

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
DOTNET_SDK_VERSION: 8.0
2021-06-30 14:26:33 +00:00
NODE_JS_VERSION: 'lts/*'
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
2023-11-19 18:33:42 +00:00
permissions: {}
jobs:
publish-asf-ui:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4.1.7
with:
2023-09-04 17:19:48 +00:00
show-progress: false
submodules: recursive
- name: Setup Node.js with npm
uses: actions/setup-node@v4.0.2
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
- name: Upload ASF-ui
uses: actions/upload-artifact@v4.3.3
with:
Squashed commit of the following: commit a5dd19643edd71ba3bcf9d120cc0ef20c1904104 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:43:50 2024 +0100 How about this one commit 7f44554a5433931339dc479a6101f942c5d5fb97 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:14:04 2024 +0100 Here as well commit 8593cd169949dc5876c1a3c4e4561d2ca38d7350 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:13:36 2024 +0100 Okay commit 9d17fee1f8f9bd3ae91f144761885d10e52b67ae Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:08:49 2024 +0100 Restore everything first commit 2835332dabf17a9dcdea3fc4f75e0c650add622c Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:00:33 2024 +0100 Ah right commit 85e2db40c8d6c184e5732724ea928486456767e4 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:59:31 2024 +0100 And this? commit 974cffb61782a4dbc83dfd93a66a627a69d04fd9 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:33:52 2024 +0100 Docker improvements commit 95f40803615f7056f59a522b068600dfbb87b4de Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:22:30 2024 +0100 Misc commit 0f5b526c603d5cfe0f29b4f4b8420d01f76161fc Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:09:42 2024 +0100 Make bundled plugins variant-specific Since we're including them as part of OS-specific builds, we can also limit their dependencies to those OSes exclusively. Might help cut some unnecessary dependencies.
2024-03-26 03:42:31 +00:00
if-no-files-found: error
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
2024-05-23 18:06:09 +00:00
environment: build
runs-on: ${{ matrix.os }}
permissions:
attestations: write
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v4.1.7
2023-09-04 17:19:48 +00:00
with:
show-progress: false
- name: Setup .NET Core
uses: actions/setup-dotnet@v4.0.0
with:
dotnet-version: ${{ env.DOTNET_SDK_VERSION }}
- name: Verify .NET Core
run: dotnet --info
- name: Download previously built ASF-ui
uses: actions/download-artifact@v4.1.7
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-')
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-')
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
- name: Prepare ArchiSteamFarm.OfficialPlugins.SteamTokenDumper on Unix
if: startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
env:
STEAM_TOKEN_DUMPER_TOKEN: ${{ secrets.STEAM_TOKEN_DUMPER_TOKEN }}
shell: sh
run: |
2021-08-01 11:00:14 +00:00
set -eu
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
- name: Prepare ArchiSteamFarm.OfficialPlugins.SteamTokenDumper on Windows
if: startsWith(matrix.os, 'windows-')
env:
STEAM_TOKEN_DUMPER_TOKEN: ${{ secrets.STEAM_TOKEN_DUMPER_TOKEN }}
shell: pwsh
run: |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
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"
}
- name: Publish ASF-${{ matrix.variant }} on Unix
if: startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
env:
Squashed commit of the following: commit a5dd19643edd71ba3bcf9d120cc0ef20c1904104 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:43:50 2024 +0100 How about this one commit 7f44554a5433931339dc479a6101f942c5d5fb97 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:14:04 2024 +0100 Here as well commit 8593cd169949dc5876c1a3c4e4561d2ca38d7350 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:13:36 2024 +0100 Okay commit 9d17fee1f8f9bd3ae91f144761885d10e52b67ae Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:08:49 2024 +0100 Restore everything first commit 2835332dabf17a9dcdea3fc4f75e0c650add622c Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:00:33 2024 +0100 Ah right commit 85e2db40c8d6c184e5732724ea928486456767e4 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:59:31 2024 +0100 And this? commit 974cffb61782a4dbc83dfd93a66a627a69d04fd9 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:33:52 2024 +0100 Docker improvements commit 95f40803615f7056f59a522b068600dfbb87b4de Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:22:30 2024 +0100 Misc commit 0f5b526c603d5cfe0f29b4f4b8420d01f76161fc Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:09:42 2024 +0100 Make bundled plugins variant-specific Since we're including them as part of OS-specific builds, we can also limit their dependencies to those OSes exclusively. Might help cut some unnecessary dependencies.
2024-03-26 03:42:31 +00:00
VARIANT: ${{ matrix.variant }}
shell: bash
run: |
set -euo pipefail
if [ "$VARIANT" = 'generic' ]; then
variantArgs="-p:TargetLatestRuntimePatch=false -p:UseAppHost=false"
else
variantArgs="-p:PublishSingleFile=true -p:PublishTrimmed=true -r $VARIANT --self-contained"
fi
dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -o "out/${VARIANT}" "-p:ASFVariant=${VARIANT}" -p:ContinuousIntegrationBuild=true --nologo $variantArgs
# Include .ico file for all platforms, since only Windows script can bundle it inside the exe
cp "resources/ASF.ico" "out/${VARIANT}/ArchiSteamFarm.ico"
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
- name: Publish ASF-${{ matrix.variant }} on Windows
if: startsWith(matrix.os, 'windows-')
env:
Squashed commit of the following: commit a5dd19643edd71ba3bcf9d120cc0ef20c1904104 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:43:50 2024 +0100 How about this one commit 7f44554a5433931339dc479a6101f942c5d5fb97 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:14:04 2024 +0100 Here as well commit 8593cd169949dc5876c1a3c4e4561d2ca38d7350 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:13:36 2024 +0100 Okay commit 9d17fee1f8f9bd3ae91f144761885d10e52b67ae Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:08:49 2024 +0100 Restore everything first commit 2835332dabf17a9dcdea3fc4f75e0c650add622c Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:00:33 2024 +0100 Ah right commit 85e2db40c8d6c184e5732724ea928486456767e4 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:59:31 2024 +0100 And this? commit 974cffb61782a4dbc83dfd93a66a627a69d04fd9 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:33:52 2024 +0100 Docker improvements commit 95f40803615f7056f59a522b068600dfbb87b4de Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:22:30 2024 +0100 Misc commit 0f5b526c603d5cfe0f29b4f4b8420d01f76161fc Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:09:42 2024 +0100 Make bundled plugins variant-specific Since we're including them as part of OS-specific builds, we can also limit their dependencies to those OSes exclusively. Might help cut some unnecessary dependencies.
2024-03-26 03:42:31 +00:00
VARIANT: ${{ matrix.variant }}
shell: pwsh
run: |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
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'
}
dotnet publish ArchiSteamFarm -c "$env:CONFIGURATION" -o "out\$env:VARIANT" "-p:ASFVariant=$env:VARIANT" -p:ContinuousIntegrationBuild=true --nologo $variantArgs
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
# 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"
}
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"
}
}
- name: Publish bundled plugins on Unix
if: startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
env:
Squashed commit of the following: commit a5dd19643edd71ba3bcf9d120cc0ef20c1904104 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:43:50 2024 +0100 How about this one commit 7f44554a5433931339dc479a6101f942c5d5fb97 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:14:04 2024 +0100 Here as well commit 8593cd169949dc5876c1a3c4e4561d2ca38d7350 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:13:36 2024 +0100 Okay commit 9d17fee1f8f9bd3ae91f144761885d10e52b67ae Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:08:49 2024 +0100 Restore everything first commit 2835332dabf17a9dcdea3fc4f75e0c650add622c Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:00:33 2024 +0100 Ah right commit 85e2db40c8d6c184e5732724ea928486456767e4 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:59:31 2024 +0100 And this? commit 974cffb61782a4dbc83dfd93a66a627a69d04fd9 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:33:52 2024 +0100 Docker improvements commit 95f40803615f7056f59a522b068600dfbb87b4de Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:22:30 2024 +0100 Misc commit 0f5b526c603d5cfe0f29b4f4b8420d01f76161fc Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:09:42 2024 +0100 Make bundled plugins variant-specific Since we're including them as part of OS-specific builds, we can also limit their dependencies to those OSes exclusively. Might help cut some unnecessary dependencies.
2024-03-26 03:42:31 +00:00
VARIANT: ${{ matrix.variant }}
shell: bash
run: |
set -euo pipefail
if [ "$VARIANT" = 'generic' ]; then
variantArgs="-p:TargetLatestRuntimePatch=false -p:UseAppHost=false"
else
variantArgs="-r $VARIANT"
fi
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
- 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'
if ($env:VARIANT -like 'generic*') {
$variantArgs = '-p:TargetLatestRuntimePatch=false', '-p:UseAppHost=false'
} else {
$variantArgs = '-r', "$env:VARIANT"
}
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
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
}
- name: Zip ASF-${{ matrix.variant }} on Unix
if: startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-')
env:
VARIANT: ${{ matrix.variant }}
2022-11-16 12:41:26 +00:00
shell: bash
run: |
2022-11-16 12:41:26 +00:00
set -euo pipefail
# 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
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
7z a -bd -slp -tzip -mm=Deflate $seven_zip_args "out/ASF-${VARIANT}.zip" "${GITHUB_WORKSPACE}/out/${VARIANT}/*"
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}/*"
else
(
cd "${GITHUB_WORKSPACE}/out/${VARIANT}"
zip -q -r $zip_args "../ASF-${VARIANT}.zip" .
)
fi
;;
esac
- name: Zip ASF-${{ matrix.variant }} on Windows
if: startsWith(matrix.os, 'windows-')
env:
VARIANT: ${{ matrix.variant }}
shell: pwsh
run: |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
# By default use fastest compression
$compressionArgs = '-mx=1'
2024-03-26 17:51:11 +00:00
# Tweak compression args for release publishing
if ($env:GITHUB_REF -like 'refs/tags/*') {
$compressionArgs = '-mx=9', '-mfb=258', '-mpass=15'
}
# Create the final zip file
7z a -bd -slp -tzip -mm=Deflate $compressionArgs "out\ASF-$env:VARIANT.zip" "$env:GITHUB_WORKSPACE\out\$env:VARIANT\*"
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
# 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
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
foreach ($executableFile in $executableFiles) {
tools\zip_exec\zip_exec.exe "out\ASF-$env:VARIANT.zip" "$executableFile"
2021-12-17 13:09:55 +00:00
if ($LastExitCode -ne 0) {
throw "Last command failed."
}
2021-12-17 13:09:55 +00:00
}
}
- name: Generate artifact attestation for ASF-${{ matrix.variant }}.zip
2024-06-10 11:55:47 +00:00
if: ${{ github.event_name == 'push' }}
uses: actions/attest-build-provenance@v1.3.2
with:
subject-path: out/ASF-${{ matrix.variant }}.zip
- name: Upload ASF-${{ matrix.variant }}
uses: actions/upload-artifact@v4.3.3
with:
Squashed commit of the following: commit a5dd19643edd71ba3bcf9d120cc0ef20c1904104 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:43:50 2024 +0100 How about this one commit 7f44554a5433931339dc479a6101f942c5d5fb97 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:14:04 2024 +0100 Here as well commit 8593cd169949dc5876c1a3c4e4561d2ca38d7350 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:13:36 2024 +0100 Okay commit 9d17fee1f8f9bd3ae91f144761885d10e52b67ae Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:08:49 2024 +0100 Restore everything first commit 2835332dabf17a9dcdea3fc4f75e0c650add622c Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:00:33 2024 +0100 Ah right commit 85e2db40c8d6c184e5732724ea928486456767e4 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:59:31 2024 +0100 And this? commit 974cffb61782a4dbc83dfd93a66a627a69d04fd9 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:33:52 2024 +0100 Docker improvements commit 95f40803615f7056f59a522b068600dfbb87b4de Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:22:30 2024 +0100 Misc commit 0f5b526c603d5cfe0f29b4f4b8420d01f76161fc Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:09:42 2024 +0100 Make bundled plugins variant-specific Since we're including them as part of OS-specific builds, we can also limit their dependencies to those OSes exclusively. Might help cut some unnecessary dependencies.
2024-03-26 03:42:31 +00:00
if-no-files-found: error
name: ${{ matrix.os }}_ASF-${{ matrix.variant }}
path: out/ASF-${{ matrix.variant }}.zip
- 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 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 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
# 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}/*"
else
(
2024-03-26 17:51:11 +00:00
cd "${GITHUB_WORKSPACE}/out/${plugin}"
zip -q -r $zip_args "../${plugin}.zip" .
)
fi
done
- name: Generate artifact attestation for ArchiSteamFarm.OfficialPlugins.Monitoring
2024-06-10 11:55:47 +00:00
if: ${{ github.event_name == 'push' && matrix.os == 'ubuntu-latest' && matrix.variant == 'generic' }}
uses: actions/attest-build-provenance@v1.3.2
with:
subject-path: out/ArchiSteamFarm.OfficialPlugins.Monitoring.zip
- name: Upload ArchiSteamFarm.OfficialPlugins.Monitoring
if: ${{ matrix.os == 'ubuntu-latest' && matrix.variant == 'generic' }}
uses: actions/upload-artifact@v4.3.3
with:
if-no-files-found: error
name: ArchiSteamFarm.OfficialPlugins.Monitoring
path: out/ArchiSteamFarm.OfficialPlugins.Monitoring.zip
release:
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
needs: publish-asf
2024-05-23 18:06:09 +00:00
environment: release-github
runs-on: ubuntu-latest
2023-11-19 18:33:42 +00:00
permissions:
attestations: write
2023-11-19 18:33:42 +00:00
contents: write
id-token: write
2023-11-19 18:33:42 +00:00
steps:
- name: Checkout code
uses: actions/checkout@v4.1.7
2023-09-04 17:19:48 +00:00
with:
show-progress: false
2022-11-14 23:27:52 +00:00
- name: Download ASF-generic artifact from ubuntu-latest
uses: actions/download-artifact@v4.1.7
with:
2022-11-14 23:27:52 +00:00
name: ubuntu-latest_ASF-generic
path: out
2022-11-14 23:27:52 +00:00
- name: Download ASF-linux-arm artifact from ubuntu-latest
uses: actions/download-artifact@v4.1.7
with:
2022-11-14 23:27:52 +00:00
name: ubuntu-latest_ASF-linux-arm
path: out
2022-11-14 23:27:52 +00:00
- name: Download ASF-linux-arm64 artifact from ubuntu-latest
uses: actions/download-artifact@v4.1.7
with:
2022-11-14 23:27:52 +00:00
name: ubuntu-latest_ASF-linux-arm64
path: out
2022-11-14 23:27:52 +00:00
- name: Download ASF-linux-x64 artifact from ubuntu-latest
uses: actions/download-artifact@v4.1.7
with:
2022-11-14 23:27:52 +00:00
name: ubuntu-latest_ASF-linux-x64
path: out
2022-11-17 13:31:33 +00:00
- name: Download ASF-osx-arm64 artifact from macos-latest
uses: actions/download-artifact@v4.1.7
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
uses: actions/download-artifact@v4.1.7
with:
2022-11-17 13:31:33 +00:00
name: macos-latest_ASF-osx-x64
path: out
2023-02-09 13:08:39 +00:00
- name: Download ASF-win-arm64 artifact from windows-latest
uses: actions/download-artifact@v4.1.7
2023-02-09 13:08:39 +00:00
with:
name: windows-latest_ASF-win-arm64
path: out
- name: Download ASF-win-x64 artifact from windows-latest
uses: actions/download-artifact@v4.1.7
with:
name: windows-latest_ASF-win-x64
path: out
- name: Download ArchiSteamFarm.OfficialPlugins.Monitoring artifact
uses: actions/download-artifact@v4.1.7
with:
name: ArchiSteamFarm.OfficialPlugins.Monitoring
path: out
- name: Import GPG key for signing
uses: crazy-max/ghaction-import-gpg@v6.1.0
with:
gpg_private_key: ${{ secrets.ARCHIBOT_GPG_PRIVATE_KEY }}
- name: Generate SHA-512 checksums and signature
shell: sh
2024-04-26 18:57:57 +00:00
working-directory: out
run: |
set -eu
2024-04-26 18:57:57 +00:00
sha512sum *.zip > SHA512SUMS
gpg -a -b -o SHA512SUMS.sign SHA512SUMS
- name: Generate artifact attestation for SHA512SUMS
uses: actions/attest-build-provenance@v1.3.2
with:
subject-path: out/SHA512SUMS
- name: Upload SHA512SUMS
uses: actions/upload-artifact@v4.3.3
with:
Squashed commit of the following: commit a5dd19643edd71ba3bcf9d120cc0ef20c1904104 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:43:50 2024 +0100 How about this one commit 7f44554a5433931339dc479a6101f942c5d5fb97 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:14:04 2024 +0100 Here as well commit 8593cd169949dc5876c1a3c4e4561d2ca38d7350 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:13:36 2024 +0100 Okay commit 9d17fee1f8f9bd3ae91f144761885d10e52b67ae Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:08:49 2024 +0100 Restore everything first commit 2835332dabf17a9dcdea3fc4f75e0c650add622c Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:00:33 2024 +0100 Ah right commit 85e2db40c8d6c184e5732724ea928486456767e4 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:59:31 2024 +0100 And this? commit 974cffb61782a4dbc83dfd93a66a627a69d04fd9 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:33:52 2024 +0100 Docker improvements commit 95f40803615f7056f59a522b068600dfbb87b4de Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:22:30 2024 +0100 Misc commit 0f5b526c603d5cfe0f29b4f4b8420d01f76161fc Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:09:42 2024 +0100 Make bundled plugins variant-specific Since we're including them as part of OS-specific builds, we can also limit their dependencies to those OSes exclusively. Might help cut some unnecessary dependencies.
2024-03-26 03:42:31 +00:00
if-no-files-found: error
name: SHA512SUMS
path: out/SHA512SUMS
- name: Generate artifact attestation for SHA512SUMS.sign
uses: actions/attest-build-provenance@v1.3.2
with:
subject-path: out/SHA512SUMS.sign
- name: Upload SHA512SUMS.sign
uses: actions/upload-artifact@v4.3.3
with:
Squashed commit of the following: commit a5dd19643edd71ba3bcf9d120cc0ef20c1904104 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:43:50 2024 +0100 How about this one commit 7f44554a5433931339dc479a6101f942c5d5fb97 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:14:04 2024 +0100 Here as well commit 8593cd169949dc5876c1a3c4e4561d2ca38d7350 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:13:36 2024 +0100 Okay commit 9d17fee1f8f9bd3ae91f144761885d10e52b67ae Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:08:49 2024 +0100 Restore everything first commit 2835332dabf17a9dcdea3fc4f75e0c650add622c Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 03:00:33 2024 +0100 Ah right commit 85e2db40c8d6c184e5732724ea928486456767e4 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:59:31 2024 +0100 And this? commit 974cffb61782a4dbc83dfd93a66a627a69d04fd9 Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:33:52 2024 +0100 Docker improvements commit 95f40803615f7056f59a522b068600dfbb87b4de Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:22:30 2024 +0100 Misc commit 0f5b526c603d5cfe0f29b4f4b8420d01f76161fc Author: Łukasz Domeradzki <JustArchi@JustArchi.net> Date: Tue Mar 26 02:09:42 2024 +0100 Make bundled plugins variant-specific Since we're including them as part of OS-specific builds, we can also limit their dependencies to those OSes exclusively. Might help cut some unnecessary dependencies.
2024-03-26 03:42:31 +00:00
if-no-files-found: error
name: SHA512SUMS.sign
path: out/SHA512SUMS.sign
- name: Create ArchiSteamFarm GitHub release
uses: ncipollo/release-action@v1.14.0
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 }}
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