diff --git a/.gitea/workflows/godot-ci.yml b/.gitea/workflows/godot-ci.yml index 008b6ae..02bf797 100644 --- a/.gitea/workflows/godot-ci.yml +++ b/.gitea/workflows/godot-ci.yml @@ -72,146 +72,146 @@ jobs: 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: Checkout - # uses: https://gitea.com/actions/checkout@v4 - # with: - # lfs: true - # - name: Setup - # run: | - # mkdir -v -p ~/.local/share/godot/export_templates/ - # - 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 + 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: Checkout + uses: https://gitea.com/actions/checkout@v4 + with: + lfs: true + - name: Setup + run: | + mkdir -v -p ~/.local/share/godot/export_templates/ + - 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 - # - 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: 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