name: Make

on:
  push:
    branches:
      - master
      - 'release-*'
  pull_request:
  # run on all pr

jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu-latest, macOS-latest]
    runs-on: ${{ matrix.os }}
    name: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v6
    # TODO: update makefile to check MANIFEST
    - name: Install dependencies (MacOS)
      if: runner.os == 'macOS'
      run: brew install julia

    - name: Check MANIFEST
      if: matrix.config.os == 'ubuntu-latest'
      run: make manifest && diff MANIFEST.new MANIFEST
    - name: Run Test
      run: make check
    - name: Check utf8proc_data.c
      run: make data && diff data/utf8proc_data.c.new utf8proc_data.c
    - name: Clean
      run: make clean && git status --ignored --porcelain && test -z "$(git status --ignored --porcelain)"

    - name: Make lib
      run: make
    - name: Upload shared lib
      uses: actions/upload-artifact@v6
      with:
        name: make-${{ matrix.os }}
        path: libutf8proc.*
