---
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 ]"

  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 libglew-dev libglm-dev libglut-dev
      - name: Set up the build environment
        run: cmake -S . -B cmake-build-debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
      - name: Compile the code
        run: cmake --build cmake-build-debug
      - name: Save executable
        uses: forgejo/upload-artifact@v4
        with:
          name: bin.zip
          path: perlin-noise
