name: "Windows Installer"

# any branch is useful for testing before a PR is submitted
on: [push, pull_request]

jobs:
  build:
    # run on pushes to any branch
    # run on PRs from external forks
    if: |
         (github.event_name != 'pull_request')
         || (github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id)

    name: Build Zip & Exe
    runs-on: windows-latest

    steps:
    - uses: msys2/setup-msys2@v2
      with:
        path-type: inherit
        install: >-
          zip

    - name: Checkout repository
      uses: actions/checkout@v2

    - uses: actions/setup-node@v2
      with:
        node-version: 12

    - name: Install all dependencies and symlink for ep_etherpad-lite
      shell: msys2 {0}
      run: src/bin/installDeps.sh

    - name: Run the backend tests
      shell: msys2 {0}
      run: cd src && npm test

    - name: Build the .zip
      shell: msys2 {0}
      run: src/bin/buildForWindows.sh

    - name: Extract the .zip into folder
      run: 7z x etherpad-lite-win.zip -oetherpad-lite-new

    - name: Grab nsis config
      run: git clone https://github.com/ether/etherpad_nsis.git

    - name: Create installer
      uses: joncloud/makensis-action@v3.4
      with:
        script-file: 'etherpad_nsis/etherpad.nsi'

    - name: Check something..
      run: ls etherpad_nsis

    - name: Archive production artifacts
      uses: actions/upload-artifact@v2
      with:
        name: etherpad-server-windows.exe
        path: etherpad_nsis/etherpad-server-windows.exe
