From 9145be78a3b59c0c2b03274f93414605d7d3868d Mon Sep 17 00:00:00 2001 From: rattatwinko Date: Wed, 27 Aug 2025 21:08:04 +0200 Subject: [PATCH] GPG - KeySign and runnable Linux ELF Binary --- .gitea/workflows/compile.yaml | 55 +++++++++++++++++++++++++++++++++-- README.md | 13 ++++++++- key/bytechat-public.gpg | 51 ++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 key/bytechat-public.gpg diff --git a/.gitea/workflows/compile.yaml b/.gitea/workflows/compile.yaml index 5077ccc..ab69f34 100644 --- a/.gitea/workflows/compile.yaml +++ b/.gitea/workflows/compile.yaml @@ -33,7 +33,10 @@ jobs: build-essential \ curl \ pkg-config \ - xdg-utils + xdg-utils \ + rpm \ + dpkg-sig \ + gnupg2 - name: Add Windows Rust target run: rustup target add x86_64-pc-windows-gnu @@ -51,6 +54,47 @@ jobs: cd src-tauri cargo build --release --target x86_64-pc-windows-gnu + - name: Make Linux ELF executable + run: chmod +x src-tauri/target/release/bytechat-desktop + + # 🔑 Import GPG private key (with passphrase) + - name: Import GPG key + run: | + echo "$GPG_PRIVATE_KEY" | gpg --batch --import + echo "$GPG_KEY_ID:6:" | gpg --import-ownertrust + env: + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }} + + # 🐧 Sign Linux packages + - name: Sign Linux .deb + run: | + for f in src-tauri/target/release/bundle/deb/*.deb; do + echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 \ + --pinentry-mode loopback --detach-sign -a "$f" + done + env: + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + + - name: Sign Linux .rpm + run: | + for f in src-tauri/target/release/bundle/rpm/*.rpm; do + echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 \ + --pinentry-mode loopback --detach-sign -a "$f" + done + env: + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + + # 🪟 Sign Windows exe with GPG + - name: Sign Windows exe + run: | + exe=src-tauri/target/x86_64-pc-windows-gnu/release/bytechat-desktop.exe + echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 \ + --pinentry-mode loopback --detach-sign -a "$exe" + env: + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + + # 📦 Upload Linux artifacts + signatures + public key - name: Upload Linux packages uses: actions/upload-artifact@v3 with: @@ -58,10 +102,17 @@ jobs: path: | src-tauri/target/release/bytechat-desktop src-tauri/target/release/bundle/deb/*.deb + src-tauri/target/release/bundle/deb/*.asc src-tauri/target/release/bundle/rpm/*.rpm + src-tauri/target/release/bundle/rpm/*.asc + key/bytechat-public.gpg + # 📦 Upload Windows exe + signature - name: Upload Windows exe uses: actions/upload-artifact@v3 with: name: tauri-windows-exe - path: src-tauri/target/x86_64-pc-windows-gnu/release/bytechat-desktop.exe + path: | + src-tauri/target/x86_64-pc-windows-gnu/release/bytechat-desktop.exe + src-tauri/target/x86_64-pc-windows-gnu/release/bytechat-desktop.exe.asc + diff --git a/README.md b/README.md index 77421ea..749d32c 100644 --- a/README.md +++ b/README.md @@ -1 +1,12 @@ -# Tauri Desktop Application \ No newline at end of file +# Tauri Desktop Application + +This is the Desktop App for [ByteChat](https://rattatwinko.servecounterstrike.com/gitea/rattatwinko/bytechat) ,it supports Windows and Linux for now. And probably the future + +## Recent Focus: + +- [x] - GPG Key Signage + +### Stack + +Idk Rust javascript html and css. just look at the repo. +and tauri \ No newline at end of file diff --git a/key/bytechat-public.gpg b/key/bytechat-public.gpg new file mode 100644 index 0000000..8f4e242 --- /dev/null +++ b/key/bytechat-public.gpg @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=4tP+ +-----END PGP PUBLIC KEY BLOCK-----