game-ci/documentation

game-ci/unity-builder@v3 stuck, but build succeeded

RedGlow opened this issue · 2 comments

Bug description

I'm working on a GitHub self-hosted Windows runner, using Docker with Windows containers. The build ends up with success, but the process running it / docker itself seems stuck, thus blocking the action to progress until the timeout I set is met.

My workflow file is:

name: Actions 😎

on: [push, pull_request, workflow_dispatch]

jobs:
  build:
    name: Build my project ✨
    runs-on: self-hosted
    steps:
      # Checkout (without LFS)
      - name: Checkout repository
        uses: actions/checkout@v3

      # Git LFS
      - name: Create LFS file list
        shell: sh {0}
        run: git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id

      - name: Restore LFS cache
        uses: actions/cache@v3
        id: lfs-cache
        with:
          path: .git/lfs
          key: ${{ runner.os }}-lfs-${{ hashFiles('.lfs-assets-id') }}

      - name: Git LFS Pull
        shell: sh {0}
        run: |
          git lfs pull
          git add .
          git reset --hard

      # Cache
      - uses: actions/cache@v3
        with:
          path: Library
          key: Library-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
          restore-keys: |
            Library-

      # Build
      - name: Build project
        id: build-0
        continue-on-error: true
        timeout-minutes: 45
        # use fixed docker windows usage, as per https://discord.com/channels/710946343828455455/1156880998122913872/1157680471451381831
        uses: owof-games/unity-builder@96399801b32662bbe0d796d4df9682fd08fa9923
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
          UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
          UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
        with:
          targetPlatform: StandaloneWindows
  
      # Output
      - uses: actions/upload-artifact@v3
        with:
          name: Build
          path: build

Here is the ending of the build logs (you can see the whole logs here), after which the step is stuck:

Build Succeeded!

###########################
#       Build output      #
###########################



    Directory: C:\github\workspace\build\StandaloneWindows


Mode                LastWriteTime         Length Name                          
----                -------------         ------ ----                          
d-----       10/15/2023  11:47 AM                MonoBleedingEdge              
d-----       10/15/2023  11:47 AM                StandaloneWindows_BurstDebugIn
                                                 formation_DoNotShip           
d-----       10/15/2023  11:47 AM                StandaloneWindows_Data        
-a----       10/15/2023  11:47 AM         650240 StandaloneWindows.exe         
-a----       10/15/2023  11:47 AM         945688 UnityCrashHandler32.exe       
-a----       10/15/2023  11:47 AM       22862360 UnityPlayer.dll               

User *** logged in successfully
[UnityConnect::TryLogin] Request Succeeded.
[Licensing::Module] Trying to connect to existing licensing client channel...
[Licensing::IpcConnector] Connection attempt to the License Client on channel: "LicenseClient-ContainerAdministrator" failed because channel doesn't exist; code: "0x80000002"
[Licensing::Module] Successfully launched the LicensingClient (PId: 2328)
[Licensing::IpcConnector] Successfully connected to the License Client on channel: "LicenseClient-ContainerAdministrator" at "2023-10-15T09:47:32.6063465Z"
[Licensing::Client] Handshaking with LicensingClient:
  Version:                 1.13.1+ca5f299
  Session Id:              ace61a77609d4c5085c6eb5307eb5f79
  Correlation Id:          6c9f5e25c2407ef8f2a2a0bf36157968
  External correlation Id: 255953274004627955
  Machine Id:              tlkLX5L8DGqwDP3eIbRKmwML29M=
[Licensing::Module] Successfully connected to LicensingClient on channel: "LicenseClient-ContainerAdministrator" (connect: 0.67s, validation: 0.04s, handshake: 3.90s)
[Licensing::IpcConnector] Successfully connected to the License Notification on channel: "LicenseClient-ContainerAdministrator-notifications" at "2023-10-15T09:47:36.5420804Z"
[Licensing::Module] Connected to LicensingClient (PId: 2328, launch time: 0.01, total connection time: 4.61s)
[Licensing::Client] Successfully updated the access token
[Licensing::Module] Successfully updated the access token AvjQDMZOX_...
[Licensing::Client] Successfully processed license management request
[Licensing::Module] Successfully returned the entitlement license
[Licensing::Client] Successfully queried for the EntitlementGroupsDetails
[Licensing::Client] Successfully returned ULF license with serial number : "F4-5Z53-U2MK-GFPQ-XSRJ-XXXX"
Exiting without the bug reporter. Application will terminate with return code 0

Steps to reproduce

  • Clone https://github.com/owof-games/inkjam23
  • Add a Windows self-hosted runner to the organization with a Docker installation and Windows containers
  • Run the "Actions" workflow
  • Observe that the build succeeds and then the workflow is stuck in there until the 45 minutes timeout is met

Expected behavior

Should end the build and immediately move to the next step

Additional details

I've had to fork @game-ci/unity-builder@v3 because of this bug.

I set a tag to the specific commit I was having problems on, because I'm making changes in the meanwhile: https://github.com/owof-games/inkjam23/tree/game-ci-issue-430

Posted on wrong repo, likely a duplicate of game-ci/unity-builder#439