diff --git a/.gitea/workflows/godot-ci.yml b/.gitea/workflows/godot-ci.yml index fb6cb54..2c206af 100644 --- a/.gitea/workflows/godot-ci.yml +++ b/.gitea/workflows/godot-ci.yml @@ -60,189 +60,208 @@ jobs: else echo "version_text.gd not found at $VERSION_FILE, skipping." fi - - - name: Windows Build - run: | - mkdir -v -p build/bin/windows - EXPORT_DIR="$(readlink -f build/bin)" - cd $PROJECT_PATH - godot --headless --verbose --export-release "Windows Desktop" "$EXPORT_DIR/windows/$EXPORT_NAME.exe" - - name: Upload Artifact - uses: https://gitea.com/actions/upload-artifact@v3 # using v3 ad v4 has issues wwith gitea - with: - name: windows - path: build/bin/windows - - - export-linux: - name: Linux Export - runs-on: ubuntu-22.04 # Use 22.04 with godot 4 - container: - image: barichello/godot-ci:4.4 - steps: - # 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 - - name: Install Node.js + - name: Download Export Templates run: | - apt-get update - apt-get install -y curl - curl -fsSL https://deb.nodesource.com/setup_18.x | bash - - apt-get install -y nodejs - - - name: Checkout - uses: https://gitea.com/actions/checkout@v4 - with: - lfs: true - - - name: Setup - run: | - mkdir -v -p ~/.local/share/godot/export_templates/ - - # Update the version_text.gd file with info about this build. - # If it isn't in the expected spot of game/scripts/version_text.gd skip it - - name: Populate Version Text - run: | - VERSION_FILE="${PROJECT_PATH}/game/scripts/version_text.gd" - if [ -f "$VERSION_FILE" ]; then - PROJECT_NAME="${EXPORT_NAME}" - COMMIT_NUMBER="${GITHUB_RUN_NUMBER}" - BRANCH_NAME="${GITHUB_REF_NAME}" - SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8) + # Download from zip from ${{ secrets.EXPORT_TEMPLATE_DOWNLOAD_LINK }} + # Unzip downloaded file to $PROJECT_PATH/build/build_dependencies/export_templates/ + # If the directory doesn't exist, create it - sed -i "s/var project_name: String = \"X\"/var project_name: String = \"${PROJECT_NAME}\"/" "$VERSION_FILE" - sed -i "s/var commit_number: int = 0/var commit_number: int = ${COMMIT_NUMBER}/" "$VERSION_FILE" - sed -i "s/var branch_name: String = \"X\"/var branch_name: String = \"${BRANCH_NAME}\"/" "$VERSION_FILE" - sed -i "s/var short_sha: String = \"X\"/var short_sha: String = \"${SHORT_SHA}\"/" "$VERSION_FILE" - sed -i "s/var build_override: bool = false/var build_override: bool = true/" "$VERSION_FILE" - - echo "Updated version_text.gd:" - cat "$VERSION_FILE" - else - echo "version_text.gd not found at $VERSION_FILE, skipping." + if [ -z "${{ secrets.EXPORT_TEMPLATE_DOWNLOAD_LINK }}" ]; then + echo "No export template download link provided, cancelling build" + exit 1 fi + + mkdir -p "$PROJECT_PATH/build/build_dependencies/export_templates" + curl -L "${{ secrets.EXPORT_TEMPLATE_DOWNLOAD_LINK }}" -o "$PROJECT_PATH/build/build_dependencies/export_templates/export_templates.zip" + unzip -o "$PROJECT_PATH/build/build_dependencies/export_templates/export_templates.zip" -d "$PROJECT_PATH/build/build_dependencies/export_templates/" + rm "$PROJECT_PATH/build/build_dependencies/export_templates/export_templates.zip" + + # Debug to see if the export templates were downloaded correctly + ls -la "$PROJECT_PATH/build/build_dependencies/export_templates/" + + # - name: Windows Build + # run: | + # mkdir -v -p build/bin/windows + # EXPORT_DIR="$(readlink -f build/bin)" + # cd $PROJECT_PATH + # godot --headless --verbose --export-release "Windows Desktop" "$EXPORT_DIR/windows/$EXPORT_NAME.exe" - - name: Linux Build - run: | - mkdir -v -p build/bin/linux - EXPORT_DIR="$(readlink -f build/bin)" - cd $PROJECT_PATH - godot --headless --verbose --export-release "Linux" "$EXPORT_DIR/linux/$EXPORT_NAME.x86_64" + # - name: Upload Artifact + # uses: https://gitea.com/actions/upload-artifact@v3 # using v3 ad v4 has issues wwith gitea + # with: + # name: windows + # path: build/bin/windows + + + # export-linux: + # name: Linux Export + # runs-on: ubuntu-22.04 # Use 22.04 with godot 4 + # container: + # image: barichello/godot-ci:4.4 + # steps: + # # 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 + # - name: Install Node.js + # run: | + # apt-get update + # apt-get install -y curl + # curl -fsSL https://deb.nodesource.com/setup_18.x | bash - + # apt-get install -y nodejs - - name: Upload Artifact - uses: https://gitea.com/actions/upload-artifact@v3 # using v3 ad v4 has issues wwith gitea - with: - name: linux - path: build/bin/linux + # - name: Checkout + # uses: https://gitea.com/actions/checkout@v4 + # with: + # lfs: true + + # - name: Setup + # run: | + # mkdir -v -p ~/.local/share/godot/export_templates/ + + # # Update the version_text.gd file with info about this build. + # # If it isn't in the expected spot of game/scripts/version_text.gd skip it + # - name: Populate Version Text + # run: | + # VERSION_FILE="${PROJECT_PATH}/game/scripts/version_text.gd" + # if [ -f "$VERSION_FILE" ]; then + # PROJECT_NAME="${EXPORT_NAME}" + # COMMIT_NUMBER="${GITHUB_RUN_NUMBER}" + # BRANCH_NAME="${GITHUB_REF_NAME}" + # SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-8) + + # sed -i "s/var project_name: String = \"X\"/var project_name: String = \"${PROJECT_NAME}\"/" "$VERSION_FILE" + # sed -i "s/var commit_number: int = 0/var commit_number: int = ${COMMIT_NUMBER}/" "$VERSION_FILE" + # sed -i "s/var branch_name: String = \"X\"/var branch_name: String = \"${BRANCH_NAME}\"/" "$VERSION_FILE" + # sed -i "s/var short_sha: String = \"X\"/var short_sha: String = \"${SHORT_SHA}\"/" "$VERSION_FILE" + # sed -i "s/var build_override: bool = false/var build_override: bool = true/" "$VERSION_FILE" + + # echo "Updated version_text.gd:" + # cat "$VERSION_FILE" + # else + # echo "version_text.gd not found at $VERSION_FILE, skipping." + # fi + + # - name: Linux Build + # run: | + # mkdir -v -p build/bin/linux + # EXPORT_DIR="$(readlink -f build/bin)" + # cd $PROJECT_PATH + # godot --headless --verbose --export-release "Linux" "$EXPORT_DIR/linux/$EXPORT_NAME.x86_64" + + # - name: Upload Artifact + # uses: https://gitea.com/actions/upload-artifact@v3 # using v3 ad v4 has issues wwith gitea + # with: + # name: linux + # path: build/bin/linux - steam-publish: - name: Steam Publish - runs-on: ubuntu-22.04 - needs: [export-windows, export-linux] - steps: - # 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 - # So here we setup the dependencies for the missing steamcmd image, nodejs, and git manually - - name: Install Dependencies - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - lib32gcc-s1 \ - lib32stdc++6 \ - curl \ - nodejs \ - git \ - git-lfs - git lfs install + # steam-publish: + # name: Steam Publish + # runs-on: ubuntu-22.04 + # needs: [export-windows, export-linux] + # steps: + # # 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 + # # So here we setup the dependencies for the missing steamcmd image, nodejs, and git manually + # - name: Install Dependencies + # run: | + # sudo dpkg --add-architecture i386 + # sudo apt-get update + # sudo apt-get install -y --no-install-recommends \ + # lib32gcc-s1 \ + # lib32stdc++6 \ + # curl \ + # nodejs \ + # git \ + # git-lfs + # git lfs install - # Get the file from the link and put it in the required directory - - name: Setup SteamCMD - run: | - mkdir -p ~/steamcmd - curl -fsSL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar xvzf - -C ~/steamcmd - # Run once to initialize - ~/steamcmd/steamcmd.sh +quit + # # Get the file from the link and put it in the required directory + # - name: Setup SteamCMD + # run: | + # mkdir -p ~/steamcmd + # curl -fsSL 'https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz' | tar xvzf - -C ~/steamcmd + # # Run once to initialize + # ~/steamcmd/steamcmd.sh +quit - # Get all the files from the repo into the working directory - - name: Checkout - uses: https://gitea.com/actions/checkout@v4 - with: - lfs: true + # # Get all the files from the repo into the working directory + # - name: Checkout + # uses: https://gitea.com/actions/checkout@v4 + # with: + # lfs: true - # Download artifacts, this isn't done automatially like it was in gitlab - - name: Download Windows Artifacts - uses: https://gitea.com/actions/download-artifact@v3 - with: - name: windows - path: build/bin/windows + # # Download artifacts, this isn't done automatially like it was in gitlab + # - name: Download Windows Artifacts + # uses: https://gitea.com/actions/download-artifact@v3 + # with: + # name: windows + # path: build/bin/windows - - name: Download Linux Artifacts - uses: https://gitea.com/actions/download-artifact@v3 - with: - name: linux - path: build/bin/linux + # - name: Download Linux Artifacts + # uses: https://gitea.com/actions/download-artifact@v3 + # with: + # name: 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 only file we need is the config.vdf file for the steam gaurd code + # # 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 - # 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 - - name: Restore Cache - uses: https://gitea.com/actions/cache/restore@v3 - with: - path: | - ~/Steam/config/config.vdf - ./steam_build_output/ - key: steam-cache-${{ runner.os }}-${{ github.ref_name }} - restore-keys: | - steam-cache-${{ runner.os }} - steam-cache + # # 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 + # - name: Restore Cache + # uses: https://gitea.com/actions/cache/restore@v3 + # with: + # path: | + # ~/Steam/config/config.vdf + # ./steam_build_output/ + # key: steam-cache-${{ runner.os }}-${{ github.ref_name }} + # restore-keys: | + # steam-cache-${{ runner.os }} + # steam-cache - # Debug to see if cache file exists - - name: Debug Pre-Cache - run: | - echo "Checking for cached config file in :~/Steam/config/config.vdf" - if [ -f ~/Steam/config/config.vdf ]; then - echo "config.vdf exists!" - ls -la ~/Steam/config/config.vdf - else - echo "No cached config.vdf file." - fi + # # Debug to see if cache file exists + # - name: Debug Pre-Cache + # run: | + # echo "Checking for cached config file in :~/Steam/config/config.vdf" + # if [ -f ~/Steam/config/config.vdf ]; then + # echo "config.vdf exists!" + # ls -la ~/Steam/config/config.vdf + # else + # echo "No cached config.vdf file." + # fi - # Update the vdf with steam description from build info - - name: Update VDF - run: | - cd $PROJECT_PATH - 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 + # # Update the vdf with steam description from build info + # - name: Update VDF + # run: | + # cd $PROJECT_PATH + # 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 - # 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 - # 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 :) - - name: Publish to Steam - run: | - cd $PROJECT_PATH + # # 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 + # # 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 :) + # - name: Publish to Steam + # run: | + # 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 - - name: Debug Post-Cache - run: | - echo "Checking for config file in :~/Steam/config/config.vdf" - if [ -f ~/Steam/config/config.vdf ]; then - echo "File exists!" - ls -la ~/Steam/config/config.vdf - else - echo "No file found." - fi + # # Sanitys check make sure file exists + # - name: Debug Post-Cache + # run: | + # echo "Checking for config file in :~/Steam/config/config.vdf" + # if [ -f ~/Steam/config/config.vdf ]; then + # echo "File exists!" + # ls -la ~/Steam/config/config.vdf + # else + # echo "No file found." + # fi - # Manually save the cache file, normal method doesn't work - - name: Save Cache - uses: https://gitea.com/actions/cache/save@v3 - with: - path: | - ~/Steam/config/config.vdf - ./steam_build_output/ - key: steam-cache-${{ runner.os }}-${{ github.ref_name }} \ No newline at end of file + # # Manually save the cache file, normal method doesn't work + # - name: Save Cache + # uses: https://gitea.com/actions/cache/save@v3 + # with: + # path: | + # ~/Steam/config/config.vdf + # ./steam_build_output/ + # key: steam-cache-${{ runner.os }}-${{ github.ref_name }} \ No newline at end of file diff --git a/build/build_dependencies/export_templates/linux_debug.x86_64 b/build/build_dependencies/export_templates/linux_debug.x86_64 deleted file mode 100644 index d05fbfc..0000000 Binary files a/build/build_dependencies/export_templates/linux_debug.x86_64 and /dev/null differ diff --git a/build/build_dependencies/export_templates/linux_release.x86_64 b/build/build_dependencies/export_templates/linux_release.x86_64 deleted file mode 100644 index 9590120..0000000 Binary files a/build/build_dependencies/export_templates/linux_release.x86_64 and /dev/null differ diff --git a/build/build_dependencies/export_templates/windows_debug_x86_64.exe b/build/build_dependencies/export_templates/windows_debug_x86_64.exe deleted file mode 100644 index e319c7f..0000000 Binary files a/build/build_dependencies/export_templates/windows_debug_x86_64.exe and /dev/null differ diff --git a/build/build_dependencies/export_templates/windows_release_x86_64.exe b/build/build_dependencies/export_templates/windows_release_x86_64.exe deleted file mode 100644 index ddda53e..0000000 Binary files a/build/build_dependencies/export_templates/windows_release_x86_64.exe and /dev/null differ