Skip to content

Commit 2437a87

Browse files
committed
Fix workflow
1 parent 7673821 commit 2437a87

File tree

1 file changed

+40
-115
lines changed

1 file changed

+40
-115
lines changed

.github/workflows/Update.Unturned.Redist.yaml

Lines changed: 40 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,7 @@ name: "Update.Unturned.Redist"
22

33
on:
44
schedule:
5-
- cron: "*/9 * * * *" # Client
6-
- cron: "*/16 * * * *" # Server
7-
- cron: "*/12 * * * *" # Server Preview Old
8-
- cron: "*/6 * * * *" # Client Preview Old
9-
- cron: "*/8 * * * *" # Server Preview
10-
- cron: "*/7 * * * *" # Client Preview
5+
- cron: "*/15 * * * *"
116
workflow_dispatch:
127
inputs:
138
variant:
@@ -28,100 +23,38 @@ permissions:
2823
packages: write
2924

3025
concurrency:
31-
group: unturned-redist-update
26+
group: unturned-redist-update-${{ github.ref }}
3227
cancel-in-progress: false
3328

3429
jobs:
35-
determine-variant:
36-
name: "Determine Variant"
37-
runs-on: ubuntu-latest
38-
outputs:
39-
variants: ${{ steps.set-variants.outputs.variants }}
40-
steps:
41-
- name: Set variants based on trigger
42-
id: set-variants
43-
run: |
44-
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
45-
case "${{ github.event.inputs.variant }}" in
46-
"client")
47-
echo 'variants=["client"]' >> $GITHUB_OUTPUT
48-
;;
49-
"server")
50-
echo 'variants=["server"]' >> $GITHUB_OUTPUT
51-
;;
52-
"server-preview")
53-
echo 'variants=["server-preview"]' >> $GITHUB_OUTPUT
54-
;;
55-
"client-preview")
56-
echo 'variants=["client-preview"]' >> $GITHUB_OUTPUT
57-
;;
58-
"server-preview-old")
59-
echo 'variants=["server-preview-old"]' >> $GITHUB_OUTPUT
60-
;;
61-
"client-preview-old")
62-
echo 'variants=["client-preview-old"]' >> $GITHUB_OUTPUT
63-
;;
64-
esac
65-
else
66-
# For scheduled runs, determine which variant based on current time
67-
current_minute=$(date +%M)
68-
remainder_9=$((current_minute % 9))
69-
remainder_16=$((current_minute % 16))
70-
remainder_12=$((current_minute % 12))
71-
remainder_6=$((current_minute % 6))
72-
remainder_8=$((current_minute % 8))
73-
remainder_7=$((current_minute % 7))
74-
75-
variants=()
76-
if [ $remainder_9 -eq 0 ]; then
77-
variants+=("client")
78-
fi
79-
if [ $remainder_16 -eq 0 ]; then
80-
variants+=("server")
81-
fi
82-
if [ $remainder_12 -eq 0 ]; then
83-
variants+=("server-preview-old")
84-
fi
85-
if [ $remainder_6 -eq 0 ]; then
86-
variants+=("client-preview-old")
87-
fi
88-
if [ $remainder_8 -eq 0 ]; then
89-
variants+=("server-preview")
90-
fi
91-
if [ $remainder_7 -eq 0 ]; then
92-
variants+=("client-preview")
93-
fi
94-
95-
if [ ${#variants[@]} -eq 0 ]; then
96-
echo "No variants to run"
97-
echo 'variants=["none"]' >> $GITHUB_OUTPUT
98-
else
99-
# Convert array to JSON format
100-
json_variants=$(printf '%s\n' "${variants[@]}" | jq -R . | jq -cs .)
101-
echo "variants=$json_variants" >> "$GITHUB_OUTPUT"
102-
fi
103-
fi
104-
10530
update_redist:
10631
name: "Update ${{ matrix.variant }}"
10732
runs-on: ubuntu-latest
108-
needs: determine-variant
109-
if: ${{ needs.determine-variant.outputs.variants != '["none"]' }}
11033
strategy:
11134
matrix:
112-
variant: ${{ fromJson(needs.determine-variant.outputs.variants) }}
35+
variant:
36+
- client
37+
- server
38+
- server-preview
39+
- client-preview
40+
- server-preview-old
41+
- client-preview-old
42+
# Run all variants in parallel without failing entire workflow
43+
fail-fast: false
11344

11445
env:
11546
APP_ID: ${{ (matrix.variant == 'client' || matrix.variant == 'client-preview' || matrix.variant == 'client-preview-old') && '304930' || '1110390' }}
116-
REDIST_DIR: ${{ matrix.variant == 'client-preview' && 'redist/redist-client' || matrix.variant == 'server-preview' && 'redist/redist-server' || format('redist/redist-{0}', matrix.variant) }}
47+
REDIST_DIR: ${{ matrix.variant == 'client-preview' && 'redist/redist-client' || matrix.variant == 'server-preview' && 'redist/redist-server' || matrix.variant == 'client-preview-old' && 'redist/redist-client-preview-old' || matrix.variant == 'server-preview-old' && 'redist/redist-server-preview-old' || matrix.variant == 'client' && 'redist/redist-client' || matrix.variant == 'server' && 'redist/redist-server' || 'redist/redist-unknown' }}
11748

11849
steps:
119-
- name: Checkout
50+
- name: Checkout repository
12051
uses: actions/checkout@v4
12152
with:
12253
ref: master
54+
# Fetch entire history for proper version comparison
55+
fetch-depth: 0
12356

124-
- name: Download tool release
57+
- name: Download update tool
12558
uses: robinraju/release-downloader@v1
12659
with:
12760
repository: RocketModFix/UnturnedRedistUpdateTool
@@ -140,51 +73,43 @@ jobs:
14073
dotnet-version: 9.x
14174

14275
- name: Setup SteamCMD
143-
id: setup-steamcmd
14476
uses: CyberAndrii/setup-steamcmd@v1
14577

146-
- name: Update app
147-
if: ${{ matrix.variant == 'client' || matrix.variant == 'server' }}
148-
run: steamcmd +force_install_dir $GITHUB_WORKSPACE +login ${{ secrets.STEAM_USERNAME }} ${{ secrets.STEAM_PASSWORD }} +app_update $APP_ID -validate +quit
149-
150-
- name: Update app (preview)
151-
if: ${{ matrix.variant == 'client-preview' || matrix.variant == 'server-preview' || matrix.variant == 'client-preview-old' || matrix.variant == 'server-preview-old' }}
152-
run: steamcmd +force_install_dir $GITHUB_WORKSPACE +login ${{ secrets.STEAM_USERNAME }} ${{ secrets.STEAM_PASSWORD }} +app_update $APP_ID -beta preview -validate +quit
153-
154-
- name: Run auto-updater (force)
155-
if: ${{ github.event_name == 'workflow_dispatch' }}
78+
- name: Update game files
15679
run: |
157-
if [[ "${{ matrix.variant }}" == "client-preview" || "${{ matrix.variant }}" == "server-preview" ]]; then
158-
dotnet redist_tool/UnturnedRedistUpdateTool.dll "$GITHUB_WORKSPACE" "$GITHUB_WORKSPACE/$REDIST_DIR" "$APP_ID" --force --preview
80+
if [[ "${{ matrix.variant }}" == "client" || "${{ matrix.variant }}" == "server" ]]; then
81+
steamcmd +force_install_dir $GITHUB_WORKSPACE +login ${{ secrets.STEAM_USERNAME }} ${{ secrets.STEAM_PASSWORD }} +app_update $APP_ID -validate +quit
15982
else
160-
dotnet redist_tool/UnturnedRedistUpdateTool.dll "$GITHUB_WORKSPACE" "$GITHUB_WORKSPACE/$REDIST_DIR" "$APP_ID" --force
83+
steamcmd +force_install_dir $GITHUB_WORKSPACE +login ${{ secrets.STEAM_USERNAME }} ${{ secrets.STEAM_PASSWORD }} +app_update $APP_ID -beta preview -validate +quit
16184
fi
16285
163-
- name: Run auto-updater (schedule)
164-
if: ${{ github.event_name == 'schedule' }}
86+
- name: Run redist updater
16587
run: |
88+
flags=""
89+
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
90+
flags+=" --force"
91+
fi
16692
if [[ "${{ matrix.variant }}" == "client-preview" || "${{ matrix.variant }}" == "server-preview" ]]; then
167-
dotnet redist_tool/UnturnedRedistUpdateTool.dll "$GITHUB_WORKSPACE" "$GITHUB_WORKSPACE/$REDIST_DIR" "$APP_ID" --preview
168-
else
169-
dotnet redist_tool/UnturnedRedistUpdateTool.dll "$GITHUB_WORKSPACE" "$GITHUB_WORKSPACE/$REDIST_DIR" "$APP_ID"
93+
flags+=" --preview"
17094
fi
95+
96+
dotnet redist_tool/UnturnedRedistUpdateTool.dll "$GITHUB_WORKSPACE" "$GITHUB_WORKSPACE/$REDIST_DIR" "$APP_ID" $flags
17197
172-
- name: Generate Commit Message
173-
run: |
174-
msg=$( cat .commit )
175-
echo "message=$msg" >> "$GITHUB_OUTPUT"
176-
id: generate_commit_message
177-
178-
- name: Commit and push changes
98+
- name: Commit changes
99+
if: success()
179100
run: |
180101
git config --global user.email "[email protected]"
181102
git config --global user.name "sunnamed434"
182-
183-
git add -A
184-
git reset README.md # Reset README.md, cause steamcmd override it.
185-
git status
186-
git commit -m "${{ steps.generate_commit_message.outputs.message }}"
187-
git push
103+
104+
# Check for actual changes before committing
105+
if git diff --quiet; then
106+
echo "No changes detected for ${{ matrix.variant }}"
107+
else
108+
git add -A
109+
git reset README.md # Reset README.md, cause steamcmd override it.
110+
git commit -m "Update redist: ${{ matrix.variant }}"
111+
git push
112+
fi
188113
189114
workflow-keepalive:
190115
if: github.event_name == 'schedule'

0 commit comments

Comments
 (0)