Test version text

This commit is contained in:
2025-07-06 16:26:38 -07:00
parent f9411e8474
commit 7bc3de6012
6 changed files with 203 additions and 131 deletions

View File

@ -28,14 +28,36 @@ jobs:
apt-get install -y curl apt-get install -y curl
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs apt-get install -y nodejs
- name: Checkout - name: Checkout
uses: https://gitea.com/actions/checkout@v4 uses: https://gitea.com/actions/checkout@v4
with: with:
lfs: true lfs: true
- name: Setup - name: Setup
run: | run: |
mkdir -v -p ~/.local/share/godot/export_templates/ mkdir -v -p ~/.local/share/godot/export_templates/
mkdir -v -p ~/.config/ mkdir -v -p ~/.config/
- name: Populate Version Text
run: |
PROJECT_NAME="${EXPORT_NAME}"
COMMIT_NUMBER="${GITHUB_RUN_NUMBER}"
BRANCH_NAME="${GITHUB_REF_NAME}"
SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8)
# Update the version_text.gd file with these values
sed -i "s/var project_name: String = \"X\"/var project_name: String = \"${PROJECT_NAME}\"/" ${PROJECT_PATH}/game/scripts/version_text.gd
sed -i "s/var commit_number: int = 0/var commit_number: int = ${COMMIT_NUMBER}/" ${PROJECT_PATH}/game/scripts/version_text.gd
sed -i "s/var branch_name: String = \"X\"/var branch_name: String = \"${BRANCH_NAME}\"/" ${PROJECT_PATH}/game/scripts/version_text.gd
sed -i "s/var short_sha: String = \"X\"/var short_sha: String = \"${SHORT_SHA}\"/" ${PROJECT_PATH}/game/scripts/version_text.gd
sed -i "s/var build_override: bool = false/var build_override: bool = true/" ${PROJECT_PATH}/game/scripts/version_text.gd
# Show the updated file for verification
echo "Updated version_text.gd:"
cat ${PROJECT_PATH}/game/scripts/version_text.gd
- name: Windows Build - name: Windows Build
run: | run: |
mkdir -v -p build/bin/windows mkdir -v -p build/bin/windows
@ -50,146 +72,146 @@ jobs:
path: build/bin/windows path: build/bin/windows
export-linux: # export-linux:
name: Linux Export # name: Linux Export
runs-on: ubuntu-22.04 # Use 22.04 with godot 4 # runs-on: ubuntu-22.04 # Use 22.04 with godot 4
container: # container:
image: barichello/godot-ci:4.4 # image: barichello/godot-ci:4.4
steps: # steps:
# Doing this becuase barichello/godot-ci:4.4 doesn't have nodejs installed, may need to make own docker image in the future # # Doing this becuase barichello/godot-ci:4.4 doesn't have nodejs installed, may need to make own docker image in the future
# By default ubuntu-22.04 has nodejs 12, but we need a more modern version for the actions/checkout@v4 # # By default ubuntu-22.04 has nodejs 12, but we need a more modern version for the actions/checkout@v4
- name: Install Node.js # - name: Install Node.js
run: | # run: |
apt-get update # apt-get update
apt-get install -y curl # apt-get install -y curl
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - # curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs # apt-get install -y nodejs
- name: Checkout # - name: Checkout
uses: https://gitea.com/actions/checkout@v4 # uses: https://gitea.com/actions/checkout@v4
with: # with:
lfs: true # lfs: true
- name: Setup # - name: Setup
run: | # run: |
mkdir -v -p ~/.local/share/godot/export_templates/ # mkdir -v -p ~/.local/share/godot/export_templates/
- name: Linux Build # - name: Linux Build
run: | # run: |
mkdir -v -p build/bin/linux # mkdir -v -p build/bin/linux
EXPORT_DIR="$(readlink -f build/bin)" # EXPORT_DIR="$(readlink -f build/bin)"
cd $PROJECT_PATH # cd $PROJECT_PATH
godot --headless --verbose --export-release "Linux" "$EXPORT_DIR/linux/$EXPORT_NAME.x86_64" # godot --headless --verbose --export-release "Linux" "$EXPORT_DIR/linux/$EXPORT_NAME.x86_64"
- name: Upload Artifact # - name: Upload Artifact
uses: https://gitea.com/actions/upload-artifact@v3 # using v3 ad v4 has issues wwith gitea # uses: https://gitea.com/actions/upload-artifact@v3 # using v3 ad v4 has issues wwith gitea
with: # with:
name: linux # name: linux
path: build/bin/linux # path: build/bin/linux
steam-publish: # steam-publish:
name: Steam Publish # name: Steam Publish
runs-on: ubuntu-22.04 # runs-on: ubuntu-22.04
needs: [export-windows, export-linux] # needs: [export-windows, export-linux]
steps: # steps:
# I can't use the c2msnetwork/steamcmd bc I need to instlal git and nodejs for the actions/checkout@v4 to work # # I can't use the c2msnetwork/steamcmd bc I need to instlal git and nodejs for the actions/checkout@v4 to work
# and I would need root access to install them, which breaks saving the cache file # # and I would need root access to install them, which breaks saving the cache file
# So here we setup the dependencies for the missing steamcmd image, nodejs, and git manually # # So here we setup the dependencies for the missing steamcmd image, nodejs, and git manually
- name: Install Dependencies # - name: Install Dependencies
run: | # run: |
sudo dpkg --add-architecture i386 # sudo dpkg --add-architecture i386
sudo apt-get update # sudo apt-get update
sudo apt-get install -y --no-install-recommends \ # sudo apt-get install -y --no-install-recommends \
lib32gcc-s1 \ # lib32gcc-s1 \
lib32stdc++6 \ # lib32stdc++6 \
curl \ # curl \
nodejs \ # nodejs \
git \ # git \
git-lfs # git-lfs
git lfs install # git lfs install
# Get the file from the link and put it in the required directory # # Get the file from the link and put it in the required directory
- name: Setup SteamCMD # - name: Setup SteamCMD
run: | # run: |
mkdir -p ~/steamcmd # mkdir -p ~/steamcmd
curl -fsSL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar xvzf - -C ~/steamcmd # curl -fsSL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar xvzf - -C ~/steamcmd
# Run once to initialize # # Run once to initialize
~/steamcmd/steamcmd.sh +quit # ~/steamcmd/steamcmd.sh +quit
# Get all the files from the repo into the working directory # # Get all the files from the repo into the working directory
- name: Checkout # - name: Checkout
uses: https://gitea.com/actions/checkout@v4 # uses: https://gitea.com/actions/checkout@v4
with: # with:
lfs: true # lfs: true
# Download artifacts, this isn't done automatially like it was in gitlab # # Download artifacts, this isn't done automatially like it was in gitlab
- name: Download Windows Artifacts # - name: Download Windows Artifacts
uses: https://gitea.com/actions/download-artifact@v3 # uses: https://gitea.com/actions/download-artifact@v3
with: # with:
name: windows # name: windows
path: build/bin/windows # path: build/bin/windows
- name: Download Linux Artifacts # - name: Download Linux Artifacts
uses: https://gitea.com/actions/download-artifact@v3 # uses: https://gitea.com/actions/download-artifact@v3
with: # with:
name: linux # name: linux
path: build/bin/linux # path: build/bin/linux
# The normal actions/cache@v3 doesn't work here, so need to manully restore the cache in this step # # The normal actions/cache@v3 doesn't work here, so need to manully restore the cache in this step
# The only file we need is the config.vdf file for the steam gaurd code # # The only file we need is the config.vdf file for the steam gaurd code
# If the file doesn't exist, the steam upload will fail and request a new steam guard code. # # If the file doesn't exist, the steam upload will fail and request a new steam guard code.
# After a successful upload, the config.vdf file will be created and saved in the cache for future runs # # After a successful upload, the config.vdf file will be created and saved in the cache for future runs
- name: Restore Cache # - name: Restore Cache
uses: https://gitea.com/actions/cache/restore@v3 # uses: https://gitea.com/actions/cache/restore@v3
with: # with:
path: | # path: |
~/Steam/config/config.vdf # ~/Steam/config/config.vdf
./steam_build_output/ # ./steam_build_output/
key: steam-cache-${{ runner.os }}-${{ github.ref_name }} # key: steam-cache-${{ runner.os }}-${{ github.ref_name }}
restore-keys: | # restore-keys: |
steam-cache-${{ runner.os }} # steam-cache-${{ runner.os }}
steam-cache # steam-cache
# Debug to see if cache file exists # # Debug to see if cache file exists
- name: Debug Pre-Cache # - name: Debug Pre-Cache
run: | # run: |
echo "Checking for cached config file in :~/Steam/config/config.vdf" # echo "Checking for cached config file in :~/Steam/config/config.vdf"
if [ -f ~/Steam/config/config.vdf ]; then # if [ -f ~/Steam/config/config.vdf ]; then
echo "config.vdf exists!" # echo "config.vdf exists!"
ls -la ~/Steam/config/config.vdf # ls -la ~/Steam/config/config.vdf
else # else
echo "No cached config.vdf file." # echo "No cached config.vdf file."
fi # fi
- name: Update VDF # - name: Update VDF
run: | # run: |
cd $PROJECT_PATH # cd $PROJECT_PATH
SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8) # SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8)
sed -i -e "s/STEAM_DESCRIPTION/${GITHUB_REF_NAME} - ${SHORT_SHA}/" build/build_dependencies/steam/app_build_2739610.vdf # sed -i -e "s/STEAM_DESCRIPTION/${GITHUB_REF_NAME} - ${SHORT_SHA}/" build/build_dependencies/steam/app_build_2739610.vdf
# There is a chacne that if you fail enough uplaods, steam will rate limit you. # # There is a chacne that if you fail enough uplaods, steam will rate limit you.
# But to get a new steamguard code, you need to fail at least once to get the emial with the code # # But to get a new steamguard code, you need to fail at least once to get the emial with the code
# The ratelimit time isn't published, but I saw in a reddit commit that its 30 minutes, but if you fail in that 30 mintues, it resets the timer # # The ratelimit time isn't published, but I saw in a reddit commit that its 30 minutes, but if you fail in that 30 mintues, it resets the timer
# Waiting 30 mintues worked for me, idk if that supersition is real or not :) # # Waiting 30 mintues worked for me, idk if that supersition is real or not :)
- name: Publish to Steam # - name: Publish to Steam
run: | # run: |
cd $PROJECT_PATH # cd $PROJECT_PATH
~/steamcmd/steamcmd.sh +set_steam_guard_code "${{ secrets.STEAM_GUARD_CODE }}" +login "${{ vars.STEAM_BUILD_USERNAME }}" "${{ secrets.STEAM_BUILD_PASSWORD }}" +run_app_build "$PWD/build/build_dependencies/steam/app_build_2739610.vdf" +quit # ~/steamcmd/steamcmd.sh +set_steam_guard_code "${{ secrets.STEAM_GUARD_CODE }}" +login "${{ vars.STEAM_BUILD_USERNAME }}" "${{ secrets.STEAM_BUILD_PASSWORD }}" +run_app_build "$PWD/build/build_dependencies/steam/app_build_2739610.vdf" +quit
# Sanitys check make sure file exists # # Sanitys check make sure file exists
- name: Debug Post-Cache # - name: Debug Post-Cache
run: | # run: |
echo "Checking for config file in :~/Steam/config/config.vdf" # echo "Checking for config file in :~/Steam/config/config.vdf"
if [ -f ~/Steam/config/config.vdf ]; then # if [ -f ~/Steam/config/config.vdf ]; then
echo "File exists!" # echo "File exists!"
ls -la ~/Steam/config/config.vdf # ls -la ~/Steam/config/config.vdf
else # else
echo "No file found." # echo "No file found."
fi # fi
# Manually save the cache file, normal method doesn't work # # Manually save the cache file, normal method doesn't work
- name: Save Cache # - name: Save Cache
uses: https://gitea.com/actions/cache/save@v3 # uses: https://gitea.com/actions/cache/save@v3
with: # with:
path: | # path: |
~/Steam/config/config.vdf # ~/Steam/config/config.vdf
./steam_build_output/ # ./steam_build_output/
key: steam-cache-${{ runner.os }}-${{ github.ref_name }} # key: steam-cache-${{ runner.os }}-${{ github.ref_name }}

View File

@ -1,4 +1,6 @@
[gd_scene load_steps=8 format=3 uid="uid://bgpec3avuotkt"] [gd_scene load_steps=9 format=3 uid="uid://bgpec3avuotkt"]
[ext_resource type="Script" uid="uid://dlna6j58fshxu" path="res://game/scripts/version_label.gd" id="1_iapjp"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_no5d7"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_no5d7"]
sky_top_color = Color(0.340506, 0.443905, 0.662582, 1) sky_top_color = Color(0.340506, 0.443905, 0.662582, 1)
@ -61,3 +63,18 @@ mesh = SubResource("PrismMesh_no5d7")
[node name="Camera3D" type="Camera3D" parent="."] [node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(-0.998152, 0, -0.0607699, 0, 1, 0, 0.0607699, 0, -0.998152, 0, 0, -2.11699) transform = Transform3D(-0.998152, 0, -0.0607699, 0, 1, 0, 0.0607699, 0, -0.998152, 0, 0, -2.11699)
[node name="temp_ui" type="Control" parent="."]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VersionLabel" type="Label" parent="temp_ui"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 23.0
script = ExtResource("1_iapjp")
show_label_in_editor = false

View File

@ -0,0 +1,23 @@
extends VersionText
@export var show_label_in_editor: bool = true
@export_category("Label Settings")
@export var major_version: int = 0
@export var minor_version: int = 0
@export var patch: int = 0
@export var show_branch_name: bool = true
@export var show_sha: bool = true
func _ready() -> void:
# fill text
text = ("%s_%d.%d.%d-%03d" %[project_name, major_version, minor_version, patch, commit_number])
# extra details
if show_branch_name: text += "-%s" %branch_name
if show_sha: text += "-%s" %short_sha
# show text
if show_label_in_editor || build_override: show()
else: hide()

View File

@ -0,0 +1 @@
uid://dlna6j58fshxu

View File

@ -0,0 +1,8 @@
class_name VersionText extends Label
var project_name: String = "X"
var commit_number: int = 0
var branch_name: String = "X"
var short_sha: String = "X"
var build_override: bool = false

View File

@ -0,0 +1 @@
uid://b3rhuel4vnoss