tauri-build icon indicating copy to clipboard operation
tauri-build copied to clipboard

NSIS Installer Output not picked up as output

Open 8 opened this issue 1 year ago • 3 comments

Hi,

I have the following issue when trying to upload the artifacts of this action when using a a Nsis installer output (the upload works fine for macOS and linux builds btw).

The build for windows works fine, we can see that the artifacts are created in the github log:

    Finished 1 bundle at:
        D:\a\projectname\projectname\src-tauri\target\release\bundle\nsis\projectname_0.7.0-BETA_x64-setup.exe
        D:\a\projectname\projectname\src-tauri\target\release\bundle\nsis\projectname_0.7.0-BETA_x64-setup.nsis.zip (updater)

    Finished 1 updater signature at:
        D:\a\projectname\projectname\src-tauri\target\release\bundle\nsis\projectname_0.7.0-BETA_x64-setup.nsis.zip.sig

But the upload artifact action fails:

Run actions/upload-artifact@v3
Error: Input required and not supplied: path

The github workflow code was taken from the README.md and modified to only produce the nsis &updater output (-b nsis,updater), the relevant sections look like this:

      - uses: JonasKruckenberg/tauri-build@main
        id: tauri_build
        with:
          args: "${{ matrix.platform == 'windows-latest' && '-b nsis,updater --ci' || '' }}"

      - uses: actions/upload-artifact@v3
        with:
          name: artifacts
          path: "${{ join(fromJSON(steps.tauri_build.outputs.artifacts), '\n') }}"

My assumption is, that the output variable of tauri_build is not correctly set for the nsis installer output.

I've found issue: https://github.com/JonasKruckenberg/tauri-build/issues/266 which mentions that the output of the nsis installer should be fixed - I've tried out main and v1.4 and verified that the problem persists.

I've cloned the tauri-build action and took a look at the code and found the windows extensions code in build-projects.ts:

  const windowsExts = ['exe', 'exe.zip', 'exe.zip.sig', 'msi', 'msi.zip', 'msi.zip.sig']

Which is IMHO missing some relevant entries for the nsis output as shown in the github action log above, like nsis.zip and nsis.zip.sig.

For comparison, I've looked at the "official" github action tauri-action, the relevant code in build.ts looks like:

    ...
    winArtifacts.push(
      join(
        artifactsPath,
        `bundle/nsis/${fileAppName}_${app.version}_${arch}-setup.exe`
      )
    );
    winArtifacts.push(
      join(
        artifactsPath,
        `bundle/nsis/${fileAppName}_${app.version}_${arch}-setup.nsis.zip`
      )
    );
    winArtifacts.push(
      join(
        artifactsPath,
        `bundle/nsis/${fileAppName}_${app.version}_${arch}-setup.nsis.zip.sig`
      )
    );

I think that at least nsis.zip and nsis.zip.sig are missing in the windowsExts variable.

What I don't yet understand is, why is the output completely empty? Shouldn't at least the nsis .exe be picked up?

I just started using the github ci yesterday and I am new to github actions don't know how I would go about testing a potential fix of the action?

Any pointers are welcome, thanks!

Take care, Martin

8 avatar Oct 05 '23 09:10 8