diff --git a/.github/actions/deploy-aur/action.yml b/.github/actions/deploy-aur/action.yml
new file mode 100644
index 0000000..d4cdadb
--- /dev/null
+++ b/.github/actions/deploy-aur/action.yml
@@ -0,0 +1,118 @@
+name: 'Deploy AUR Package'
+description: >
+ Publishes a PKGBUILD to AUR. Tries KSXGitHub/github-actions-deploy-aur first,
+ falls back to a manual clone-and-push with .SRCINFO regeneration via Docker.
+
+inputs:
+ pkgname:
+ description: 'AUR package name'
+ required: true
+ pkgbuild:
+ description: 'Path to the PKGBUILD file'
+ required: true
+ ssh_private_key:
+ description: 'SSH private key with AUR access'
+ required: true
+ commit_username:
+ description: 'Git commit username'
+ required: true
+ commit_email:
+ description: 'Git commit email'
+ required: true
+ commit_message:
+ description: 'Git commit message'
+ required: true
+ force_push:
+ description: 'Force push to AUR'
+ required: false
+ default: 'false'
+ regenerate_srcinfo:
+ description: 'Regenerate .SRCINFO via Docker in the manual fallback (needed for -git packages)'
+ required: false
+ default: 'false'
+ updpkgsums:
+ description: 'Run updpkgsums after copying PKGBUILD (requires pacman-contrib in the Action environment)'
+ required: false
+ default: 'false'
+
+runs:
+ using: composite
+ steps:
+ - name: Deploy via AUR Action (primary)
+ id: aur_action
+ continue-on-error: true
+ uses: KSXGitHub/github-actions-deploy-aur@v4.1.3
+ with:
+ pkgname: ${{ inputs.pkgname }}
+ pkgbuild: ${{ inputs.pkgbuild }}
+ commit_username: ${{ inputs.commit_username }}
+ commit_email: ${{ inputs.commit_email }}
+ ssh_private_key: ${{ inputs.ssh_private_key }}
+ commit_message: ${{ inputs.commit_message }}
+ force_push: ${{ inputs.force_push }}
+ ssh_keyscan_types: rsa,ecdsa,ed25519
+ updpkgsums: ${{ inputs.updpkgsums }}
+
+ - name: Setup SSH key for fallback
+ if: steps.aur_action.outcome == 'failure'
+ shell: bash
+ run: |
+ mkdir -p ~/.ssh
+ echo "${{ inputs.ssh_private_key }}" > ~/.ssh/aur_key
+ chmod 600 ~/.ssh/aur_key
+ cat >> ~/.ssh/config << 'EOF'
+ Host aur.archlinux.org
+ IdentityFile ~/.ssh/aur_key
+ User aur
+ StrictHostKeyChecking no
+ EOF
+
+ - name: Deploy via manual push (fallback)
+ id: aur_manual
+ continue-on-error: true
+ if: steps.aur_action.outcome == 'failure'
+ shell: bash
+ 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 checkout -B master origin/master
+
+ cp "$GITHUB_WORKSPACE/${{ inputs.pkgbuild }}" ./PKGBUILD
+
+ if [[ "${{ inputs.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 add PKGBUILD
+ if [[ "${{ inputs.regenerate_srcinfo }}" == "true" ]]; then
+ git add .SRCINFO
+ fi
+
+ git commit -m "${{ inputs.commit_message }}" || true
+
+ if [[ "${{ inputs.force_push }}" == "true" ]]; then
+ git push origin master --force
+ else
+ git push origin master
+ fi
+
+ - name: Verify deployment succeeded
+ if: steps.aur_action.outcome == 'failure' && steps.aur_manual.outcome == 'failure'
+ shell: bash
+ run: |
+ echo "::error::Both deployment paths failed for ${{ inputs.pkgname }}"
+ exit 1
\ No newline at end of file
diff --git a/.github/actions/determine-version/action.yml b/.github/actions/determine-version/action.yml
index 573f13a..ae0f8e9 100644
--- a/.github/actions/determine-version/action.yml
+++ b/.github/actions/determine-version/action.yml
@@ -1,6 +1,18 @@
name: Determine Version
description: Extract and validate a semantic version from Directory.Build.props and optionally validate against a branch or tag name
+inputs:
+ file-name:
+ description: The filename where the dotnet msbuild command can extract the version. Provide the full path from repo root!
+ required: false
+ default: 'Directory.Build.props'
+
+ property:
+ description: The property where the dotnet msbuild command must look for the verison
+ required: false
+ default: 'BaseVersion'
+
+
outputs:
version:
description: Extracted semantic version without leading v
@@ -19,22 +31,22 @@ runs:
run: |
set -euo pipefail
- FILE="Directory.Build.props"
+ FILE="${{ inputs.file-name }}"
if [[ ! -f "$FILE" ]]; then
echo "::error::$FILE not found"
exit 1
fi
- VERSION="$(dotnet msbuild "$FILE" -nologo -getProperty:BaseVersion | tr -d '\r')"
+ VERSION="$(dotnet msbuild "$FILE" -nologo -getProperty:${{ inputs.property }} | tr -d '\r')"
if [[ -z "$VERSION" ]]; then
- echo "::error::BaseVersion not found in $FILE"
+ echo "::error::${{ inputs.property }} not found in $FILE"
exit 1
fi
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
- echo "::error::Invalid BaseVersion: $VERSION"
+ echo "::error::Invalid Property ${{ inputs.property }}: $VERSION"
exit 1
fi
diff --git a/.github/actions/dotnet-setup/action.yml b/.github/actions/dotnet-setup/action.yml
index ac20840..fa575f3 100644
--- a/.github/actions/dotnet-setup/action.yml
+++ b/.github/actions/dotnet-setup/action.yml
@@ -3,16 +3,6 @@ description: >
Checks out the repository, auto-detects the TargetFramework from
Directory.Build.props, sets up the .NET SDK, and restores the NuGet cache.
-inputs:
- fetch-depth:
- description: 'Number of commits to fetch (0 = full history, 1 = shallow)'
- required: false
- default: '1'
- token:
- description: 'GitHub token used for checkout'
- required: false
- default: ${{ github.token }}
-
outputs:
dotnet-version:
description: 'Resolved .NET version string, e.g. "10.0.x"'
@@ -21,12 +11,6 @@ outputs:
runs:
using: composite
steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- fetch-depth: ${{ inputs.fetch-depth }}
- token: ${{ inputs.token }}
-
- name: Detect TargetFramework from Directory.Build.props
id: detect-tfm
shell: bash
@@ -46,12 +30,12 @@ runs:
echo "::notice::Resolved .NET version: ${TFM}.x"
- name: Setup .NET SDK
- uses: actions/setup-dotnet@v4
+ uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ steps.detect-tfm.outputs.version }}
- name: Restore NuGet cache
- uses: actions/cache@v4
+ uses: actions/cache@v5
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/Directory.Packages.props', '**/Directory.Build.props') }}
diff --git a/.github/actions/install-komac/action.yml b/.github/actions/install-komac/action.yml
deleted file mode 100644
index 84cd3a0..0000000
--- a/.github/actions/install-komac/action.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: 'Install Komac'
-description: >
- Resolves and downloads the latest Komac (linux-amd64) release from GitHub
- and makes it executable in the current working directory.
-
-outputs:
- komac-path:
- description: 'Absolute path to the komac binary'
- value: ${{ steps.install.outputs.komac-path }}
-
-runs:
- using: composite
- steps:
- - name: Resolve and download Komac
- id: install
- shell: bash
- run: |
- set -euo pipefail
-
- KOMAC_URL=$(curl -fsSL \
- https://api.github.com/repos/russellbanks/Komac/releases/latest \
- | grep -o '"browser_download_url": "[^"]*linux-amd64[^"]*"' \
- | grep -v '\.sha' \
- | head -1 \
- | cut -d'"' -f4)
-
- if [[ -z "$KOMAC_URL" ]]; then
- echo "::error::Failed to resolve Komac download URL from GitHub Releases API"
- exit 1
- fi
-
- echo "::notice::Downloading Komac from: $KOMAC_URL"
- curl -fsSL "$KOMAC_URL" -o komac
- chmod +x komac
- ./komac --version
-
- echo "komac-path=$(pwd)/komac" >> "$GITHUB_OUTPUT"
\ No newline at end of file
diff --git a/.github/workflows/auto-tag.yml b/.github/workflows/auto-tag.yml
index 58731cb..36e9f4a 100644
--- a/.github/workflows/auto-tag.yml
+++ b/.github/workflows/auto-tag.yml
@@ -2,17 +2,16 @@ name: Auto-Tag on Release Merge
on:
pull_request:
- types: [ closed ]
+ types: [closed]
branches:
- master
- - main
permissions:
contents: write
pull-requests: write
concurrency:
- group: auto-tag-${{ github.ref }}
+ group: auto-tag-${{ github.event.pull_request.base.ref }}
cancel-in-progress: false
jobs:
@@ -23,34 +22,21 @@ jobs:
timeout-minutes: 10
steps:
- - name: Checkout repository
- uses: actions/checkout@v4
+ - name: Checkout merge commit
+ uses: actions/checkout@v6
with:
fetch-depth: 0
+ ref: ${{ github.event.pull_request.merge_commit_sha }}
token: ${{ secrets.PAT_TOKEN }}
- name: Extract and validate version
id: version
uses: ./.github/actions/determine-version
-
- - name: Check if tag already exists
- id: check
- run: |
- set -euo pipefail
- if git rev-parse "refs/tags/${{ steps.version.outputs.tag }}" >/dev/null 2>&1; then
- echo "exists=true" >> "$GITHUB_OUTPUT"
- echo "::warning::Tag ${{ steps.version.outputs.tag }} already exists, skipping."
- else
- echo "exists=false" >> "$GITHUB_OUTPUT"
- fi
-
- - name: Create and push tag
- if: steps.check.outputs.exists == 'false'
- run: |
- set -euo pipefail
- git config user.name "github-actions[bot]"
- git config user.email "github-actions[bot]@users.noreply.github.com"
- git tag -a "${{ steps.version.outputs.tag }}" \
- -m "Release ${{ steps.version.outputs.version }}"
- git push origin "${{ steps.version.outputs.tag }}"
- echo "::notice::Tag ${{ steps.version.outputs.tag }} pushed successfully."
\ No newline at end of file
+
+ - name: Create Tag Action
+ id: create_tag_action
+ uses: rickstaa/action-create-tag@v1
+ with:
+ commit_sha: ${{ github.event.pull_request.merge_commit_sha }}
+ github_token: ${{ secrets.PAT_TOKEN }}
+ tag: ${{ steps.version.outputs.tag }}
\ No newline at end of file
diff --git a/.github/workflows/build-and-package.yml b/.github/workflows/build-and-package.yml
index b058645..d1981cf 100644
--- a/.github/workflows/build-and-package.yml
+++ b/.github/workflows/build-and-package.yml
@@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
- fail-fast: false # One failing target must not kill the others
+ fail-fast: true # One failing target must kill the others
matrix:
include:
- target: linux-x64
@@ -33,7 +33,7 @@ jobs:
steps:
- name: Checkout Repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Setup .NET environment
uses: ./.github/actions/dotnet-setup
@@ -88,7 +88,7 @@ jobs:
- name: Upload AppImage
if: matrix.target == 'linux-x64'
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: ${{ steps.appimage.outputs.appimage-name }}
path: ${{ steps.appimage.outputs.appimage-name }}
@@ -96,7 +96,7 @@ jobs:
- name: Upload .desktop file
if: matrix.target == 'linux-x64'
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: io.github.frequency403.openssh_gui.desktop
path: AppDir/usr/share/applications/io.github.frequency403.openssh_gui.desktop
@@ -104,14 +104,14 @@ jobs:
- name: Upload app icon
if: matrix.target == 'linux-x64'
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: appicon
path: AppDir/appicon.png
if-no-files-found: error
- name: Upload platform binary
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v7
with:
name: ${{ steps.rename.outputs.ASSET_NAME }}
path: ./publish/${{ steps.rename.outputs.ASSET_NAME }}
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index d4f2800..556f3a8 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -27,7 +27,10 @@ jobs:
tag: ${{ steps.version.outputs.tag }}
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: '1'
+ ref: ${{ github.ref }}
- name: Determine Version
id: version
@@ -49,10 +52,10 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Download all build artifacts
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v8
with:
path: artifacts/
@@ -94,106 +97,8 @@ jobs:
ls -lah release-assets/
- name: Publish GitHub Release
- uses: softprops/action-gh-release@v2
+ uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.prepare.outputs.tag }}
files: release-assets/*
- generate_release_notes: true
-
- deploy-aur:
- name: Update AUR Packages
- runs-on: ubuntu-latest
- timeout-minutes: 15
- needs: [ test, prepare, release ]
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- fetch-depth: 1
-
- - name: Download build artifacts
- uses: actions/download-artifact@v4
- with:
- path: artifacts/
-
- - name: Prepare AUR assets and update PKGBUILDs
- run: |
- set -euo pipefail
- rm -rf aur-assets
- mkdir -p aur-assets
-
- find artifacts -type f | while read -r FILE; do
- DEST="aur-assets/$(basename "$FILE")"
- if [[ -f "$DEST" ]]; then
- echo "::error::AUR artifact name collision: $(basename "$FILE")"
- exit 1
- fi
- cp "$FILE" "$DEST"
- done
-
- # Assert all required AUR files are present
- test -f aur-assets/OpenSSH-GUI-linux-x64 \
- || { echo "::error::Missing linux binary"; exit 1; }
- test -f aur-assets/appicon.png \
- || { echo "::error::Missing appicon.png"; exit 1; }
- test -f "aur-assets/io.github.frequency403.openssh_gui.desktop" \
- || { echo "::error::Missing .desktop file"; exit 1; }
- test -f LICENSE \
- || { echo "::error::Missing LICENSE"; exit 1; }
-
- VERSION="${{ needs.prepare.outputs.version }}"
- SHA_BIN=$(sha256sum aur-assets/OpenSSH-GUI-linux-x64 | cut -d' ' -f1)
- SHA_ICON=$(sha256sum aur-assets/appicon.png | cut -d' ' -f1)
- SHA_DESKTOP=$(sha256sum "aur-assets/io.github.frequency403.openssh_gui.desktop" | cut -d' ' -f1)
- SHA_LICENSE=$(sha256sum LICENSE | cut -d' ' -f1)
-
- sed -i "s/^pkgver=.*/pkgver=$VERSION/" openssh-gui-bin/PKGBUILD
- sed -i "s/^pkgrel=.*/pkgrel=1/" openssh-gui-bin/PKGBUILD
- sed -i "s/^sha256sums=.*/sha256sums=('$SHA_BIN' '$SHA_ICON' '$SHA_DESKTOP' '$SHA_LICENSE')/" \
- openssh-gui-bin/PKGBUILD
-
- sed -i "s/^pkgver=.*/pkgver=$VERSION/" openssh-gui-git/PKGBUILD
- sed -i "s/^pkgrel=.*/pkgrel=1/" openssh-gui-git/PKGBUILD
-
- echo "Updated PKGBUILDs:"
- grep -E '^(pkgver=|pkgrel=|sha256sums=)' openssh-gui-bin/PKGBUILD
-
- - name: Publish AUR (openssh-gui-bin)
- uses: KSXGitHub/github-actions-deploy-aur@v4.1.1
- with:
- pkgname: openssh-gui-bin
- pkgbuild: ./openssh-gui-bin/PKGBUILD
- commit_username: ${{ github.repository_owner }}
- commit_email: ${{ github.repository_owner }}@users.noreply.github.com
- ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
- commit_message: "Update to ${{ needs.prepare.outputs.tag }}"
-
- - name: Publish AUR (openssh-gui-git)
- uses: KSXGitHub/github-actions-deploy-aur@v4.1.1
- with:
- pkgname: openssh-gui-git
- pkgbuild: ./openssh-gui-git/PKGBUILD
- commit_username: ${{ github.repository_owner }}
- commit_email: ${{ github.repository_owner }}@users.noreply.github.com
- ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
- commit_message: "Update to ${{ needs.prepare.outputs.tag }}"
-
- winget:
- name: Update Winget Package
- runs-on: ubuntu-slim
- timeout-minutes: 10
- needs: [ test, prepare, release ]
-
- steps:
- - name: Checkout Repository
- uses: actions/checkout@v4
-
- - name: Update Winget manifest
- uses: vedantmgoyal9/winget-releaser@main
- with:
- identifier: frequency403.OpenSSHGUI
- version: ${{ needs.prepare.outputs.version }}
- release-tag: ${{ needs.prepare.outputs.tag }}
- installers-regex: 'win-x64\.exe$'
- token: ${{ secrets.WINGET_GITHUB_TOKEN }}
+ generate_release_notes: true
\ No newline at end of file
diff --git a/.github/workflows/deploy-release.yml b/.github/workflows/deploy-release.yml
new file mode 100644
index 0000000..56bab68
--- /dev/null
+++ b/.github/workflows/deploy-release.yml
@@ -0,0 +1,85 @@
+name: Deploy release to consumers
+
+on:
+ release:
+ types: [released]
+
+permissions:
+ contents: read
+
+jobs:
+ get_version:
+ name: Extract Version
+ runs-on: ubuntu-latest
+ outputs:
+ version: ${{ steps.parse.outputs.version }}
+ tag: ${{ steps.parse.outputs.tag }}
+
+ steps:
+ - name: Parse release metadata
+ id: parse
+ run: |
+ set -euo pipefail
+
+ TAG="${{ github.event.release.tag_name }}"
+ VERSION="${TAG#v}"
+
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
+ echo "tag=$TAG" >> "$GITHUB_OUTPUT"
+
+ aur_publish:
+ name: Publish AUR packages
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ needs: get_version
+
+ steps:
+ - name: Checkout PKGBUILD only
+ uses: actions/checkout@v6
+ with:
+ ref: ${{ github.event.release.tag_name }}
+ fetch-depth: 1
+ sparse-checkout-cone-mode: false
+ sparse-checkout: |
+ openssh-gui-bin/PKGBUILD
+
+ - name: Update PKGBUILD version
+ run: |
+ set -euo pipefail
+
+ VERSION="${{ needs.get_version.outputs.version }}"
+
+ sed -i "s/^pkgver=.*/pkgver=$VERSION/" openssh-gui-bin/PKGBUILD
+ sed -i "s/^pkgrel=.*/pkgrel=1/" openssh-gui-bin/PKGBUILD
+
+ - name: Deploy to AUR
+ uses: ./.github/actions/deploy-aur
+ with:
+ pkgname: openssh-gui-bin
+ pkgbuild: openssh-gui-bin/PKGBUILD
+ ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
+ commit_username: ${{ github.repository_owner }}
+ commit_email: ${{ github.repository_owner }}@users.noreply.github.com
+ commit_message: "Update to ${{ needs.get_version.outputs.tag }}"
+ force_push: 'false'
+ regenerate_srcinfo: 'false'
+ updpkgsums: 'true'
+
+ winget_publish:
+ name: Update Winget Package
+ runs-on: ubuntu-slim
+ needs: get_version
+ timeout-minutes: 10
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+
+ - name: Update Winget manifest
+ uses: vedantmgoyal9/winget-releaser@main
+ with:
+ max-versions-to-keep: 5
+ identifier: frequency403.OpenSSHGUI
+ version: ${{ needs.get_version.outputs.version }}
+ release-tag: ${{ needs.get_version.outputs.tag }}
+ installers-regex: 'win-x64\.exe$'
+ token: ${{ secrets.WINGET_GITHUB_TOKEN }}
diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml
index 06cd6a8..f953da4 100644
--- a/.github/workflows/staging.yml
+++ b/.github/workflows/staging.yml
@@ -10,7 +10,7 @@ permissions:
concurrency:
group: staging-${{ github.ref }}
- cancel-in-progress: true # Supersede previous run on rapid pushes
+ cancel-in-progress: true
jobs:
test:
@@ -28,7 +28,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Determine Version
id: version
@@ -42,30 +42,31 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
- fetch-depth: 1
+ fetch-depth: 0
- - name: Update openssh-gui-git PKGBUILD
+ - name: Update PKGBUILD
run: |
set -euo pipefail
DATE=$(date +%Y%m%d)
HASH=$(git rev-parse --short HEAD)
- # pkgver must only contain [a-zA-Z0-9._] — no + or -
AUR_VERSION="${{ needs.prepare.outputs.version }}.${DATE}.${HASH}"
sed -i "s/^pkgver=.*/pkgver=$AUR_VERSION/" openssh-gui-git/PKGBUILD
- sed -i "s/^pkgrel=.*/pkgrel=1/" openssh-gui-git/PKGBUILD
+ sed -i "s/^pkgrel=.*/pkgrel=1/" openssh-gui-git/PKGBUILD
echo "Updated PKGBUILD:"
grep -E '^(pkgver=|pkgrel=)' openssh-gui-git/PKGBUILD
- - name: Publish AUR (openssh-gui-git)
- uses: KSXGitHub/github-actions-deploy-aur@v4.1.1
+ - name: Deploy to AUR
+ uses: ./.github/actions/deploy-aur
with:
pkgname: openssh-gui-git
- pkgbuild: ./openssh-gui-git/PKGBUILD
+ pkgbuild: openssh-gui-git/PKGBUILD
+ ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
commit_username: ${{ github.repository_owner }}
commit_email: ${{ github.repository_owner }}@users.noreply.github.com
- ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
commit_message: "Development update ${{ needs.prepare.outputs.tag }}"
+ force_push: 'true'
+ regenerate_srcinfo: 'true'
\ No newline at end of file
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 060c411..124ee6a 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -24,7 +24,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Setup .NET environment
uses: ./.github/actions/dotnet-setup
diff --git a/Directory.Build.props b/Directory.Build.props
index 9965a13..68eec9f 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,7 +5,7 @@
enable
default
https://github.com/frequency403/OpenSSH-GUI
- 3.1.6
+ 3.1.7
true
diff --git a/openssh-gui-bin/PKGBUILD b/openssh-gui-bin/PKGBUILD
index 34b33f6..28501eb 100644
--- a/openssh-gui-bin/PKGBUILD
+++ b/openssh-gui-bin/PKGBUILD
@@ -12,28 +12,11 @@ options=('!strip')
provides=('openssh-gui')
conflicts=('openssh-gui' 'openssh-gui-git' 'openssh-gui-nightly')
-_relurl="https://github.com/frequency403/OpenSSH-GUI/releases/download/v${pkgver}"
-_rawurl="https://raw.githubusercontent.com/frequency403/OpenSSH-GUI/v${pkgver}"
-
source=(
- "${pkgname}-${pkgver}::${_relurl}/OpenSSH-GUI-linux-x64"
- "${pkgname}-icon-${pkgver}.png::${_relurl}/appicon.png"
- "${pkgname}-desktop-${pkgver}.desktop::${_relurl}/io.github.frequency403.openssh_gui.desktop"
- "${pkgname}-license-${pkgver}::${_rawurl}/LICENSE"
+ "openssh-gui::https://github.com/frequency403/OpenSSH-GUI/releases/download/v${pkgver}/OpenSSH-GUI-linux-x64"
+ "openssh-gui-icon::https://github.com/frequency403/OpenSSH-GUI/releases/download/v${pkgver}/appicon.png"
+ "openssh-gui-desktop::https://github.com/frequency403/OpenSSH-GUI/releases/download/v${pkgver}/io.github.frequency403.openssh_gui.desktop"
+ "LICENSE::https://raw.githubusercontent.com/frequency403/OpenSSH-GUI/v${pkgver}/LICENSE"
)
-sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP')
-
-package() {
- install -Dm755 "${srcdir}/${pkgname}-${pkgver}" \
- "${pkgdir}/usr/bin/openssh-gui"
-
- install -Dm644 "${srcdir}/${pkgname}-icon-${pkgver}.png" \
- "${pkgdir}/usr/share/icons/hicolor/256x256/apps/openssh-gui.png"
-
- install -Dm644 "${srcdir}/${pkgname}-desktop-${pkgver}.desktop" \
- "${pkgdir}/usr/share/applications/io.github.frequency403.openssh_gui.desktop"
-
- install -Dm644 "${srcdir}/${pkgname}-license-${pkgver}" \
- "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
-}
\ No newline at end of file
+sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP')
\ No newline at end of file