From d6bc8d88aab3e75f33fba85fb75e224731f2a6cf Mon Sep 17 00:00:00 2001
From: Hazel <git@ravy.org>
Date: Mon, 29 Jan 2024 19:50:04 +0000
Subject: [PATCH] fix(ci): checkout, html5 (#305)

* fetch-depth=1

* switch to app tokens

* docs?

* docs!

* actions / doesnt check out

* mac attempt 1

* custom setup haxe action

* trigger ci run thanks github

* interesting

* meow

* use tags

* homebrew fixing maybe

* mymindishazel/actions-setup-haxe@vC.1.8

* automationgit pushgit pushgit push

* rosetta all the way?

* macos oopsy

* mac cache && move ci to org

* update checkout action to do post-checkout cleaning

* update haxe & cache actions to node 20

* retry action but with updated ci-checkout@v6

* cleanup: there's no scheduled runs

* actions/cache@v4 in setup-haxe

* update to haxe 4.3

* lack of libc?

* ubuntu 23.10 has glibc 2.38

---------

Co-authored-by: Eric <ericmyllyoja@gmail.com>
Co-authored-by: Cameron Taylor <cameron.taylor.ninja@gmail.com>
---
 .github/actions/setup-haxeshit/action.yml |   6 +-
 .github/actions/upload-itch/action.yml    |  58 ++++++-------
 .github/workflows/build-shit.yml          | 100 ++++++++--------------
 3 files changed, 67 insertions(+), 97 deletions(-)

diff --git a/.github/actions/setup-haxeshit/action.yml b/.github/actions/setup-haxeshit/action.yml
index ad9c06286..9c1fae0b1 100644
--- a/.github/actions/setup-haxeshit/action.yml
+++ b/.github/actions/setup-haxeshit/action.yml
@@ -3,9 +3,9 @@ description: "sets up haxe shit, using HMM!"
 runs:
   using: "composite"
   steps:
-    - uses: funkincrew/ci-haxe@v2
+    - uses: funkincrew/ci-haxe@v3
       with:
-        haxe-version: 4.3.1
+        haxe-version: 4.3.3
     - name: Config haxelib
       run: |
         haxelib config
@@ -19,7 +19,7 @@ runs:
       shell: bash
     - name: dependency install cache
       id: cache-hmm
-      uses: actions/cache@v3
+      uses: actions/cache@v4
       with:
         path: .haxelib
         key: ${{ runner.os }}-hmm-${{ hashFiles('**/hmm.json') }}
diff --git a/.github/actions/upload-itch/action.yml b/.github/actions/upload-itch/action.yml
index 7a4b45427..2f7d3027d 100644
--- a/.github/actions/upload-itch/action.yml
+++ b/.github/actions/upload-itch/action.yml
@@ -13,32 +13,32 @@ inputs:
 runs:
   using: "composite"
   steps:
-      - name: Install butler Windows
-        if: runner.os == 'Windows'
-        run: |
-          curl -L -o butler.zip https://broth.itch.ovh/butler/windows-amd64/LATEST/archive/default
-          7z x butler.zip
-          ./butler -v
-        shell: bash
-      - name: Install butler Mac
-        if: runner.os == 'macOS'
-        run: |
-          curl -L -o butler.zip https://broth.itch.ovh/butler/darwin-amd64/LATEST/archive/default
-          unzip butler.zip
-          ./butler -V
-        shell: bash
-      - name: Install butler Linux
-        if: runner.os == 'Linux'
-        run: |
-          curl -L -o butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default
-          unzip butler.zip
-          chmod +x butler
-          ./butler -V
-        shell: bash
-      - name: Upload game to itch.io
-        env:
-          BUTLER_API_KEY: ${{inputs.butler-key}}
-        run: |
-          ./butler login
-          ./butler push ${{inputs.build-dir}} ninja-muffin24/funkin-secret:${{inputs.target}}-${GITHUB_REF_NAME}
-        shell: bash
+    - name: Install butler Windows
+      if: runner.os == 'Windows'
+      run: |
+        curl -L -o butler.zip https://broth.itch.ovh/butler/windows-amd64/LATEST/archive/default
+        7z x butler.zip
+        ./butler -v
+      shell: bash
+    - name: Install butler Mac
+      if: runner.os == 'macOS'
+      run: |
+        curl -L -o butler.zip https://broth.itch.ovh/butler/darwin-amd64/LATEST/archive/default
+        unzip butler.zip
+        ./butler -V
+      shell: bash
+    - name: Install butler Linux
+      if: runner.os == 'Linux'
+      run: |
+        curl -L -o butler.zip https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default
+        unzip butler.zip
+        chmod +x butler
+        ./butler -V
+      shell: bash
+    - name: Upload game to itch.io
+      env:
+        BUTLER_API_KEY: ${{inputs.butler-key}}
+      run: |
+        ./butler login
+        ./butler push ${{inputs.build-dir}} ninja-muffin24/funkin-secret:${{inputs.target}}-${GITHUB_REF_NAME}
+      shell: bash
diff --git a/.github/workflows/build-shit.yml b/.github/workflows/build-shit.yml
index 301cedcef..76126d106 100644
--- a/.github/workflows/build-shit.yml
+++ b/.github/workflows/build-shit.yml
@@ -4,56 +4,14 @@ on:
   push:
 
 jobs:
-  check_date:
-    runs-on: [self-hosted, linux]
-    container: ubuntu:latest
-    name: Check latest commit
-    outputs:
-      should_run: ${{ steps.should_run.outputs.should_run }}
-    steps:
-      - name: ensure git cli is installed
-        run: apt update && apt install sudo git -y
-      - name: get token from gh app
-        uses: actions/create-github-app-token@v1
-        id: app_token
-        with:
-          app-id: ${{ vars.APP_ID }}
-          private-key: ${{ secrets.APP_PEM }}
-          owner: ${{ github.repository_owner }}
-      - name: checkout repo
-        uses: funkincrew/ci-checkout@v5
-        with:
-          submodules: 'recursive'
-          token: ${{ steps.app_token.outputs.token }}
-      - name: check whether submodules exist
-        run: |
-          git config --global --add safe.directory $GITHUB_WORKSPACE
-
-          # debug output
-          echo gh=${{ github.sha }}
-          echo head=$(git rev-parse HEAD)
-          echo art=$(git -C art rev-parse HEAD)
-          echo assets=$(git -C assets rev-parse HEAD)
-
-          # checks if HEAD commit hash in submodules is diff from current repo, and therefore exists
-          test $(git rev-parse HEAD) != $(git -C art rev-parse HEAD)
-          test $(git rev-parse HEAD) != $(git -C assets rev-parse HEAD)
-      - id: should_run
-        continue-on-error: true
-        name: check latest commit is less than a day
-        if: ${{ github.event_name == 'schedule' }}
-        run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "::set-output name=should_run::false"
   create-nightly-html5:
-    needs: check_date
-    if: ${{ needs.check_date.outputs.should_run != 'false'}}
     runs-on: [self-hosted, linux]
-    container: ubuntu:latest
+    container: ubuntu:23.10
     steps:
       - name: prepare container
         run: |
           apt update
           apt install sudo git curl unzip -y
-          echo $GITHUB_WORKSPACE
           git config --global --add safe.directory $GITHUB_WORKSPACE
       - name: get token from gh app
         uses: actions/create-github-app-token@v1
@@ -63,12 +21,12 @@ jobs:
           private-key: ${{ secrets.APP_PEM }}
           owner: ${{ github.repository_owner }}
       - name: checkout repo
-        uses: funkincrew/ci-checkout@v5
+        uses: funkincrew/ci-checkout@v6
         with:
           submodules: 'recursive'
           token: ${{ steps.app_token.outputs.token }}
       - uses: ./.github/actions/setup-haxeshit
-      - name: game build dependencies
+      - name: gather game dependencies
         run: |
           sudo apt-get install -y libx11-dev xorg-dev libgl-dev libxi-dev libxext-dev libasound2-dev libxinerama-dev libxrandr-dev libgl1-mesa-dev
       - name: build game
@@ -81,12 +39,7 @@ jobs:
           build-dir: export/release/html5/bin
           target: html5
   create-nightly-win:
-    needs: check_date
-    if: ${{ needs.check_date.outputs.should_run != 'false'}}
     runs-on: windows-latest
-    permissions:
-      contents: write
-      actions: write
     steps:
       - name: get token from gh app
         uses: actions/create-github-app-token@v1
@@ -96,7 +49,7 @@ jobs:
           private-key: ${{ secrets.APP_PEM }}
           owner: ${{ github.repository_owner }}
       - name: checkout repo
-        uses: funkincrew/ci-checkout@v5
+        uses: funkincrew/ci-checkout@v6
         with:
           submodules: 'recursive'
           token: ${{ steps.app_token.outputs.token }}
@@ -106,14 +59,14 @@ jobs:
           mkdir -p ${{ runner.temp }}\hxcpp_cache
       - name: Restore build cache
         id: cache-build-win
-        uses: actions/cache@v3
+        uses: actions/cache@v4
         with:
           path: |
             .haxelib
             export
             ${{ runner.temp }}\hxcpp_cache
           key: ${{ runner.os }}-build-win-${{ github.ref_name }}-${{ hashFiles('**/hmm.json') }}
-      - name: Build game
+      - name: build game
         run: |
           haxelib run lime build windows -release -DNO_REDIRECT_ASSETS_FOLDER
           dir
@@ -125,8 +78,6 @@ jobs:
           build-dir: export/release/windows/bin
           target: win
   create-nightly-mac:
-    needs: check_date
-    if: ${{ needs.check_date.outputs.should_run != 'false'}}
     runs-on: [self-hosted, macos]
     steps:
       - name: prepare container
@@ -140,7 +91,7 @@ jobs:
           private-key: ${{ secrets.APP_PEM }}
           owner: ${{ github.repository_owner }}
       - name: checkout repo
-        uses: funkincrew/ci-checkout@v5
+        uses: funkincrew/ci-checkout@v6
         with:
           submodules: 'recursive'
           token: ${{ steps.app_token.outputs.token }}
@@ -148,9 +99,9 @@ jobs:
       - name: Make HXCPP cache dir
         run: |
           mkdir -p ${{ runner.temp }}/hxcpp_cache
-      - name: Restore build cache
+      - name: restore build cache
         id: cache-build-win
-        uses: actions/cache@v3
+        uses: actions/cache@v4
         with:
           path: |
             .haxelib
@@ -168,20 +119,39 @@ jobs:
           butler-key: ${{ secrets.BUTLER_API_KEY}}
           build-dir: export/release/macos/bin
           target: macos
+          
 #  test-unit-win:
 #    needs: create-nightly-win
 #    runs-on: windows-latest
-#    permissions:
-#       contents: write
-#       actions: write
 #    steps:
-#      - uses: funkincrew/ci-checkout@v5
+#     - name: get token from gh app
+#       uses: actions/create-github-app-token@v1
+#        id: app_token
 #        with:
-#          submodules: 'recursive'
-#          fetch-depth: 0
-#          token: ${{ secrets.GH_RO_PAT }}
+#          app-id: ${{ vars.APP_ID }}
+#          private-key: ${{ secrets.APP_PEM }}
+#          owner: ${{ github.repository_owner }}
+#     - name: checkout repo
+#       uses: funkincrew/ci-checkout@v6
+#       with:
+#         submodules: 'recursive'
+#         token: ${{ steps.app_token.outputs.token }}
+#     - name: Make HXCPP cache dir
+#       run: |
+#         mkdir -p ${{ runner.temp }}\hxcpp_cache
+#     - name: Restore build cache
+#       id: cache-build-win
+#       uses: actions/cache@v4
+#       with:
+#         path: |
+#           .haxelib
+#           export
+#           ${{ runner.temp }}\hxcpp_cache
+#         key: ${{ runner.os }}-test-win-${{ github.ref_name }}-${{ hashFiles('**/hmm.json') }}
 #      - uses: ./.github/actions/setup-haxeshit
 #      - name: Run unit tests
 #        run: |
 #          cd ./tests/unit/
 #          ./start-win-native.bat
+#        env:
+#          HXCPP_COMPILE_CACHE: "${{ runner.temp }}\\hxcpp_cache"