Skip to content
Closed
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
84 changes: 80 additions & 4 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ on:
push:
tags:
- v*.*.*

jobs:
build-wireguard-go:
strategy:
Expand Down Expand Up @@ -57,6 +56,83 @@ jobs:
uses: ./.github/workflows/sbom.yml
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
ubuntu-22-04-build:
needs:
- create-release
runs-on:
- self-hosted
- Linux
- ${{ matrix.architecture }}
strategy:
fail-fast: false
matrix:
architecture: [ARM64, X64]
include:
- architecture: ARM64
deb_arch: arm64
binary_arch: aarch64
- architecture: X64
deb_arch: amd64
binary_arch: x86_64
container:
image: ubuntu:22.04
env:
DEBIAN_FRONTEND: noninteractive
HOME: /root
RUSTUP_HOME: /root/.rustup
CARGO_HOME: /root/.cargo
steps:
- name: git install
run: |
apt-get update
apt-get install -y git curl ca-certificates
git config --global --add safe.directory '*'
- uses: actions/checkout@v5
with:
submodules: "recursive"
- uses: pnpm/action-setup@v4
with:
version: 10.17
run_install: false
- uses: actions/setup-node@v5
with:
node-version: "24"
- name: Get pnpm store directory
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV}
- name: Write release version
run: |
VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1)
echo Version: $VERSION
echo "VERSION=$VERSION" >> ${GITHUB_ENV}
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-build-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-build-store-
- name: Install Node dependencies
run: pnpm install --frozen-lockfile
- uses: dtolnay/rust-toolchain@stable
- name: Install dependencies
run: |
apt-get install -y build-essential libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm
- name: Build packages
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: "--bundles deb"
- name: Upload DEB
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: src-tauri/target/release/bundle/deb/defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}.deb
asset_name: defguard-client_${{ env.VERSION }}_${{ matrix.deb_arch }}_ubuntu-22-04-lts.deb
asset_content_type: application/octet-stream

build-linux:
needs:
Expand Down Expand Up @@ -85,12 +161,12 @@ jobs:
VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1)
echo Version: $VERSION
echo "VERSION=$VERSION" >> ${GITHUB_ENV}
- uses: actions/setup-node@v4
- uses: actions/setup-node@v5
with:
node-version: "22"
node-version: "24"
- uses: pnpm/action-setup@v4
with:
version: 10
version: 10.17
run_install: false
- name: Get pnpm store directory
shell: bash
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/sbom-regenerate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
RELEASES_JSON=$(gh api repos/${{ github.repository }}/releases \
--jq '[.[] | select(.draft == false) | {tagName: .tag_name, uploadUrl: .upload_url}][:1]')
--jq '[.[]
| select(.draft == false and (.tag_name | test("^v[0-9]+\\.[0-9]+\\.[0-9]+$")))
| {tagName: .tag_name, uploadUrl: .upload_url}][:1]')
echo "releases=$RELEASES_JSON" >> $GITHUB_OUTPUT
regenerate-for-release:
name: Regenerate SBOM for release
Expand Down
6 changes: 0 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,6 @@ Built packages are available after in `src-tauri/target/release/bundle`.

Remove `default-run` line from `[package]` section in `Cargo.toml` to build the project.

# Built and sponsored by

<p align="center">
<a href="https://teonite.com/services/rust/" target="_blank"><img src="https://drive.google.com/uc?export=view&id=1z0fxSsZztoaeVWxHw2MbPbuOHMe3OsqN" alt="build by teonite" /></a>
</p>

# Legal

WireGuard® is [registered trademarks](https://www.wireguard.com/trademark-policy/) of Jason A. Donenfeld.
Expand Down
2 changes: 1 addition & 1 deletion nix/package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
makeDesktopItem,
}: let
pname = "defguard-client";
version = "1.5.1"; # TODO: Get this from Cargo.toml or git
version = "1.5.2"; # TODO: Get this from Cargo.toml or git

desktopItem = makeDesktopItem {
name = pname;
Expand Down
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "defguard-client",
"private": false,
"version": "1.5.1",
"version": "1.5.2",
"type": "module",
"scripts": {
"dev": "npm-run-all --parallel vite typesafe-i18n",
Expand Down Expand Up @@ -64,6 +64,7 @@
"@tauri-apps/plugin-notification": "^2.3.1",
"@tauri-apps/plugin-opener": "^2.5.0",
"@tauri-apps/plugin-os": "^2.3.1",
"@tauri-apps/plugin-process": "^2.3.0",
"@tauri-apps/plugin-window-state": "^2.4.0",
"@types/byte-size": "^8.1.2",
"@use-gesture/react": "^10.3.1",
Expand Down Expand Up @@ -92,6 +93,7 @@
"react-click-away-listener": "^2.4.0",
"react-dom": "^19.1.1",
"react-hook-form": "^7.63.0",
"react-hotkeys-hook": "^5.2.1",
"react-loading-skeleton": "^3.5.0",
"react-markdown": "^10.1.0",
"react-qr-code": "^2.0.18",
Expand Down Expand Up @@ -132,4 +134,4 @@
"volta": {
"node": "20.5.1"
}
}
}
24 changes: 24 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 15 additions & 10 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ edition = "2021"
homepage = "https://github.com/DefGuard/client"
license-file = "../LICENSE.md"
rust-version = "1.80"
version = "1.5.1"
version = "1.5.2"

[package]
name = "defguard-client"
Expand Down Expand Up @@ -110,6 +110,7 @@ x25519-dalek = { version = "2", features = [
"serde",
"static_secrets",
] }
tauri-plugin-process = "2.3.0"

[target.'cfg(unix)'.dependencies]
hyper-util = "0.1"
Expand Down
1 change: 1 addition & 0 deletions src-tauri/capabilities/default.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
"os:allow-hostname",
"dialog:default",
"clipboard-manager:allow-write-text",
"process:allow-exit",
{
"identifier": "http:default",
"allow": [
Expand Down
5 changes: 5 additions & 0 deletions src-tauri/deny.toml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,11 @@ ignore = [
{ id = "RUSTSEC-2024-0420", reason = "Tauri v2 GTK3 dependency (unmaintained)" },
{ id = "RUSTSEC-2025-0052", reason = "Discontinued, but dark-light v2.0.0 needs it" },
{ id = "RUSTSEC-2025-0057", reason = "Tauri needs it" },
{ id = "RUSTSEC-2025-0075", reason = "Tauri v2 dependency (unmaintained)" },
{ id = "RUSTSEC-2025-0080", reason = "Tauri v2 dependency (unmaintained)" },
{ id = "RUSTSEC-2025-0081", reason = "Tauri v2 dependency (unmaintained)" },
{ id = "RUSTSEC-2025-0098", reason = "Tauri v2 dependency (unmaintained)" },
{ id = "RUSTSEC-2025-0100", reason = "Tauri v2 dependency (unmaintained)" },
]
# If this is true, then cargo deny will use the git executable to fetch advisory database.
# If this is false, then it uses a built-in git library.
Expand Down
1 change: 1 addition & 0 deletions src-tauri/src/bin/defguard-client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ fn main() {
.plugin(tauri_plugin_window_state::Builder::new().build())
.plugin(tauri_plugin_opener::init())
.plugin(tauri_plugin_os::init())
.plugin(tauri_plugin_process::init())
.setup(|app| {
// Register for linux and dev windows builds
#[cfg(any(target_os = "linux", all(debug_assertions, windows)))]
Expand Down
4 changes: 2 additions & 2 deletions src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@
"productName": "defguard-client",
"mainBinaryName": "defguard-client",
"identifier": "net.defguard",
"version": "1.5.1",
"version": "1.5.2",
"app": {
"security": {
"capabilities": [
Expand Down Expand Up @@ -107,4 +107,4 @@
}
}
}
}
}
Loading
Loading