name: pboProject

on:
  push:
    branches:
    - master
  pull_request_target:

jobs:
  pboproject:
    runs-on: windows-2022
    steps:
    - name: Install Arma 3 Tools
      uses: arma-actions/arma3-tools@master
      with:
        toolsUrl: ${{ secrets.ARMA3_TOOLS_URL }}
    - name: Install Mikero Tools
      uses: arma-actions/mikero-tools@2023-01-04
    - name: Download game data
      run: |
        Invoke-WebRequest "$env:ARMA3_DATA_URL" -OutFile arma3.zip
        Invoke-WebRequest "$env:RHSAFRF_URL" -OutFile rhsafrf.zip
        Invoke-WebRequest "$env:RHSGREF_URL" -OutFile rhsgref.zip
        Invoke-WebRequest "$env:RHSSAF_URL" -OutFile rhssaf.zip
        Invoke-WebRequest "$env:RHSUSF_URL" -OutFile rhsusf.zip
        $files = @("arma3.zip", "rhsafrf.zip", "rhsgref.zip", "rhssaf.zip", "rhsusf.zip")
        ForEach ($file in $files) {
          Expand-7ZipArchive -Path $file -DestinationPath .
          Remove-Item $file
        }
      env:
        ARMA3_DATA_URL: ${{ secrets.ARMA3_DATA_URL }}
        RHSAFRF_URL: ${{ secrets.RHSAFRF_URL }}
        RHSGREF_URL: ${{ secrets.RHSGREF_URL }}
        RHSSAF_URL: ${{ secrets.RHSSAF_URL }}
        RHSUSF_URL: ${{ secrets.RHSUSF_URL }}
    - name: Checkout CBA A3
      uses: actions/checkout@v4
      with:
        path: x\cba
        ref: master
        repository: CBATeam/CBA_A3.git
    - name: Checkout ACE3
      uses: actions/checkout@v4
      with:
        path: z\ace
        persist-credentials: false
    - name: Checkout pull request
      uses: actions/checkout@v4
      if: ${{ github.event_name == 'pull_request_target' }}
      with:
        path: pullrequest
        ref: 'refs/pull/${{ github.event.number }}/merge'
    - name: Replace addons with pull request addons
      if: ${{ github.event_name == 'pull_request_target' }}
      run: |
        rm -r z\ace\addons\
        rm -r z\ace\optionals\
        rm -r z\ace\tools\pDummies\
        xcopy /e /h /q pullrequest\addons z\ace\addons\
        xcopy /e /h /q pullrequest\optionals z\ace\optionals\
        xcopy /e /h /q pullrequest\tools\pDummies z\ace\tools\pDummies\
    - name: Setup build environment
      run: |
        subst P: .
        pboproject -P
        xcopy /e /h /q z\ace\tools\pDummies\gm gm\
        xcopy /e /h /q z\ace\tools\pDummies\vn vn\
        xcopy /e /h /q z\ace\tools\pDummies\WW2 WW2\
        xcopy /e /h /q z\ace\tools\pDummies\CUP CUP\
    - name: Build
      run: py P:\z\ace\tools\make.py ci
      env:
        PYTHONUNBUFFERED: 1
    - name: Archive logs
      uses: actions/upload-artifact@v4
      if: ${{ always() }}
      with:
        name: logs
        path: temp/*.log
    - name: Archive @ace
      uses: actions/upload-artifact@v4
      with:
        name: '@ace3-${{ github.sha }}'
        path: z\ace\release\@ace