mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-14 10:34:06 +02:00
Fix Tauri artifact copy path so installers upload (smoke + release) (#6466)
## Summary Regression from #6404 (Restructure/frontend editor). Two CI workflows copy the built installers to the wrong directory, so installer artifacts (MSI / DMG / DEB / RPM / AppImage) silently vanish: - **`tauri-build.yml`** (PR/desktop smoke builds) - uploads zero installer artifacts. - **`multiOSReleases.yml`** (production releases) - the empty artifacts are downloaded by `create-release` and fed to `action-gh-release`, so a release would publish **only the JARs, no desktop installers**. ## Root cause #6404 moved the Tauri project from `frontend/` to `frontend/editor/` and updated every **absolute** path (`projectPath`, `cd`, `Get-ChildItem`) to add the `editor/` segment - but left the **relative** copy targets `../../../dist`. Those resolve against the (now one level deeper) working dir after `cd ./frontend/editor/src-tauri/target`: | | resolves to | |---|---| | before #6404 (`frontend/src-tauri/target`) | repo-root `dist/` ✅ | | after #6404 (`frontend/editor/src-tauri/target`) | `frontend/dist/` ❌ (missing) | The `cp` fails, repo-root `dist/` (from `mkdir -p ./dist`) stays empty, and the upload finds nothing. `find -exec cp` failing is non-fatal, so jobs still report success - that's why it went unnoticed. No release has shipped broken yet: the last release (v2.11.0, 2026-05-19) predates #6404 (2026-05-22). ## Fix Copy to an absolute `$GITHUB_WORKSPACE/dist` in both workflows so the `cd` can't drift the destination again. This matches where the upload / signature-verify steps already read from. ## Evidence (run 26574078559, all 3 OS legs) ``` cp: cannot create regular file '../../../dist/Stirling-PDF-windows-x86_64.msi': No such file or directory ##[warning]No files were found with the provided path: ./dist/*. No artifacts will be uploaded. ``` The Tauri builds themselves succeeded - only the copy/upload was broken. ## Test plan - [ ] `tauri-build` on this PR uploads non-empty `Stirling-PDF-<name>` artifacts on Windows/macOS/Linux. - [ ] Next release (or a `workflow_dispatch` of multiOSReleases) attaches MSI/DMG/DEB/RPM/AppImage to the release.
This commit is contained in:
@@ -586,21 +586,23 @@ jobs:
|
||||
if: always() && steps.digicert-setup.conclusion != 'failure'
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p ./dist
|
||||
# Absolute dist path so the cd below can't break the copy targets.
|
||||
DIST="$GITHUB_WORKSPACE/dist"
|
||||
mkdir -p "$DIST"
|
||||
cd ./frontend/editor/src-tauri/target
|
||||
|
||||
# Find and rename artifacts based on platform
|
||||
if [ "${{ matrix.platform }}" = "windows-latest" ]; then
|
||||
# Only ship the MSI installer on Windows. The loose exe and WiX toolset exes
|
||||
# are not the user-facing installer - the MSI contains the signed inner exe.
|
||||
find . -name "*.msi" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.msi" \;
|
||||
find . -name "*.msi" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.msi" \;
|
||||
elif [ "${{ matrix.platform }}" = "macos-15" ]; then
|
||||
find . -name "*.dmg" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.dmg" \;
|
||||
find . -name "*.app" -exec cp -r {} "../../../dist/Stirling-PDF-${{ matrix.name }}.app" \;
|
||||
find . -name "*.dmg" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.dmg" \;
|
||||
find . -name "*.app" -exec cp -r {} "$DIST/Stirling-PDF-${{ matrix.name }}.app" \;
|
||||
else
|
||||
find . -name "*.deb" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.deb" \;
|
||||
find . -name "*.rpm" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.rpm" \;
|
||||
find . -name "*.AppImage" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.AppImage" \;
|
||||
find . -name "*.deb" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.deb" \;
|
||||
find . -name "*.rpm" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.rpm" \;
|
||||
find . -name "*.AppImage" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.AppImage" \;
|
||||
fi
|
||||
|
||||
- name: Upload build artifacts
|
||||
|
||||
@@ -420,20 +420,22 @@ jobs:
|
||||
- name: Rename artifacts
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p ./dist
|
||||
# Absolute dist path so the cd below can't break the copy targets.
|
||||
DIST="$GITHUB_WORKSPACE/dist"
|
||||
mkdir -p "$DIST"
|
||||
cd ./frontend/editor/src-tauri/target
|
||||
|
||||
# Find and rename artifacts based on platform
|
||||
if [ "${{ matrix.platform }}" = "windows-latest" ]; then
|
||||
# Only ship the MSI installer. The loose exe and WiX toolset exes
|
||||
# are not the user-facing installer - the MSI contains the signed inner exe.
|
||||
find . -name "*.msi" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.msi" \;
|
||||
find . -name "*.msi" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.msi" \;
|
||||
elif [ "${{ matrix.platform }}" = "macos-15" ]; then
|
||||
find . -name "*.dmg" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.dmg" \;
|
||||
find . -name "*.dmg" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.dmg" \;
|
||||
else
|
||||
find . -name "*.deb" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.deb" \;
|
||||
find . -name "*.rpm" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.rpm" \;
|
||||
find . -name "*.AppImage" -exec cp {} "../../../dist/Stirling-PDF-${{ matrix.name }}.AppImage" \;
|
||||
find . -name "*.deb" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.deb" \;
|
||||
find . -name "*.rpm" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.rpm" \;
|
||||
find . -name "*.AppImage" -exec cp {} "$DIST/Stirling-PDF-${{ matrix.name }}.AppImage" \;
|
||||
fi
|
||||
|
||||
# Verify the MSI AND the inner exe extracted from it are signed.
|
||||
|
||||
Reference in New Issue
Block a user