ci: use consistent binary dest path naming (#4772)

This commit is contained in:
Jamil
2024-04-24 13:11:00 -07:00
committed by GitHub
parent cdeb77c5d5
commit af066dcb97
4 changed files with 38 additions and 32 deletions

View File

@@ -29,19 +29,27 @@ jobs:
matrix:
include:
- runs-on: ubuntu-20.04
binary-dest-path: firezone-linux-gui-client
# mark:automatic-version
binary-dest-path: firezone-client-gui-linux_1.0.1_x86_64
rename-script: ../../scripts/build/tauri-rename-ubuntu.sh
upload-script: ../../scripts/build/tauri-upload-ubuntu.sh
exe-artifact: rust/gui-client/firezone-linux-gui-client-amd64
syms-artifact: rust/gui-client/firezone-linux-gui-client-amd64.dwp
pkg-artifact: rust/gui-client/firezone-linux-gui-client_amd64.deb
# mark:automatic-version
exe-artifact: rust/gui-client/firezone-client-gui-linux_1.0.1_x86_64
# mark:automatic-version
syms-artifact: rust/gui-client/firezone-client-gui-linux_1.0.1_x86_64.dwp
# mark:automatic-version
pkg-artifact: rust/gui-client/firezone-client-gui-linux_1.0.1_x86_64.deb
- runs-on: windows-2019
binary-dest-path: firezone-client-gui-windows
# mark:automatic-version
binary-dest-path: firezone-client-gui-windows_1.0.1_x86_64
rename-script: ../../scripts/build/tauri-rename-windows.sh
upload-script: ../../scripts/build/tauri-upload-windows.sh
exe-artifact: rust/gui-client/firezone-client-gui-windows-x86_64.exe
syms-artifact: rust/gui-client/firezone-client-gui-windows-x86_64.pdb
pkg-artifact: rust/gui-client/firezone-client-gui-windows-x86_64.msi
# mark:automatic-version
exe-artifact: rust/gui-client/firezone-client-gui-windows_1.0.1_x86_64.exe
# mark:automatic-version
syms-artifact: rust/gui-client/firezone-client-gui-windows_1.0.1_x86_64.pdb
# mark:automatic-version
pkg-artifact: rust/gui-client/firezone-client-gui-windows_1.0.1_x86_64.msi
env:
BINARY_DEST_PATH: ${{ matrix.binary-dest-path }}
AZURE_KEY_VAULT_URI: ${{ secrets.AZURE_KEY_VAULT_URI }}
@@ -83,21 +91,21 @@ jobs:
- name: Upload exe
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.binary-dest-path }}-x86_64-exe
name: ${{ matrix.binary-dest-path }}-exe
path: |
${{ matrix.exe-artifact }}
if-no-files-found: error
- name: Upload debug symbols
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.binary-dest-path }}-x86_64-syms
name: ${{ matrix.binary-dest-path }}-syms
path: |
${{ matrix.syms-artifact }}
if-no-files-found: error
- name: Upload package
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.binary-dest-path }}-x86_64-pkg
name: ${{ matrix.binary-dest-path }}-pkg
path: |
${{ matrix.pkg-artifact }}
if-no-files-found: error

View File

@@ -7,25 +7,23 @@ ls ../target/release ../target/release/bundle/deb
# Used for release artifact
# In release mode the name comes from tauri.conf.json
# Using a glob for the source, there will only be one exe and one deb anyway
cp ../target/release/firezone "$BINARY_DEST_PATH"-amd64
cp ../target/release/firezone-gui-client.dwp "$BINARY_DEST_PATH"-amd64.dwp
cp ../target/release/bundle/deb/*_amd64.deb "$BINARY_DEST_PATH"_amd64.deb
cp ../target/release/firezone "$BINARY_DEST_PATH"
cp ../target/release/firezone-gui-client.dwp "$BINARY_DEST_PATH.dwp"
cp ../target/release/bundle/deb/*_amd64.deb "$BINARY_DEST_PATH.deb"
# TODO: Debug symbols for Linux
function make_hash() {
sha256sum "$1"> "$1.sha256sum.txt"
sha256sum "$1" >"$1.sha256sum.txt"
}
# I think we agreed in standup to just match platform conventions
# Firezone for Windows is "-x64" which I believe is Visual Studio's convention
# Debian calls it "amd64". Rust and Linux call it "x86_64". So whatever, it's
# amd64 here. They're all the same.
make_hash "$BINARY_DEST_PATH"-amd64
make_hash "$BINARY_DEST_PATH"-amd64.dwp
make_hash "$BINARY_DEST_PATH"_amd64.deb
# Windows uses x64, Debian amd64. Standardize on x86_64 naming here since that's
# what Rust uses.
make_hash "$BINARY_DEST_PATH"
make_hash "$BINARY_DEST_PATH.dwp"
make_hash "$BINARY_DEST_PATH.deb"
# Test the deb package, since this script is the easiest place to get a release build
sudo dpkg --install "$BINARY_DEST_PATH"_amd64.deb
sudo dpkg --install "$BINARY_DEST_PATH.deb"
# Debug-print the files. The icons and both binaries should be in here
dpkg --listfiles firezone

View File

@@ -6,14 +6,14 @@ ls ../target/release ../target/release/bundle/msi
# Used for release artifact
# In release mode the name comes from tauri.conf.json
cp ../target/release/Firezone.exe "$BINARY_DEST_PATH-x86_64.exe"
cp ../target/release/bundle/msi/*.msi "$BINARY_DEST_PATH-x86_64.msi"
cp ../target/release/firezone_gui_client.pdb "$BINARY_DEST_PATH-x86_64.pdb"
cp ../target/release/Firezone.exe "$BINARY_DEST_PATH.exe"
cp ../target/release/bundle/msi/*.msi "$BINARY_DEST_PATH.msi"
cp ../target/release/firezone_gui_client.pdb "$BINARY_DEST_PATH.pdb"
function make_hash() {
sha256sum "$1"> "$1.sha256sum.txt"
sha256sum "$1" >"$1.sha256sum.txt"
}
make_hash "$BINARY_DEST_PATH-x86_64.exe"
make_hash "$BINARY_DEST_PATH-x86_64.msi"
make_hash "$BINARY_DEST_PATH-x86_64.pdb"
make_hash "$BINARY_DEST_PATH.exe"
make_hash "$BINARY_DEST_PATH.msi"
make_hash "$BINARY_DEST_PATH.pdb"

View File

@@ -5,7 +5,7 @@ set -euox pipefail
# This artifact name is tied to the update checker in `gui-client/src-tauri/src/client/updates.rs`
# So we can't put the version number in it until we stop using Github for update checks.
gh release upload "$TAG_NAME" \
"$BINARY_DEST_PATH"_"$TAG_NAME"_x86_64.msi \
"$BINARY_DEST_PATH"_"$TAG_NAME"_x86_64.msi.sha256sum.txt \
"$BINARY_DEST_PATH".msi \
"$BINARY_DEST_PATH".msi.sha256sum.txt \
--clobber \
--repo "$REPOSITORY"