windowselectrongithub-actionsbonjourmdns

Is there any way to install Apple Bonjour SDK on windows via command line (for Github Actions)?


I'm developing an Electron Application which uses the Apple Bonjour (https://developer.apple.com/bonjour/), and to compile its native dependencies I need to install the Apple Bonjour SDK for each specific OS.

My CI/CD pipeline is running on Github Actions, which provides me Windows, Ubuntu and MacOS virtual machines. Installing the SDK for Ubuntu and MacOS was pretty easy, however I couldn't find any way to make it work for windows machines via command line.

Does anyone have experience automatising the compilation of the bonjour libraries in windows machines via command line?

I know I could download the SDK and install it manually via interface on windows but I need this via command line because I need to run it on my CI pipeline on Github Actions.


Solution

  • found a way

    the .exe installer actually contains many files (you can extract it with 7zip or winrar)

    Bonjour.msi
    Bonjour64.msi
    BonjourSDK.msi
    BonjourSDK64.msi
    SetupAdmin.exe
    

    the SetupAdmin.exe is useless, the 64bit .msi(s) are the ones we need

    in my workflow i've set

      # the SDK requires the normal version of Bonjour to be installed first.
      - name: install Bonjour (64 bit)
        run: |
          $currentPath = Get-Location
          $msiFilePath = Join-Path -Path $currentPath -ChildPath "Bonjour64.msi"
          $msiexecArguments = "/i `"$msiFilePath`" /qn /L*v bonjour64.log"
          Start-Process msiexec -ArgumentList $msiexecArguments -NoNewWindow -Wait
      - name: install Bonjour SDK (64 bit)
        run: |
          $currentPath = Get-Location
          $msiFilePath = Join-Path -Path $currentPath -ChildPath "BonjourSDK64.msi"
          $msiexecArguments = "/i `"$msiFilePath`" /qn /L*v bonjoursdk64.log"
          Start-Process msiexec -ArgumentList $msiexecArguments -NoNewWindow -Wait
    

    you can remove the logging if you want

    please note that you have to upload the .msi(s) to the runner yourself somehow, i have no clue if mirroring these files is against any kind of license so DYOR on that