---
on: [push]

name: Build

jobs:
  # format:
  #   name: Format
  #   runs-on: ubuntu-22.04
  #   steps:
  #     - name: Check out the code
  #       uses: actions/checkout@v4
  #     - name: Install clang-format
  #       run: |
  #         sudo apt-get update
  #         sudo apt-get -y install clang-format
  #     - name: Check the code's formatting
  #       run: clang-format --dry-run src/*.h src/*.cpp 2>&1 | tee fmt.log; [ ! -s fmt.log ]

  # lint:
  #   name: Lint
  #   runs-on: ubuntu-22.04
  #   steps:
  #     - name: Check out the code
  #       uses: actions/checkout@v4
  #     - name: Install clang-tidy and the toolchain
  #       run: |
  #         sudo apt-get update
  #         sudo apt-get -y install clang-tidy cmake freeglut3-dev libglew-dev libglm-dev
  #     - name: Set up the build environment
  #       run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
  #     - name: Have clang-tidy lint for errors
  #       run: clang-tidy -p cmake-build-debug src/*.cpp src/*.h --warnings-as-errors='*'

  build:
    name: Build
    runs-on: ubuntu-22.04
    steps:
      - name: Check out the code
        uses: actions/checkout@v4
      - name: Install the toolchain
        run: |
          sudo apt-get update
          sudo apt-get -y install cmake freeglut3-dev libglew-dev libglm-dev
      - name: Set up the build environment
        run: cmake -S . -B cmake-build-debug
      - name: Compile the code
        run: cmake --build cmake-build-debug
      - name: Save executable
        uses: forgejo/upload-artifact@v4
        with:
          name: bin.zip
          path: cmake-build-debug/perlin-shadows
