name: ๐Ÿ”Ž Test builds on: workflow_dispatch: push: branches: [ master ] paths-ignore: - "README.md" - "LICENSE" - "**/*.png" - "demo/*" - "doc/*" inputs: godot-treeish: description: A tag, branch or commit hash in the Godot repository. type: string default: 4.2.1-stable godot-cpp-version: description: Ref in the godot-cpp repository. type: string default: 4.2 pull_request: branches: [ master ] paths-ignore: - "README.md" - "LICENSE" - "**/*.png" - "demo/*" - "doc/*" inputs: godot-treeish: description: A tag, branch or commit hash in the Godot repository. type: string default: 4.2.1-stable godot-cpp-version: description: Ref in the godot-cpp repository. type: string default: 4.2 jobs: unit-tests: name: ๐Ÿงช Unit tests runs-on: "ubuntu-20.04" # Settings env: SCONSFLAGS: platform=linuxbsd target=editor arch=x86_64 production=false dev_build=true tests=true verbose=yes warnings=extra werror=yes SCONS_CACHE_LIMIT: 7168 BIN: godot.linuxbsd.editor.dev.x86_64 steps: - name: Clone Godot uses: actions/checkout@v4 with: repository: godotengine/godot ref: ${{ inputs.godot-treeish }} - name: Clone LimboAI module uses: actions/checkout@v4 with: path: modules/limboai # About sed see: https://github.com/godotengine/buildroot/issues/6 - name: Set up buildroot x86_64 run: | wget https://download.tuxfamily.org/godotengine/toolchains/linux/x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 tar -xjf x86_64-godot-linux-gnu_sdk-buildroot.tar.bz2 mv x86_64-godot-linux-gnu_sdk-buildroot buildroot cd buildroot sed -i x86_64-godot-linux-gnu/sysroot/usr/lib/pkgconfig/dbus-1.pc -e "s@/lib@/lib64@g" ./relocate-sdk.sh cd .. - name: Set up scons cache uses: actions/cache@v3 with: path: ${{github.workspace}}/.scons_cache/ key: ${{env.BIN}}-${{inputs.godot-treeish}}-${{github.ref}}-${{github.sha}} restore-keys: | ${{env.BIN}}-${{inputs.godot-treeish}}-${{github.ref}}-${{github.sha}} ${{env.BIN}}-${{inputs.godot-treeish}}-${{github.ref}} ${{env.BIN}}-${{inputs.godot-treeish}} continue-on-error: true - name: Set up Python 3.x uses: actions/setup-python@v4 with: python-version: '3.x' architecture: 'x64' - name: Set up scons run: | python -c "import sys; print(sys.version)" python -m pip install scons==4.4.0 python --version scons --version - name: Setup GCC problem matcher uses: ammaraskar/gcc-problem-matcher@master - name: Compilation env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | PATH=${GITHUB_WORKSPACE}/buildroot/bin:$PATH scons ${{env.SCONSFLAGS}} - name: Verify build run: | ls -l bin/ bin/${{ env.BIN }} --version bin/${{ env.BIN }} --help - name: Unit tests run: | bin/${{ env.BIN }} --test --headless linux-test-build: name: ๐Ÿง Linux uses: ./.github/workflows/linux.yml with: godot-treeish: ${{ inputs.godot-treeish }} limboai-treeish: ${{ github.sha }} test-build: true windows-test-build: name: ๐ŸชŸ Windows uses: ./.github/workflows/windows.yml with: godot-treeish: ${{ inputs.godot-treeish }} limboai-treeish: ${{ github.sha }} test-build: true macos-test-build: name: ๐ŸŽ macOS uses: ./.github/workflows/macos.yml with: godot-treeish: ${{ inputs.godot-treeish }} limboai-treeish: ${{ github.sha }} test-build: true gdextension: name: ๐Ÿ”Œ GDExtension uses: ./.github/workflows/gdextension.yml with: godot-cpp-treeish: 4.2 limboai-treeish: ${{ github.sha }} test-build: true