11name : " Update.Unturned.Redist"
22
33on :
4- # schedule:
5- # - cron: "*/15 * * * *"
4+ schedule :
5+ - cron : " */15 * * * *" # Run every 15 minutes
66 workflow_dispatch :
77 inputs :
88 variant :
@@ -27,31 +27,61 @@ concurrency:
2727 cancel-in-progress : false
2828
2929jobs :
30+ determine-variants :
31+ name : " Determine Variants to Run"
32+ runs-on : ubuntu-latest
33+ outputs :
34+ variants : ${{ steps.set_variants.outputs.variants }}
35+ steps :
36+ - name : Set variants
37+ id : set_variants
38+ run : |
39+ if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
40+ # For dispatch, only run the selected variant
41+ variant="${{ github.event.inputs.variant }}"
42+ echo "variants=[\"$variant\"]" >> $GITHUB_OUTPUT
43+ else
44+ # For scheduled runs, use all variants in desired order
45+ all_variants=("client" "server" "server-preview" "client-preview" "server-preview-old" "client-preview-old")
46+ variants_json=$(printf '%s\n' "${all_variants[@]}" | jq -R . | jq -s -c .)
47+ echo "variants=$variants_json" >> $GITHUB_OUTPUT
48+ fi
49+
3050 update_redist :
31- name : " Update ${{ matrix.variant }} "
51+ name : " Update Redist "
3252 runs-on : ubuntu-latest
53+ needs : determine-variants
3354 strategy :
3455 matrix :
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
56+ variant : ${{ fromJson(needs.determine-variants.outputs.variants) }}
57+ # Run sequentially, one variant at a time
58+ max-parallel : 1
4359 fail-fast : false
44-
45- env :
46- APP_ID : ${{ (matrix.variant == 'client' || matrix.variant == 'client-preview' || matrix.variant == 'client-preview-old') && '304930' || '1110390' }}
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' }}
4860
4961 steps :
62+ - name : Determine APP_ID and REDIST_DIR
63+ id : vars
64+ run : |
65+ if [[ "${{ matrix.variant }}" == client || "${{ matrix.variant }}" == client-preview || "${{ matrix.variant }}" == client-preview-old ]]; then
66+ echo "APP_ID=304930" >> $GITHUB_ENV
67+ else
68+ echo "APP_ID=1110390" >> $GITHUB_ENV
69+ fi
70+
71+ case "${{ matrix.variant }}" in
72+ client-preview) echo "REDIST_DIR=redist/redist-client" >> $GITHUB_ENV ;;
73+ server-preview) echo "REDIST_DIR=redist/redist-server" >> $GITHUB_ENV ;;
74+ client-preview-old) echo "REDIST_DIR=redist/redist-client-preview-old" >> $GITHUB_ENV ;;
75+ server-preview-old) echo "REDIST_DIR=redist/redist-server-preview-old" >> $GITHUB_ENV ;;
76+ client) echo "REDIST_DIR=redist/redist-client" >> $GITHUB_ENV ;;
77+ server) echo "REDIST_DIR=redist/redist-server" >> $GITHUB_ENV ;;
78+ *) echo "REDIST_DIR=redist/redist-unknown" >> $GITHUB_ENV ;;
79+ esac
80+
5081 - name : Checkout repository
5182 uses : actions/checkout@v4
5283 with :
5384 ref : master
54- # Fetch entire history for proper version comparison
5585 fetch-depth : 0
5686
5787 - name : Download update tool
@@ -101,7 +131,6 @@ jobs:
101131 git config --global user.email "[email protected] " 102132 git config --global user.name "sunnamed434"
103133
104- # Check for actual changes before committing
105134 if git diff --quiet; then
106135 echo "No changes detected for ${{ matrix.variant }}"
107136 else
0 commit comments