name: Build

on:
  push:
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    container: devkitpro/devkitppc:latest
    env:
      WINEPREFIX: ${{github.workspace}}/.wine
    strategy:
      fail-fast: false
      matrix:
        version: [0, 1, kor]
    steps:
    - name: Checkout
      uses: actions/checkout@v3
    - name: Checkout WiBo
      uses: actions/checkout@v3
      with:
        repository: decompals/WiBo
        path: tools/WiBo
    - name: Install dependencies
      run: |
        sudo dpkg --add-architecture i386
        sudo apt-get update
        sudo apt-get -y install build-essential ninja-build python3 python3-requests gcc-multilib g++-multilib libc6:i386
        curl -L https://cdn.discordapp.com/attachments/727918646525165659/917185027656286218/GC_WII_COMPILERS.zip \
          | bsdtar -xvf- -C tools --exclude Wii
        mv tools/GC/* tools/mwcc_compiler/
    - name: Build WiBo
      working-directory: tools/WiBo
      run: |
        cmake -B build
        cmake --build build
    - name: Build
      run: |
        python3 configure.py --map --version ${{matrix.version}} --wine ./tools/WiBo/build/wibo
        ninja
    - name: Upload progress
      if: github.ref == 'refs/heads/main'
      continue-on-error: true
      env:
        PROGRESS_API_KEY: ${{secrets.PROGRESS_API_KEY}}
      run: |
        python3 tools/upload-progress.py -b https://progress.deco.mp/ -p prime -v ${{matrix.version}} \
          build/mp1.${{matrix.version}}/main.dol.progress
    - name: Upload map
      uses: actions/upload-artifact@v2
      with:
        name: MetroidPrime-${{matrix.version}}.MAP
        path: build/*/MetroidPrime.MAP
