diff --git a/.gitea/workflows/godot-ci.yml b/.gitea/workflows/godot-ci.yml index 623f2e6..ec638a9 100644 --- a/.gitea/workflows/godot-ci.yml +++ b/.gitea/workflows/godot-ci.yml @@ -83,184 +83,109 @@ jobs: name: linux path: build/bin/linux - # steam-publish: - # name: Steam Publish - # runs-on: ubuntu-22.04 - # # The container is no longer needed - # # container: - # # image: cm2network/steamcmd:root - # needs: [export-windows, export-linux] - # steps: - # - 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 - - # - 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 - - # - 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 - - # - name: Download Linux Artifacts - # uses: https://gitea.com/actions/download-artifact@v3 - # with: - # name: linux - # path: build/bin/linux - - # - 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 - - # - name: Read Cache - # run: | - # # The Read Cache step is now handled by the actions/cache@v3 restore process. - # # This step can be removed or left for debugging. - # echo "Files in steamcmd directory:" - # ls -la ~/Steam/config/config.vdf - - # - 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 - - # - 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 - - # - name: Write Cache - # run: | - # # The Write Cache step is now handled by the actions/cache@v3 save process. - # # This step can be removed or left for debugging. - # echo "Files in steamcmd directory to be cached:" - # ls -la ~/ - # echo "Files in steamcmd directory:" - # ls -la ~/steamcmd/ - # echo "Files in steam directory:" - # ls -la ~/Steam/ - # echo "Files in steam config directory:" - # ls -la ~/Steam/config - - # - 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 }} - - steam-publish: - name: Steam Publish - runs-on: ubuntu-22.04 - container: - image: cm2network/steamcmd:root - needs: [export-windows, export-linux] - steps: - # Need to install nodejs and git, and initalize git lfs for checkout - - name: Install node.js and git - run: | - apt-get update - apt-get install -y curl - curl -fsSL https://deb.nodesource.com/setup_18.x | bash - - apt-get install -y nodejs git git-lfs - git lfs install - - name: Checkout - uses: https://gitea.com/actions/checkout@v4 - with: - lfs: true + 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 - # 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 + # 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 - - name: Download Linux Artifacts - uses: https://gitea.com/actions/download-artifact@v3 - with: - name: linux - path: build/bin/linux + # Get all the files from the repo into the working directory + - name: Checkout + uses: https://gitea.com/actions/checkout@v4 + with: + lfs: true - - 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 - - - name: Debug Pre-Cache - run: | - # The Read Cache step is now handled by the actions/cache@v3 restore process. - # This step can be removed or left for debugging. - echo "Files in steamcmd directory:" - ls -la ~/Steam/config/config.vdf 2>/dev/null || echo "No cached config file"; - - - 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 - - - name: Publish to Steam - run: | - cd $PROJECT_PATH + # 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 - /home/steam/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 + - name: Download Linux Artifacts + uses: https://gitea.com/actions/download-artifact@v3 + with: + name: linux + path: build/bin/linux - - name: Debug Post-Cache - run: | - # The Write Cache step is now handled by the actions/cache@v3 save process. - # This step can be removed or left for debugging. - echo "Files in steamcmd directory to be cached:" - ls -la ~/ - echo "Files in steamcmd directory:" - ls -la ~/steamcmd/ 2>/dev/null || echo "No steamcmd folder"; - echo "Files in steam directory:" - ls -la ~/Steam/ 2>/dev/null || echo "No Steam Folder'"; - echo "Files in steam config directory:" - ls -la ~/Steam/config 2>/dev/null || echo "No cached config file"; + # 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 - - 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 + # 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 + + - 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 + + - 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 + + # 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