Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
13c70ba
fix naming error
frequency403 Mar 24, 2026
01162ec
fix icon name
frequency403 Mar 24, 2026
fe3ef20
Fix startup error when files are not readable. (#18)
frequency403 Mar 24, 2026
b3e8a9c
remove warnings as error in csproj
frequency403 Mar 24, 2026
bbbe8ea
remove warnings as error in csproj
frequency403 Mar 24, 2026
f536d95
Merge branch 'master' into development
frequency403 Mar 24, 2026
e4807aa
Merge branch 'development' into release/v3.0.1
frequency403 Mar 24, 2026
d99e92f
Fix and Optimize Configuration, SSH Key Handling, and UI (#21)
frequency403 Jun 9, 2026
8ee5e98
Introduce new workflows: auto-tag refinement, unit tests, build-and-p…
frequency403 Jun 9, 2026
5fbbd39
Bump version to 3.1.0, improve PKGBUILD formatting, and fix SSH key f…
frequency403 Jun 9, 2026
cdff101
Add `build-and-package.yml` and `test.yml` workflows; refine asset pr…
frequency403 Jun 9, 2026
1431a2d
Refactor workflows: streamline asset preparation, reorganize director…
frequency403 Jun 9, 2026
638c3b8
Update `staging.yml`: adjust dependencies for `deploy-aur-nightly` an…
frequency403 Jun 9, 2026
d7f6b4b
Refactor GitHub Actions workflows: improve artifact handling and enha…
frequency403 Jun 9, 2026
ec44535
Update `staging.yml`: add `build` dependency for `deploy-aur-nightly`…
frequency403 Jun 9, 2026
08afa89
Revamp README: overhaul content structure, include new features, upda…
frequency403 Jun 9, 2026
f9f6e48
Bump version to 3.1.1; update PKGBUILD, normalize version logic in wo…
frequency403 Jun 9, 2026
107d24e
Merge branch 'master' into release/v3.1.1
frequency403 Jun 9, 2026
4a91f0a
Bump version to 3.1.2; update PKGBUILD, enhance version normalization…
frequency403 Jun 10, 2026
2ba45d1
Merge branch 'master' into release/v3.1.2
frequency403 Jun 10, 2026
75c82ec
Enhance Komac installation in workflow: dynamically fetch latest rele…
frequency403 Jun 10, 2026
2ae51bf
Refactor GitHub Actions: modularize workflows, add custom composite a…
frequency403 Jun 10, 2026
36859b5
Merge remote-tracking branch 'origin/master' into release/v3.1.3
frequency403 Jun 10, 2026
e4f25b4
Add `actions/checkout@v4` to workflows for consistent repository access.
frequency403 Jun 10, 2026
1180366
Refactor `install-komac` action: enhance reliability with `gh` CLI in…
frequency403 Jun 10, 2026
07e469a
Remove `install-komac` action, update GitHub Actions to latest versio…
frequency403 Jun 11, 2026
56c683e
Remove unused `needs: detect-tfm` property from `.github/actions/dotn…
frequency403 Jun 11, 2026
237e273
Remove nightly GitHub Release action from staging workflow
frequency403 Jun 11, 2026
c38234b
resolve warning IL3000
frequency403 Jun 11, 2026
f0c32b2
Remove nightly support and update workflows to reflect changes
frequency403 Jun 11, 2026
0ac2a6f
Update PKGBUILD to include date and commit hash in versioning
frequency403 Jun 11, 2026
d131b9b
Sync auto-tag workflow with development process:
frequency403 Jun 11, 2026
37cc849
Simplify test workflow by removing conditional triggers based on even…
frequency403 Jun 11, 2026
b13d554
Merge branch 'master' into development
frequency403 Jun 11, 2026
8afddd6
Update auto-tag workflow: Remove "Sync Development" from job name
frequency403 Jun 11, 2026
7be1315
Release v3.1.6 -Update workflows and versioning logic for improved CI…
frequency403 Jun 11, 2026
e3a39c0
Update workflows and dependencies:
frequency403 Jun 11, 2026
8e3e88c
Enhance `determine-version` action and workflows:
frequency403 Jun 11, 2026
7c01d3c
Add sparse checkout for `determine-version` action in staging workflow
frequency403 Jun 11, 2026
4518330
Disable sparse checkout cone mode in `determine-version` action
frequency403 Jun 11, 2026
4124234
Remove redundant `ref` input from `actions/checkout` in staging workflow
frequency403 Jun 11, 2026
f7c5394
Remove `fetch-depth` input from checkout step in staging workflow
frequency403 Jun 11, 2026
ed7aaaa
Simplify staging workflow by reducing inputs and removing sparse chec…
frequency403 Jun 11, 2026
aa6cb1a
..
frequency403 Jun 11, 2026
cbab03c
verion bump
frequency403 Jun 11, 2026
f715bf4
Update staging workflow to include post-process step for branch checkout
frequency403 Jun 11, 2026
11cc4fa
Update staging workflow: fix branch checkout logic in post-process step
frequency403 Jun 11, 2026
c871fed
Simplify staging workflow by removing post-process step for branch ch…
frequency403 Jun 11, 2026
663e6da
Update dependencies in staging workflow: downgrade checkout action an…
frequency403 Jun 11, 2026
9d11fc0
fix: correct AUR action parameters (commit_username → author_name, co…
frequency403 Jun 11, 2026
bc4507d
fix: add force flag and increase fetch-depth for AUR git deployment
frequency403 Jun 11, 2026
71cf2d9
fix: add force flag and revert to correct AUR action parameters
frequency403 Jun 11, 2026
a70d0b6
fix: correct AUR action to use commit_username and commit_email param…
frequency403 Jun 11, 2026
d1562a2
fix: explicitly specify master branch for AUR deployment to avoid ref…
frequency403 Jun 11, 2026
9460756
refactor: replace KSXGitHub action with custom git clone and push for…
frequency403 Jun 11, 2026
43664f5
fix: setup SSH key before cloning AUR repository
frequency403 Jun 11, 2026
ca475c2
fix: simplify AUR deployment with correct paths and environment varia…
frequency403 Jun 11, 2026
7d04c01
fix: explicitly create and switch to the master branch during AUR dep…
frequency403 Jun 11, 2026
66d0b8a
fix: ensure branch tracks origin/master during AUR deployment
frequency403 Jun 11, 2026
fc4282b
fix: include .SRCINFO generation during AUR deployment
frequency403 Jun 11, 2026
09635e9
fix: run makepkg as non-root user during AUR deployment
frequency403 Jun 11, 2026
33f87af
fix: update .SRCINFO generation command in AUR deployment
frequency403 Jun 11, 2026
a92207a
refactor: add reusable deploy-aur action and integrate with workflows
frequency403 Jun 11, 2026
06d5265
chore: bump BaseVersion to 3.1.7 in Directory.Build.props
frequency403 Jun 11, 2026
6840076
Merge branch 'master' into development
frequency403 Jun 11, 2026
8cfa26a
Migrate workflows and clean up composite GitHub Actions:
frequency403 Jun 12, 2026
782152e
Update PKGBUILD for version 3.2.0 with new dependencies, build optimi…
frequency403 Jun 12, 2026
23893ff
Add NSIS installer for Windows, update .desktop metadata, and restruc…
frequency403 Jun 15, 2026
bab7728
- Refactor logging: replace `FileName` with `ClassName` for improved …
frequency403 Jun 16, 2026
b0c7364
Bump BaseVersion to 3.2.1 in Directory.Build.props
frequency403 Jun 16, 2026
9671027
Add version comparison workflow to enforce release > master version i…
frequency403 Jun 16, 2026
ea69eb9
Update build-and-package workflow: add runtime target to `dotnet rest…
frequency403 Jun 17, 2026
dcb8413
Bump BaseVersion to 3.2.2 in Directory.Build.props
frequency403 Jun 17, 2026
58b13df
Merge branch 'refs/heads/master' into development
frequency403 Jun 18, 2026
a6c75cc
Update output type in project file from `Exe` to `WinExe` to improve …
frequency403 Jun 18, 2026
e995f37
Update workflows: Add repository_dispatch trigger for deployment and …
frequency403 Jun 18, 2026
d2ba5c6
#34: fix clipboard error
frequency403 Jul 5, 2026
8e02a14
#34: global.json changes for pipline happiness
frequency403 Jul 5, 2026
d8dea13
Release V3.2.3 (#35)
frequency403 Jul 5, 2026
e9ae6ba
Refactor window model to replace `OwnerTopLevel` with `GetTopLevel` d…
frequency403 Jul 6, 2026
d7353b4
workflow updates
frequency403 Jul 7, 2026
6f297f2
update path
frequency403 Jul 7, 2026
4f62cdc
fix assignment
frequency403 Jul 7, 2026
968b02d
fix assignments#2
frequency403 Jul 7, 2026
7e5cc8c
Remove unused AppImageBuilder configuration, streamline workflows, an…
frequency403 Jul 7, 2026
852b291
Automate pkgver
frequency403 Jul 7, 2026
51794e0
Remove staging workflow and its references
frequency403 Jul 7, 2026
661bd27
Update version retrieval logic to use `AssemblyVersionAttribute` inst…
frequency403 Jul 7, 2026
cf7a8d6
Add staging workflow to automate AUR deployments and update PKGBUILD
frequency403 Jul 7, 2026
65ded1a
Add steps section to staging workflow
frequency403 Jul 7, 2026
36eac01
Rename job and update configuration in staging workflow
frequency403 Jul 7, 2026
d027b83
Add checkout step to staging workflow
frequency403 Jul 7, 2026
d53f993
Fix indentation in staging workflow deployment step
frequency403 Jul 7, 2026
70c6c2f
Comment out checkout step in staging workflow
frequency403 Jul 7, 2026
97b69f8
Remove commented-out checkout step from staging workflow
frequency403 Jul 7, 2026
3fc8f0e
Refactor PKGBUILD to use _pkgdirname variable for project paths
frequency403 Jul 7, 2026
f4d035b
Update staging workflow path for PKGBUILD and adjust formatting in PK…
frequency403 Jul 7, 2026
70089c5
Update deployment step in staging workflow to use external action and…
frequency403 Jul 7, 2026
d589961
Fix formatting in PKGBUILD options array
frequency403 Jul 7, 2026
371c29e
Add sparse checkout to staging workflow and adjust PKGBUILD formatting
frequency403 Jul 7, 2026
0a58e48
Update sparse-checkout syntax and remove extra space in PKGBUILD options
frequency403 Jul 7, 2026
884bcba
Fix syntax in staging workflow and remove redundant space in PKGBUILD…
frequency403 Jul 7, 2026
70a0030
update slnx
frequency403 Jul 8, 2026
ca203b0
Packagebuild changes
frequency403 Jul 8, 2026
d234a06
PKGBuild changes
frequency403 Jul 8, 2026
41703f8
Release/v3.2.4 (#36)
frequency403 Jul 10, 2026
abd4d03
removed double buid step
frequency403 Jul 10, 2026
4b14dae
Added communityfiles
frequency403 Jul 10, 2026
afdae31
Update packages
frequency403 Jul 15, 2026
7a6152e
#37 using zsync for appimage updates (#39)
frequency403 Aug 24, 2026
9ba1e57
Security: harden local key file writes, use SFTP for remote file acce…
frequency403 Sep 28, 2026
64b3594
Security: change key passphrases in-process instead of via ssh-keygen…
frequency403 Sep 28, 2026
9e268cc
Security: verify server host keys against known_hosts (TOFU) (#42)
frequency403 Sep 28, 2026
45e8cb0
Security: harden CI workflows and composite actions (#43)
frequency403 Sep 28, 2026
ba905d4
Add AGENTS.md for AI coding agents (#44)
frequency403 Nov 10, 2026
4d4c95b
Merge branch 'master' into release/v3.3.0
frequency403 Nov 10, 2026
2f70d55
Bump version to 3.3.0
frequency403 Nov 10, 2026
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
53 changes: 44 additions & 9 deletions .github/actions/build-appimage/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,25 @@ inputs:
required: false
default: 'OpenSSH-GUI'
appimagetool-tag:
description: 'Release tag of appimagetool to download'
description: 'Release tag of appimagetool to download (must match appimagetool-sha256)'
required: false
default: 'continuous'
default: '1.9.1'
appimagetool-sha256:
description: 'Expected SHA-256 of appimagetool-x86_64.AppImage for the given tag'
required: false
default: 'ed4ce84f0d9caff66f50bcca6ff6f35aae54ce8135408b3fa33abfc3cb384eb0'
update-information:
description: 'zsync update information string (empty disables delta-update embedding)'
required: false
default: 'gh-releases-zsync|frequency403|OpenSSH-GUI|latest|OpenSSH-GUI-x86_64.AppImage.zsync'

outputs:
appimage-name:
description: 'Filename of the produced AppImage'
value: ${{ steps.build.outputs.appimage-name }}
appimage-zsync-name:
description: 'Filename of the produced .zsync file (empty if update-information was not set)'
value: ${{ steps.build.outputs.appimage-zsync-name }}

runs:
using: composite
Expand All @@ -38,27 +49,34 @@ runs:
run: |
set -euo pipefail
sudo apt-get update -qq
sudo apt-get install -y --no-install-recommends librsvg2-bin appstream
sudo apt-get install -y --no-install-recommends librsvg2-bin appstream zsync

- name: Download appimagetool
shell: bash
env:
TOOL_TAG: ${{ inputs.appimagetool-tag }}
TOOL_SHA256: ${{ inputs.appimagetool-sha256 }}
run: |
set -euo pipefail
TOOL_URL="https://github.com/AppImage/appimagetool/releases/download/${{ inputs.appimagetool-tag }}/appimagetool-x86_64.AppImage"
TOOL_URL="https://github.com/AppImage/appimagetool/releases/download/${TOOL_TAG}/appimagetool-x86_64.AppImage"
echo "::notice::Downloading appimagetool from $TOOL_URL"
wget --progress=dot:giga "$TOOL_URL" -O appimagetool
# The tool is executed with access to the build output - verify it before running it.
echo "${TOOL_SHA256} appimagetool" | sha256sum --check --strict
chmod +x appimagetool

- name: Assemble and build AppImage
id: build
shell: bash
env:
BINARY_PATH: ${{ inputs.binary-path }}
VERSION: ${{ inputs.version }}
IS_NIGHTLY: ${{ inputs.is-nightly }}
ASSET_PREFIX: ${{ inputs.asset-prefix }}
UPDATE_INFO: ${{ inputs.update-information }}
run: |
set -euo pipefail

BINARY_PATH="${{ inputs.binary-path }}"
VERSION="${{ inputs.version }}"
IS_NIGHTLY="${{ inputs.is-nightly }}"
ASSET_PREFIX="${{ inputs.asset-prefix }}"
APP_ID="io.github.frequency403.openssh_gui"

# Validate all required source files exist before doing any work
Expand Down Expand Up @@ -116,12 +134,29 @@ runs:

# Assemble AppImage (--appimage-extract-and-run bypasses FUSE requirement)
APPIMAGE_NAME="${ASSET_PREFIX}-x86_64.AppImage"
ARCH=x86_64 ./appimagetool --appimage-extract-and-run AppDir "$APPIMAGE_NAME"

if [[ -n "$UPDATE_INFO" ]]; then
ARCH=x86_64 ./appimagetool --appimage-extract-and-run \
-u "$UPDATE_INFO" \
AppDir "$APPIMAGE_NAME"
else
ARCH=x86_64 ./appimagetool --appimage-extract-and-run AppDir "$APPIMAGE_NAME"
fi

if [[ ! -f "$APPIMAGE_NAME" ]]; then
echo "::error::appimagetool did not produce $APPIMAGE_NAME"
exit 1
fi

echo "appimage-name=$APPIMAGE_NAME" >> "$GITHUB_OUTPUT"

ZSYNC_NAME="${APPIMAGE_NAME}.zsync"
if [[ -n "$UPDATE_INFO" ]]; then
if [[ ! -f "$ZSYNC_NAME" ]]; then
echo "::error::update-information was set but $ZSYNC_NAME was not produced (zsyncmake missing on PATH?)"
exit 1
fi
echo "appimage-zsync-name=$ZSYNC_NAME" >> "$GITHUB_OUTPUT"
fi

echo "::notice::AppImage built successfully: $APPIMAGE_NAME"
47 changes: 31 additions & 16 deletions .github/actions/deploy-aur/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ runs:
- name: Deploy via AUR Action (primary)
id: aur_action
continue-on-error: true
uses: KSXGitHub/github-actions-deploy-aur@v4.1.3
uses: KSXGitHub/github-actions-deploy-aur@da03e160361ce01bf087e790b6ffd196d7dccff7 # v4.1.3
with:
pkgname: ${{ inputs.pkgname }}
pkgbuild: ${{ inputs.pkgbuild }}
Expand All @@ -56,63 +56,76 @@ runs:
- name: Setup SSH key for fallback
if: steps.aur_action.outcome == 'failure'
shell: bash
env:
SSH_PRIVATE_KEY: ${{ inputs.ssh_private_key }}
run: |
set -euo pipefail
mkdir -p ~/.ssh
echo "${{ inputs.ssh_private_key }}" > ~/.ssh/aur_key
chmod 600 ~/.ssh/aur_key
chmod 700 ~/.ssh
# Passed via env: inline expression expansion would place the key into the generated script file.
(umask 077 && printf '%s\n' "$SSH_PRIVATE_KEY" > ~/.ssh/aur_key)
cat >> ~/.ssh/config << 'EOF'
Host aur.archlinux.org
IdentityFile ~/.ssh/aur_key
User aur
StrictHostKeyChecking no
StrictHostKeyChecking accept-new
EOF

- name: Deploy via manual push (fallback)
id: aur_manual
continue-on-error: true
if: steps.aur_action.outcome == 'failure'
shell: bash
# Inputs are passed via env instead of inline expression expansion to prevent script injection
# (e.g. through commit messages).
env:
PKGNAME: ${{ inputs.pkgname }}
PKGBUILD_PATH: ${{ inputs.pkgbuild }}
COMMIT_USERNAME: ${{ inputs.commit_username }}
COMMIT_EMAIL: ${{ inputs.commit_email }}
COMMIT_MESSAGE: ${{ inputs.commit_message }}
FORCE_PUSH: ${{ inputs.force_push }}
REGENERATE_SRCINFO: ${{ inputs.regenerate_srcinfo }}
UPDPKGSUMS: ${{ inputs.updpkgsums }}
run: |
set -euo pipefail
echo "::warning::AUR Action failed, falling back to manual push"

PKGBUILD_DIR="$(dirname "${{ inputs.pkgbuild }}")"

cd /tmp
rm -rf aur-deploy
mkdir aur-deploy
cd aur-deploy
git clone ssh://aur@aur.archlinux.org/${{ inputs.pkgname }}.git .
git clone "ssh://aur@aur.archlinux.org/${PKGNAME}.git" .
git checkout -B master origin/master

cp "$GITHUB_WORKSPACE/${{ inputs.pkgbuild }}" ./PKGBUILD
cp "$GITHUB_WORKSPACE/$PKGBUILD_PATH" ./PKGBUILD

if [[ "${{ inputs.updpkgsums }}" == "true" ]]; then
if [[ "$UPDPKGSUMS" == "true" ]]; then
if command -v updpkgsums >/dev/null 2>&1; then
updpkgsums PKGBUILD
else
echo "::warning::updpkgsums requested but pacman-contrib is not installed in the fallback environment; sha256sums left unchanged"
fi
fi

if [[ "${{ inputs.regenerate_srcinfo }}" == "true" ]]; then
if [[ "$REGENERATE_SRCINFO" == "true" ]]; then
docker run --rm -v "$(pwd)":/pkg archlinux:latest \
bash -c "useradd -m builder \
&& cp /pkg/PKGBUILD /home/builder/ \
&& su builder -c 'cd /home/builder && makepkg --printsrcinfo > /pkg/.SRCINFO'"
fi

git config user.name "${{ inputs.commit_username }}"
git config user.email "${{ inputs.commit_email }}"
git config user.name "$COMMIT_USERNAME"
git config user.email "$COMMIT_EMAIL"

git add PKGBUILD
if [[ "${{ inputs.regenerate_srcinfo }}" == "true" ]]; then
if [[ "$REGENERATE_SRCINFO" == "true" ]]; then
git add .SRCINFO
fi

git commit -m "${{ inputs.commit_message }}" || true
git commit -m "$COMMIT_MESSAGE" || true

if [[ "${{ inputs.force_push }}" == "true" ]]; then
if [[ "$FORCE_PUSH" == "true" ]]; then
git push origin master --force
else
git push origin master
Expand All @@ -121,6 +134,8 @@ runs:
- name: Verify deployment succeeded
if: steps.aur_action.outcome == 'failure' && steps.aur_manual.outcome == 'failure'
shell: bash
env:
PKGNAME: ${{ inputs.pkgname }}
run: |
echo "::error::Both deployment paths failed for ${{ inputs.pkgname }}"
echo "::error::Both deployment paths failed for $PKGNAME"
exit 1
12 changes: 7 additions & 5 deletions .github/actions/determine-version/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,30 @@ runs:
- name: Extract Version
id: extract
shell: bash
env:
FILE: ${{ inputs.file-name }}
SUFFIX: ${{ inputs.suffix }}
PROPERTY: ${{ inputs.property }}
run: |
set -euo pipefail

FILE="${{ inputs.file-name }}"
SUFFIX="${{ inputs.suffix }}"

if [[ ! -f "$FILE" ]]; then
echo "::error::$FILE not found"
exit 1
fi

BUILD_VERSION="$(dotnet msbuild "$FILE" -nologo -getProperty:${{ inputs.property }} -p:VersionSuffix="$SUFFIX" | tr -d '\r')"
BUILD_VERSION="$(dotnet msbuild "$FILE" -nologo -getProperty:"$PROPERTY" -p:VersionSuffix="$SUFFIX" | tr -d '\r')"

if [[ -z "$BUILD_VERSION" ]]; then
echo "::error::${{ inputs.property }} not found in $FILE"
echo "::error::$PROPERTY not found in $FILE"
exit 1
fi

VERSION="${BUILD_VERSION%%-*}"

if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "::error::Invalid Property ${{ inputs.property }}: $VERSION"
echo "::error::Invalid Property $PROPERTY: $VERSION"
exit 1
fi

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/auto-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:

steps:
- name: Checkout merge commit
uses: actions/checkout@v7
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.merge_commit_sha }}
Expand All @@ -35,7 +35,7 @@ jobs:

- name: Create Tag Action
id: create_tag_action
uses: rickstaa/action-create-tag@v1
uses: rickstaa/action-create-tag@a1c7777fcb2fee4f19b0f283ba888afa11678b72 # v1
with:
commit_sha: ${{ github.event.pull_request.merge_commit_sha }}
github_token: ${{ secrets.PAT_TOKEN }}
Expand Down
31 changes: 23 additions & 8 deletions .github/workflows/build-and-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ on:
type: string
default: 'OpenSSH-GUI'

permissions:
contents: read

jobs:
build:
name: Build for ${{ matrix.target }}
Expand All @@ -29,10 +32,10 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v7
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7

- name: Setup .NET environment
uses: actions/setup-dotnet@v5
uses: actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 # v5
with:
global-json-file: global.json
cache: true
Expand All @@ -47,6 +50,8 @@ jobs:

- name: Publish application
shell: bash
env:
VERSION: ${{ inputs.version }}
run: |
set -euo pipefail
dotnet publish OpenSSH_GUI/OpenSSH_GUI.csproj \
Expand All @@ -56,14 +61,16 @@ jobs:
-p:PublishSingleFile=true \
-p:PublishReadyToRun=true \
-p:IncludeNativeLibrariesForSelfExtract=true \
-p:Version="${{ inputs.version }}"
-p:Version="$VERSION"

- name: Rename artifact for distribution
id: rename
shell: bash
env:
ASSET_NAME_PREFIX: ${{ inputs.asset_name_prefix }}
run: |
set -euo pipefail
ASSET_NAME="${{ inputs.asset_name_prefix }}-${{ matrix.target }}${{ matrix.asset_extension }}"
ASSET_NAME="${ASSET_NAME_PREFIX}-${{ matrix.target }}${{ matrix.asset_extension }}"
SOURCE="./publish/OpenSSH_GUI${{ matrix.asset_extension }}"
if [[ ! -f "$SOURCE" ]]; then
echo "::error::Expected build output not found: $SOURCE"
Expand All @@ -83,30 +90,38 @@ jobs:

- name: Upload AppImage
if: matrix.target == 'linux-x64'
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ${{ steps.appimage.outputs.appimage-name }}
path: ${{ steps.appimage.outputs.appimage-name }}
if-no-files-found: error

- name: Upload AppImage zsync file
if: matrix.target == 'linux-x64' && steps.appimage.outputs.appimage-zsync-name != ''
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ${{ steps.appimage.outputs.appimage-zsync-name }}
path: ${{ steps.appimage.outputs.appimage-zsync-name }}
if-no-files-found: error

- name: Upload .desktop file
if: matrix.target == 'linux-x64'
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: io.github.frequency403.openssh_gui.desktop
path: AppDir/usr/share/applications/io.github.frequency403.openssh_gui.desktop
if-no-files-found: error

- name: Upload app icon
if: matrix.target == 'linux-x64'
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: appicon
path: AppDir/appicon.png
if-no-files-found: error

- name: Upload platform binary
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ${{ steps.rename.outputs.ASSET_NAME }}
path: ./publish/${{ steps.rename.outputs.ASSET_NAME }}
Expand Down
Loading
Loading