firebelley / godot-export

Automatically exports your Godot games.
MIT License
460 stars 53 forks source link

Attempting to run Action causes errors that don't exist locally followed by indefinite hang #102

Closed 18swenskiq closed 1 year ago

18swenskiq commented 1 year ago

I am attempting to run this Action with Godot 4 beta 16 and get a (likely) infinite hang on the Import Project step, where it will read out some errors and warnings, then just stop until I manually cancel the pipeline. My workflow file is as follows:

name: Build Godot Project

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

jobs:
  export_game:
    runs-on: ubuntu-latest
    name: Export Ultracop
    steps:
    - name: checkout
      uses: actions/checkout@v3.0.2

    # Automatically stores the tag name for later use
    - name: get tag from version
      id: tag_version
      run: |
          echo "TAG_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT

    - name: export
      id: export
      # Use latest version (see releases for all versions)
      uses: firebelley/godot-export@master
      with:
        # Defining all the required inputs
        godot_executable_download_url: https://downloads.tuxfamily.org/godotengine/4.0/beta16/mono/Godot_v4.0-beta16_mono_linux_x86_64.zip
        godot_export_templates_download_url: https://downloads.tuxfamily.org/godotengine/4.0/beta16/mono/Godot_v4.0-beta16_mono_export_templates.tpz
        relative_project_path: ./game
        relative_export_path: ./dist
        archive_output: true
        export_debug: true
        verbose: true
        use_godot_4: true

      # This release action has worked well for me. However, you can most likely use any release action of your choosing.
      # https://github.com/ncipollo/release-action
    - name: create release
      uses: ncipollo/release-action@v1.11.2
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        generateReleaseNotes: true
        tag: v${{ steps.tag_version.outputs.TAG_VERSION }} # Note that the 'v' in front was necessary to get this action attach artifacts to the tag
        artifacts: ${{ steps.export.outputs.archive_directory }}/*

Import Project step output is as follows (first steps look normal):

/home/runner/.local/share/godot/godot_executable/Godot_v4.0-beta16_mono_linux_x86_64/godot /home/runner/work/Ultracop/Ultracop/game/project.godot --headless -e --quit
  Godot Engine v4.0.beta16.mono.official.518b9e580 - https://godotengine.org/

  WARNING: Custom cursor shape not supported by this display server.
       at: cursor_set_custom_image (servers/display_server.cpp:480)
  WARNING: Blend file import is enabled in the project settings, but no Blender path is configured in the editor settings. Blend files will not be imported.
       at: _editor_init (modules/gltf/register_types.cpp:61)
  ERROR: Cannot open file 'res://.godot/imported/tire_generic_01.obj-a77d41c0f184c06e1039a587a0711187.mesh'.
     at: get_dependencies (core/io/resource_format_binary.cpp:1237)
  ERROR: Cannot open file 'res://.godot/imported/car_01_body.obj-0d40941976fca911da8b02a73c9e46d8.mesh'.
     at: get_dependencies (core/io/resource_format_binary.cpp:1237)
  ERROR: Cannot open file 'res://.godot/imported/car_02.gltf-8d951f950f3482a2d3ab8a472ed93667.scn'.
     at: get_dependencies (core/io/resource_format_binary.cpp:1237)
  ERROR: Cannot open file 'res://.godot/imported/car_02.obj-a715d119ee8143cd02bafb081cffdaee.mesh'.
     at: get_dependencies (core/io/resource_format_binary.cpp:1237)
  ERROR: Cannot open file 'res://.godot/imported/character_test.gltf-7b77f7ef203aa57aa19af8a6581c0a0a.scn'.
     at: get_dependencies (core/io/resource_format_binary.cpp:1237)
  WARNING: OBJ: Ambient light for material 'Black' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Grey' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Black' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Blue' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Grey' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Headlights' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'TailLights' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Windows' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Black' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Grey' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Headlights' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'TailLights' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'White' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: OBJ: Ambient light for material 'Windows' is ignored in PBR
       at: _parse_material_library (editor/import/resource_importer_obj.cpp:65)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D2' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D3' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D4' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D5' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D6' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D7' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D8' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D9' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D10' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D11' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D12' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  WARNING: Node 'Node2/Skeleton3D/BoneAttachment3D13' was modified from inside an instance, but it has vanished.
       at: instantiate (scene/resources/packed_scene.cpp:178)
  Error: The operation was canceled.

My initial thought was that it could be the ERRORs causing the issue, however even if I commit those files to the repository, I just get new errors that don't exist at runtime and don't exist when exporting locally for Windows or Linux, that error in the Action being something like:

   ERROR: Attempt to disconnect a nonexistent connection from 'Skeleton3D:<Skeleton3D#1697485221789>'. Signal: 'bone_pose_changed', callable: 'BoneAttachment3D::on_bone_pose_update'.
     at: _disconnect (core/object/object.cpp:1327)
18swenskiq commented 1 year ago

Another note, it doesn't seem to make a difference whether export_debug or verbose are true or false, the output appears identical (on the failing section)

18swenskiq commented 1 year ago

Last thing, godotengine/godot#72360 is not causing this issue, at least not after I added the .godot folder to the repo

Zennyth commented 1 year ago

The workflow for the build-example works properly with godot-4 but it uses:

 - name: install wine
        id: wine_install
        run: |
          sudo apt install wine64
          echo "WINE_PATH=$(which wine64)" >> $GITHUB_OUTPUT

Although it seems that the project is built, I can't find any artifacts: image

Do any of you know why ?

firebelley commented 1 year ago

@Zennyth This action does not output artifacts, it simply builds your game. You can use a separate action to create releases or artifacts. See the example workflow in the readme. Let me know if you have questions!