Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 19 additions & 3 deletions .github/workflows/check_for_updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@ jobs:
latest_sixtyfour: ${{ steps.latest_versions.outputs.sixtyfour }}
latest_dev: ${{ steps.latest_versions.outputs.dev }}
latest_prerelease: ${{ steps.latest_versions.outputs.prerelease }}
latest_network_test: ${{ steps.latest_versions.outputs.network_test }}
needs_update_public: ${{ steps.needs_update.outputs.public }}
needs_update_sixtyfour: ${{ steps.needs_update.outputs.sixtyfour }}
needs_update_dev: ${{ steps.needs_update.outputs.dev }}
needs_update_prerelease: ${{ steps.needs_update.outputs.prerelease }}
needs_update_network_test: ${{ steps.needs_update.outputs.network_test }}

any_update_needed: ${{ steps.needs_update.outputs.any }}
steps:
Expand Down Expand Up @@ -73,13 +75,15 @@ jobs:
sixtyfour=$(grep -A 2 '"x86-64"' "$struct" | grep '"buildid"' | awk '{print $2}' | sed 's/"//g')
dev=$(grep -A 2 '"dev"' "$struct" | grep '"buildid"' | awk '{print $2}' | sed 's/"//g')
prerelease=$(grep -A 2 '"prerelease"' "$struct" | grep '"buildid"' | awk '{print $2}' | sed 's/"//g')
network_test=$(grep -A 2 '"network_test"' "$struct" | grep '"buildid"' | awk '{print $2}' | sed 's/"//g')

echo "Latest Public ID: '$public'"
echo "Latest 64bit ID: '$sixtyfour'"
echo "Latest Dev ID: '$dev'"
echo "Latest prerelease ID: '$prerelease'"
echo "Latest network_test ID: '$network_test'"

if [ -z "$public" ] || [ -z "$sixtyfour" ] || [ -z "$dev" ] || [ -z "$prerelease" ]; then
if [ -z "$public" ] || [ -z "$sixtyfour" ] || [ -z "$dev" ] || [ -z "$prerelease" ] || [ -z "$network_test" ]; then
echo "Failed to get one or more latest build IDs"
echo "Raw Output from SteamCMD:"
cat "$GITHUB_WORKSPACE/raw_output.txt"
Expand All @@ -91,6 +95,7 @@ jobs:
echo "sixtyfour=$sixtyfour" >> $GITHUB_OUTPUT
echo "dev=$dev" >> $GITHUB_OUTPUT
echo "prerelease=$prerelease" >> $GITHUB_OUTPUT
echo "network_test=$network_test" >> $GITHUB_OUTPUT

- name: Checkout last build branch
uses: actions/checkout@v4
Expand All @@ -105,16 +110,19 @@ jobs:
sixtyfour=$(cat $GITHUB_WORKSPACE/build_versions/last_64bit_build.txt 2>/dev/null || echo "0")
dev=$(cat $GITHUB_WORKSPACE/build_versions/last_dev_build.txt 2>/dev/null || echo "0")
prerelease=$(cat $GITHUB_WORKSPACE/build_versions/last_prerelease_build.txt 2>/dev/null || echo "0")
network_test=$(cat $GITHUB_WORKSPACE/build_versions/last_network_test_build.txt 2>/dev/null || echo "0")

echo "Last Public ID built: '$public'"
echo "Last 64bit ID built: '$sixtyfour'"
echo "Last Dev ID built: '$dev'"
echo "Last prerelease ID built: '$prerelease'"
echo "Last network_test ID built: '$network_test'"

echo "public=$public" >> $GITHUB_OUTPUT
echo "sixtyfour=$sixtyfour" >> $GITHUB_OUTPUT
echo "dev=$dev" >> $GITHUB_OUTPUT
echo "prerelease=$prerelease" >> $GITHUB_OUTPUT
echo "network_test=$network_test" >> $GITHUB_OUTPUT

- name: Identify pending updates
id: needs_update
Expand All @@ -124,6 +132,7 @@ jobs:
needs_sixtyfour=$([[ "${{ steps.latest_versions.outputs.sixtyfour }}" != "${{ steps.last_versions.outputs.sixtyfour }}" ]] && echo "true" || echo "false")
needs_dev=$([[ "${{ steps.latest_versions.outputs.dev }}" != "${{ steps.last_versions.outputs.dev }}" ]] && echo "true" || echo "false")
needs_prerelease=$([[ "${{ steps.latest_versions.outputs.prerelease }}" != "${{ steps.last_versions.outputs.prerelease }}" ]] && echo "true" || echo "false")
needs_network_test=$([[ "${{ steps.latest_versions.outputs.network_test }}" != "${{ steps.last_versions.outputs.network_test }}" ]] && echo "true" || echo "false")

# If this was a manual run with the "force_rebuild" option, update them all regardless of if they're outdated
if [[ "${{ github.event_name }}" == "workflow_dispatch" && "${{ github.event.inputs.force_rebuild }}" == "true" ]]; then
Expand All @@ -132,21 +141,24 @@ jobs:
needs_sixtyfour="true"
needs_dev="true"
needs_prerelease="true"
needs_network_test="true"
fi

echo "Should build Public: '$needs_public'"
echo "Should build 64bit: '$needs_sixtyfour'"
echo "Should build Dev: '$needs_dev'"
echo "Should build Prerelease: '$needs_prerelease'"
echo "Should build Network_test: '$needs_network_test'"

echo "public=$needs_public" >> $GITHUB_OUTPUT
echo "sixtyfour=$needs_sixtyfour" >> $GITHUB_OUTPUT
echo "dev=$needs_dev" >> $GITHUB_OUTPUT
echo "prerelease=$needs_prerelease" >> $GITHUB_OUTPUT
echo "network_test=$needs_network_test" >> $GITHUB_OUTPUT

# Determine if any update is needed for the final commit step
any_update="false"
if [[ "$needs_public" == "true" || "$needs_sixtyfour" == "true" || "$needs_dev" == "true" || "$needs_prerelease" == "true" ]]; then
if [[ "$needs_public" == "true" || "$needs_sixtyfour" == "true" || "$needs_dev" == "true" || "$needs_prerelease" == "true" || "$needs_network_test" == "true" ]]; then
any_update="true"
fi
echo "Any update needed: $any_update"
Expand All @@ -159,7 +171,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branch: [public, x86-64, dev, prerelease]
branch: [public, x86-64, dev, prerelease, network_test]
include:
- branch: public
needs_update_flag: ${{ needs.check_updates.outputs.needs_update_public }}
Expand All @@ -173,6 +185,9 @@ jobs:
- branch: prerelease
needs_update_flag: ${{ needs.check_updates.outputs.needs_update_prerelease }}
game_version: ${{ needs.check_updates.outputs.latest_prerelease }}
- branch: network_test
needs_update_flag: ${{ needs.check_updates.outputs.needs_update_network_test }}
game_version: ${{ needs.check_updates.outputs.latest_network_test }}

steps:
- name: Checkout Full Repo
Expand Down Expand Up @@ -212,6 +227,7 @@ jobs:
echo "${{ needs.check_updates.outputs.latest_sixtyfour }}" > ./last_64bit_build.txt
echo "${{ needs.check_updates.outputs.latest_dev }}" > ./last_dev_build.txt
echo "${{ needs.check_updates.outputs.latest_prerelease }}" > ./last_prerelease_build.txt
echo "${{ needs.check_updates.outputs.latest_network_test }}" > ./last_network_test_build.txt

git config user.name "github-actions"
git config user.email "github-actions@github.com"
Expand Down