name: CD

on:
  # Run on pushes and pull-requests
  push:
  pull_request:

jobs:
  make_linux_x86_64_gui_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-gui-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: linux_x86_64_gui_(debug)
        path: build/prefab/full/linux_x86_64_gui
  make_linux_x86_64_server_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-server-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: linux_x86_64_server_(debug)
        path: build/prefab/full/linux_x86_64_server
  make_linux_arm64_gui_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-linux-arm64-gui-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: linux_arm64_gui_(debug)
        path: build/prefab/full/linux_arm64_gui
  make_linux_arm64_server_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-linux-arm64-server-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: linux_arm64_server_(debug)
        path: build/prefab/full/linux_arm64_server
  make_mac_x86_64_gui_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-mac-x86-64-gui-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: mac_x86_64_gui_(debug)
        path: build/prefab/full/mac_x86_64_gui
  make_mac_x86_64_server_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-mac-x86-64-server-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: mac_x86_64_server_(debug)
        path: build/prefab/full/mac_x86_64_server
  make_mac_arm64_gui_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-mac-arm64-gui-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: mac_arm64_gui_(debug)
        path: build/prefab/full/mac_arm64_gui
  make_mac_arm64_server_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-mac-arm64-server-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: mac_arm64_server_(debug)
        path: build/prefab/full/mac_arm64_server
  make_windows_x86_gui_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-windows-x86-gui-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: windows_x86_gui_(debug)
        path: build/prefab/full/windows_x86_gui
  make_windows_x86_server_debug_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make prefab-windows-x86-server-debug-build
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: windows_x86_server_(debug)
        path: build/prefab/full/windows_x86_server
  make_sphinx_docs:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: '3.12'
    - name: Setup project environment
      run: make env
    - name: Make the build
      run: make docs-sphinx
    - name: Upload the build
      uses: actions/upload-artifact@v3
      with:
        name: sphinx_html_docs
        path: build/sphinx