diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae97f62b4..d20bb05a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ on: [push, pull_request] env: DOTNET_CLI_TELEMETRY_OPTOUT: true DOTNET_NOLOGO: true - DOTNET_SDK_VERSION: 6.0.x + DOTNET_SDK_VERSION: 7.0.x jobs: main: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d4bbbd8c2..bfba3c244 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,8 +7,8 @@ env: CONFIGURATION: Release DOTNET_CLI_TELEMETRY_OPTOUT: true DOTNET_NOLOGO: true - DOTNET_SDK_VERSION: 6.0.x - NET_CORE_VERSION: net6.0 + DOTNET_SDK_VERSION: 7.0.x + NET_CORE_VERSION: net7.0 NET_FRAMEWORK_VERSION: net481 NODE_JS_VERSION: 'lts/*' STEAM_TOKEN_DUMPER_NAME: ArchiSteamFarm.OfficialPlugins.SteamTokenDumper @@ -119,6 +119,7 @@ jobs: - name: Publish ArchiSteamFarm on Unix if: startsWith(matrix.os, 'macos-') || startsWith(matrix.os, 'ubuntu-') env: + MAX_JOBS: 4 VARIANTS: generic linux-arm linux-arm64 linux-x64 osx-arm64 osx-x64 win-x64 # NOTE: When modifying variants, don't forget to update ASF_VARIANT definitions in SharedInfo.cs! shell: sh run: | @@ -195,20 +196,20 @@ jobs: esac } - jobs="" - for variant in $VARIANTS; do + while [ "$(jobs -p | wc -l)" -ge "$MAX_JOBS" ]; do + sleep 1 + done + publish "$variant" & - jobs="$jobs $!" done - for job in $jobs; do - wait "$job" - done + wait - name: Publish ArchiSteamFarm on Windows if: startsWith(matrix.os, 'windows-') env: + MAX_JOBS: 4 VARIANTS: generic generic-netf linux-arm linux-arm64 linux-x64 osx-arm64 osx-x64 win-x64 # NOTE: When modifying variants, don't forget to update ASF_VARIANT definitions in SharedInfo.cs! shell: pwsh run: | @@ -307,7 +308,7 @@ jobs: # Limit active jobs in parallel to help with memory usage $jobs = $(Get-Job -State Running) - while (@($jobs).Count -ge 5) { + while (@($jobs).Count -ge $env:MAX_JOBS) { Wait-Job -Job $jobs -Any | Out-Null $jobs = $(Get-Job -State Running) diff --git a/Directory.Build.props b/Directory.Build.props index 2299ed767..8db77d912 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -70,7 +70,7 @@ none true - CS8002,IL2026,IL2057,IL2072,IL2075,IL2104 + CS8002,IL2026,IL2057,IL2072,IL2075,IL2104,SYSLIB1045,SYSLIB1054 @@ -100,10 +100,10 @@ - net6.0;net481 + net7.0;net481 - net6.0 + net7.0 diff --git a/Dockerfile b/Dockerfile index 8feb138e6..a12314cc5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,14 +9,14 @@ RUN echo "node: $(node --version)" && \ npm ci --no-progress && \ npm run deploy --no-progress -FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:6.0${IMAGESUFFIX} AS build-dotnet +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0${IMAGESUFFIX} AS build-dotnet ARG CONFIGURATION=Release ARG STEAM_TOKEN_DUMPER_TOKEN ARG TARGETARCH ARG TARGETOS ENV DOTNET_CLI_TELEMETRY_OPTOUT true ENV DOTNET_NOLOGO true -ENV NET_CORE_VERSION net6.0 +ENV NET_CORE_VERSION net7.0 ENV STEAM_TOKEN_DUMPER_NAME ArchiSteamFarm.OfficialPlugins.SteamTokenDumper WORKDIR /app COPY --from=build-node /app/ASF-ui/dist ASF-ui/dist @@ -42,7 +42,7 @@ RUN dotnet --info && \ dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/result" -p:ASFVariant=docker -p:ContinuousIntegrationBuild=true -p:UseAppHost=false -r "$asf_variant" --nologo --no-self-contained && \ if [ -d "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}" ]; then mkdir -p "out/result/plugins/${STEAM_TOKEN_DUMPER_NAME}"; cp -pR "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/"* "out/result/plugins/${STEAM_TOKEN_DUMPER_NAME}"; fi -FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/aspnet:6.0${IMAGESUFFIX} AS runtime +FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/aspnet:7.0${IMAGESUFFIX} AS runtime ENV ASF_USER asf ENV ASPNETCORE_URLS= ENV DOTNET_CLI_TELEMETRY_OPTOUT true diff --git a/Dockerfile.Service b/Dockerfile.Service index 2393e8d1d..474414d6e 100644 --- a/Dockerfile.Service +++ b/Dockerfile.Service @@ -9,14 +9,14 @@ RUN echo "node: $(node --version)" && \ npm ci --no-progress && \ npm run deploy --no-progress -FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:6.0${IMAGESUFFIX} AS build-dotnet +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0${IMAGESUFFIX} AS build-dotnet ARG CONFIGURATION=Release ARG STEAM_TOKEN_DUMPER_TOKEN ARG TARGETARCH ARG TARGETOS ENV DOTNET_CLI_TELEMETRY_OPTOUT true ENV DOTNET_NOLOGO true -ENV NET_CORE_VERSION net6.0 +ENV NET_CORE_VERSION net7.0 ENV STEAM_TOKEN_DUMPER_NAME ArchiSteamFarm.OfficialPlugins.SteamTokenDumper WORKDIR /app COPY --from=build-node /app/ASF-ui/dist ASF-ui/dist @@ -42,7 +42,7 @@ RUN dotnet --info && \ dotnet publish ArchiSteamFarm -c "$CONFIGURATION" -f "$NET_CORE_VERSION" -o "out/result" "-p:ASFVariant=${asf_variant}" -p:ContinuousIntegrationBuild=true -p:PublishSingleFile=true -p:PublishTrimmed=true -r "$asf_variant" --nologo --self-contained && \ if [ -d "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}" ]; then mkdir -p "out/result/plugins/${STEAM_TOKEN_DUMPER_NAME}"; cp -pR "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/"* "out/result/plugins/${STEAM_TOKEN_DUMPER_NAME}"; fi -FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/runtime-deps:6.0${IMAGESUFFIX} AS runtime +FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/runtime-deps:7.0${IMAGESUFFIX} AS runtime ENV ASF_USER asf ENV ASPNETCORE_URLS= ENV DOTNET_CLI_TELEMETRY_OPTOUT true diff --git a/cc.sh b/cc.sh index 7636d586a..9da4d0a8f 100755 --- a/cc.sh +++ b/cc.sh @@ -1,7 +1,7 @@ #!/usr/bin/env sh set -eu -TARGET_FRAMEWORK="net6.0" +TARGET_FRAMEWORK="net7.0" MAIN_PROJECT="ArchiSteamFarm" STEAM_TOKEN_DUMPER_NAME="${MAIN_PROJECT}.OfficialPlugins.SteamTokenDumper"