godot_cpp_test.yml 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. name: 🪲 Godot CPP
  2. on:
  3. workflow_call:
  4. # Global Settings
  5. env:
  6. # Used for the cache key. Add version suffix to force clean build.
  7. GODOT_BASE_BRANCH: master
  8. # Used for the godot-cpp checkout.
  9. GODOT_CPP_BRANCH: 4.3
  10. concurrency:
  11. group: ci-${{ github.actor }}-${{ github.head_ref || github.run_number }}-${{ github.ref }}-cpp-tests
  12. cancel-in-progress: true
  13. jobs:
  14. godot-cpp-tests:
  15. runs-on: ubuntu-24.04
  16. name: Build and test Godot CPP
  17. steps:
  18. - name: Checkout
  19. uses: actions/checkout@v4
  20. with:
  21. sparse-checkout: .github
  22. - name: Checkout godot-cpp
  23. uses: actions/checkout@v4
  24. with:
  25. submodules: recursive
  26. repository: godotengine/godot-cpp
  27. ref: ${{ env.GODOT_CPP_BRANCH }}
  28. path: godot-cpp
  29. - name: Setup Python and SCons
  30. uses: ./.github/actions/godot-deps
  31. - name: Setup GCC problem matcher
  32. uses: ammaraskar/gcc-problem-matcher@master
  33. - name: Download GDExtension interface and API dump
  34. uses: ./.github/actions/download-artifact
  35. with:
  36. name: godot-api-dump
  37. path: ./godot-cpp/gdextension
  38. # TODO: Enable caching when godot-cpp has proper cache limiting.
  39. # - name: Restore Godot build cache
  40. # uses: ./.github/actions/godot-cache-restore
  41. # with:
  42. # cache-name: godot-cpp
  43. # continue-on-error: true
  44. - name: Build godot-cpp test extension
  45. run: scons --directory=./godot-cpp/test target=template_debug dev_build=yes verbose=yes
  46. # - name: Save Godot build cache
  47. # uses: ./.github/actions/godot-cache-save
  48. # with:
  49. # cache-name: godot-cpp
  50. # continue-on-error: true