name: CI
on: [push, pull_request]

env:
  BUILD_PROFILE: Release

jobs:
  build:
    runs-on: windows-2022
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Setup msvc
        uses: ilammy/msvc-dev-cmd@v1
      - name: Configure cmake
        run: cmake -G "Ninja" -DCMAKE_BUILD_TYPE:STRING="${{ env.BUILD_PROFILE }}"
      - name: Build
        run: cmake --build .
      - name: Extract Short Commit Hash
        id: extract
        shell: bash
        run: echo commit=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT
      - name: Upload Build Artifact
        uses: actions/upload-artifact@v3
        with:
          name: NorthstarLauncher-${{ steps.extract.outputs.commit }}
          path: |
            game/

  format-check:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: DoozyX/clang-format-lint-action@v0.13
      with:
        source: 'NorthstarDLL NorthstarLauncher'
        exclude: 'NorthstarDLL/include loader_launcher_proxy loader_wsock32_proxy'
        extensions: 'h,cpp'
        clangFormatVersion: 13
        style: file