Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
49 changes: 38 additions & 11 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ jobs:
mingw-w64-clang-x86_64-bzip2
mingw-w64-clang-x86_64-zstd
mingw-w64-clang-x86_64-xz
mingw-w64-clang-x86_64-imagemagick
mingw-w64-clang-x86_64-librsvg

- name: Workspace Path Fixup
run: |
Expand Down Expand Up @@ -133,33 +135,58 @@ jobs:
zip -r "nui-sftp-windows-x86_64_${{ env.VERSION }}.zip" "nui-sftp"
mv "nui-sftp-windows-x86_64_${{ env.VERSION }}.zip" "${{ env.WSPACE }}"

- name: Produce Artifact
- name: Install Inno Setup
run: choco install innosetup -y --no-progress

- name: Build installer
env:
SOURCE_DIR: ${{ env.WSPACE }}/nui-sftp/build/install
OUTPUT_DIR: ${{ env.WSPACE }}/installer-out
run: |
bash scripts/build_installer.sh \
--version "${{ env.VERSION }}" \
--source-dir "$SOURCE_DIR" \
--output-dir "$OUTPUT_DIR"
mv "$OUTPUT_DIR/nui-sftp-windows-x86_64_${{ env.VERSION }}-setup.exe" "${{ env.WSPACE }}/"

- name: Produce Zip Artifact
uses: actions/upload-artifact@v6
with:
name: nui-sftp-windows-x86_64_${{ env.VERSION }}.zip
path: ${{ env.WSPACE }}/nui-sftp-windows-x86_64_${{ env.VERSION }}.zip

- name: Upload Artifact to Release
- name: Produce Installer Artifact
uses: actions/upload-artifact@v6
with:
name: nui-sftp-windows-x86_64_${{ env.VERSION }}-setup.exe
path: ${{ env.WSPACE }}/nui-sftp-windows-x86_64_${{ env.VERSION }}-setup.exe

- name: Upload Artifacts to Release
if: github.ref == 'refs/heads/main'
env:
GH_TOKEN: ${{ secrets.RELEASEUPLOADPAT }}
run: |
gh release upload "v${{ env.VERSION }}" "${{ env.WSPACE }}/nui-sftp-windows-x86_64_${{ env.VERSION }}.zip" --repo 5cript/nui-sftp
gh release upload "v${{ env.VERSION }}" "${{ env.WSPACE }}/nui-sftp-windows-x86_64_${{ env.VERSION }}-setup.exe" --repo 5cript/nui-sftp

- name: Upload artifacts to MEGA S4
if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
env:
AWS_ACCESS_KEY_ID: ${{ secrets.MEGAS4ACCESS }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.MEGAS4KEY }}
ENDPOINT: https://s3.eu-central-1.s4.mega.io
FILENAME: "nui-sftp-windows-x86_64_${{ env.VERSION }}.zip"
ZIP_FILENAME: "nui-sftp-windows-x86_64_${{ env.VERSION }}.zip"
SETUP_FILENAME: "nui-sftp-windows-x86_64_${{ env.VERSION }}-setup.exe"
S3_PATH: "s3://nui-sftp-releases/windows/${{ (github.event_name == 'workflow_dispatch' && 'x86_64/user_trigger') || 'x86_64' }}/"
run: |
# Check if the file exists on the remote
if aws s3 ls "${{ env.S3_PATH }}${{ env.FILENAME }}" --endpoint-url ${{ env.ENDPOINT }} > /dev/null 2>&1; then
echo "Error: File ${{ env.FILENAME }} already exists in S4. Aborting to prevent overwrite."
exit 1
fi

# If it doesnt exist, upload it
aws s3 cp "${{ env.WSPACE }}/${{ env.FILENAME }}" "${{ env.S3_PATH }}" --endpoint-url ${{ env.ENDPOINT }}
upload_if_absent() {
local filename="$1"
if aws s3 ls "${{ env.S3_PATH }}${filename}" --endpoint-url "${{ env.ENDPOINT }}" > /dev/null 2>&1; then
echo "Error: File ${filename} already exists in S4. Aborting to prevent overwrite."
exit 1
fi
aws s3 cp "${{ env.WSPACE }}/${filename}" "${{ env.S3_PATH }}" --endpoint-url "${{ env.ENDPOINT }}"
}

upload_if_absent "${{ env.ZIP_FILENAME }}"
upload_if_absent "${{ env.SETUP_FILENAME }}"
6 changes: 3 additions & 3 deletions PKGBUILD
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Maintainer: Tim Ebbeke <tim 06 tr (at) gmail dot com>

pkgname=nui-sftp
pkgver=1.1.1
pkgver=1.2.0
pkgrel=1
pkgdesc="NUI-based SFTP application"
arch=('x86_64')
Expand Down Expand Up @@ -39,9 +39,9 @@ source=(
"https://s3.g.s4.mega.io/jgemkib4a5fte35rktt5wxrwkw4ejk4ybemkf/nui-scp/icons.tar.gz"
)
sha256sums=(
'9246f4da3d6b9f9d87fe57d2567e92f309f64a523604d89bf31edc794f597ee9'
'836af543956c5a2b632fe64d788fb160ed25f2c8bd85b338a04b56a16e80a825'
'cf0fc442069dfd28bd8b7769da6dfdca92111044ea9817197716ed9bfada3869'
'1a967af0ab93e5bac67e79b93b0272f7b79b79de7e4ff46b967d9c09e581969e'
'096a57b9d2ecaf3d37cdb7968cddecbf0daf96c180595d83577e9524421d7b68'
'30ffa48c3a509e878db31a1e5d80376242852e34d9c2aa3b44d2e3d1da2ce32e'
)

Expand Down
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,37 @@ Submission-specific details that are still in flight (will be folded into
- **AppImage** — `appimage/Dockerfile` is updated by `prepare_release.mjs`;
the actual build runs in CI.

## Windows (Inno Setup)

`windows/nui-sftp.iss` is an Inno Setup script that wraps the portable zip's
file tree into a per-machine installer with Start Menu / optional desktop /
optional PATH integration. Upgrades are handled automatically by Inno Setup's
stable `AppId` mechanism. No special migration logic is needed across
releases.

`prepare_release.mjs` updates the `MyAppVersion` literal inside the `.iss` so
it stays in lockstep with `PKGBUILD`'s `pkgver` and the Flatpak manifest's
`FORCED_PROJECT_VERSION`. The CI workflow overrides it via ISCC's `/D` flag at
build time; the literal only matters for ad-hoc local invocations.

### Local build

The local build expects the [main scp repo](https://github.com/5cript/nui-sftp)
to be checked out as a sibling of this repo (i.e. `../nui-sftp/`). Inside the
scp checkout, run a Windows build (MSYS2 clang64, see scp's
`.github/workflows/windows.yml`) and then `bash scripts/deploy.sh` to stage
the install tree at `../nui-sftp/build/install`.

Then, from this repo:

```bash
./scripts/build_installer.sh --version 1.2.3
```

The script auto-locates ISCC.exe (Inno Setup 6) and writes the installer to
`build/nui-sftp-windows-x86_64_<version>-setup.exe`. Install Inno Setup with
`winget install JRSoftware.InnoSetup` if missing.

## Local Flatpak builds

[`scripts/build_flatpak.sh`](scripts/build_flatpak.sh) invokes
Expand Down
2 changes: 1 addition & 1 deletion arch
Submodule arch updated from e4e5f3 to 9cbc91
2 changes: 1 addition & 1 deletion flathub
13 changes: 13 additions & 0 deletions org.nuicpp.nui_sftp.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,19 @@
</screenshot>
</screenshots>
<releases>
<release version="1.2.0" date="2026-05-25">
<description>
<p>What&apos;s Changed</p>
<ul>
<li>Add ico for windows as app icon. by @5cript in https://github.com/5cript/nui-sftp/pull/170</li>
</ul>
<p>

<em>Full Changelog</em>
: https://github.com/5cript/nui-sftp/compare/v1.1.1…v1.2.0
</p>
</description>
</release>
<release version="1.1.1" date="2026-05-16">
<description>
<p>What&apos;s Changed</p>
Expand Down
8 changes: 4 additions & 4 deletions org.nuicpp.nui_sftp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ modules:
- cp -r * /app/frontend
sources:
- type: archive
url: https://github.com/5cript/nui-sftp/releases/download/v1.1.1/nui-sftp-linux-frontend_1.1.1.tar.gz
sha256: 1a967af0ab93e5bac67e79b93b0272f7b79b79de7e4ff46b967d9c09e581969e
url: https://github.com/5cript/nui-sftp/releases/download/v1.2.0/nui-sftp-linux-frontend_1.2.0.tar.gz
sha256: 096a57b9d2ecaf3d37cdb7968cddecbf0daf96c180595d83577e9524421d7b68

- name: nui-sftp
buildsystem: cmake-ninja
Expand Down Expand Up @@ -116,8 +116,8 @@ modules:
sources:
- type: git
url: https://github.com/5cript/nui-sftp
tag: v1.1.1
commit: 2e78074b4fd5a92a38b9901081c3e464c08b7238
tag: v1.2.0
commit: ef23dde8e0fc5bee03797142121a06afc493c9fc
- type: archive
url: https://s3.g.s4.mega.io/jgemkib4a5fte35rktt5wxrwkw4ejk4ybemkf/nui-scp/icons.tar.gz
sha256: 30ffa48c3a509e878db31a1e5d80376242852e34d9c2aa3b44d2e3d1da2ce32e
Expand Down
Loading
Loading