From e0326be80750d2c54902200fc85c39522614035c Mon Sep 17 00:00:00 2001 From: Reactor Scram Date: Mon, 8 Jul 2024 21:30:48 +0000 Subject: [PATCH] ci(gui-client/linux): see if we can build the GUI Client for ARM (#5793) This would make it a little easier to replicate prod issues on old releases ```[tasklist] ### Tasks - [x] Add comment to changelog - [x] Check Vercel preview - [x] Request review - [x] Update arches link - [x] `apt-get update` - [x] Re-request review ``` --- .github/actions/setup-tauri/action.yml | 6 +++--- .github/workflows/_tauri.yml | 9 +++++++++ .../kb/user-guides/linux-gui-client/readme.mdx | 3 ++- website/src/components/Changelog/GUI.tsx | 18 +++++++++++++++++- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/.github/actions/setup-tauri/action.yml b/.github/actions/setup-tauri/action.yml index 2684e04c5..96aa62e24 100644 --- a/.github/actions/setup-tauri/action.yml +++ b/.github/actions/setup-tauri/action.yml @@ -15,18 +15,18 @@ runs: shell: bash - name: Install Tauri build deps if: ${{ runner.os == 'Linux' }} - run: sudo apt-get install libwebkit2gtk-4.0-dev libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev + run: sudo apt-get --yes install build-essential libwebkit2gtk-4.0-dev libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev shell: bash - name: Install gnome-keyring if: ${{ runner.os == 'Linux' }} - run: sudo apt-get install gnome-keyring + run: sudo apt-get --yes install gnome-keyring shell: bash # This is only needed if we'll launch the Tauri GUI, so it's redundant for clippy / test # This is what the Tauri CI tests use # - name: Install Tauri runtime deps if: ${{ runner.os == 'Linux' && inputs.runtime == 'true' }} - run: sudo apt-get install at-spi2-core xvfb + run: sudo apt-get --yes install at-spi2-core xvfb shell: bash - uses: actions/cache@v4 if: ${{ runner.os == 'Windows' && inputs.runtime == 'true' }} diff --git a/.github/workflows/_tauri.yml b/.github/workflows/_tauri.yml index a54cebb49..20aff7ad4 100644 --- a/.github/workflows/_tauri.yml +++ b/.github/workflows/_tauri.yml @@ -33,6 +33,15 @@ jobs: syms-artifact: rust/gui-client/firezone-client-gui-linux_1.1.5_x86_64.dwp # mark:next-gui-version pkg-artifact: rust/gui-client/firezone-client-gui-linux_1.1.5_x86_64.deb + - runs-on: ubuntu-20.04-arm + # mark:next-gui-version + binary-dest-path: firezone-client-gui-linux_1.1.5_aarch64 + rename-script: ../../scripts/build/tauri-rename-ubuntu.sh + upload-script: ../../scripts/build/tauri-upload-ubuntu.sh + # mark:next-gui-version + syms-artifact: rust/gui-client/firezone-client-gui-linux_1.1.5_aarch64.dwp + # mark:next-gui-version + pkg-artifact: rust/gui-client/firezone-client-gui-linux_1.1.5_aarch64.deb - runs-on: windows-2019 # mark:next-gui-version binary-dest-path: firezone-client-gui-windows_1.1.5_x86_64 diff --git a/website/src/app/kb/user-guides/linux-gui-client/readme.mdx b/website/src/app/kb/user-guides/linux-gui-client/readme.mdx index f09aed593..c97c6a964 100644 --- a/website/src/app/kb/user-guides/linux-gui-client/readme.mdx +++ b/website/src/app/kb/user-guides/linux-gui-client/readme.mdx @@ -16,7 +16,7 @@ present to authenticate with your identity provider interactively. - Ubuntu **20.04** or **22.04**. Other distributions may work, but are not officially supported. -- **x86-64** CPU architecture +- **x86-64** or **ARM64** CPU architecture - **systemd-resolved**. Ubuntu already uses this by default. ## Installation @@ -25,6 +25,7 @@ Download the `.deb` package from our [changelog page](/changelog), or from the direct link below: - [Download the Linux GUI `.deb` for `x86-64`](/dl/firezone-client-gui-linux/latest/x86_64) +- [Download the Linux GUI `.deb` for `ARM64`](/dl/firezone-client-gui-linux/latest/aarch64) Run these commands: diff --git a/website/src/components/Changelog/GUI.tsx b/website/src/components/Changelog/GUI.tsx index abcae46c8..b392ea0b7 100644 --- a/website/src/components/Changelog/GUI.tsx +++ b/website/src/components/Changelog/GUI.tsx @@ -7,10 +7,26 @@ export default function GUI({ title }: { title: string }) { title === "Windows" ? "/dl/firezone-client-gui-windows/:version/:arch" : "/dl/firezone-client-gui-linux/:version/:arch"; - const arches = ["x86_64"]; + const arches = + title === "Windows" + ? ["x86_64"] + : ["x86_64", "aarch64"]; return ( + {/* +
    +
  • + The Linux GUI Client is now{" "} + + built for both x86-64 and ARM64 + {" "} +
  • +
+
*/}