From e9f699af81b4afcdfc6979675b5bce5a77faf7c7 Mon Sep 17 00:00:00 2001 From: Mohammadreza Hajianpour Date: Thu, 14 May 2026 00:03:02 +0330 Subject: [PATCH 1/4] Add FreeBSD Rust build workflow --- .github/workflows/freebsd-build.yml | 56 +++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 .github/workflows/freebsd-build.yml diff --git a/.github/workflows/freebsd-build.yml b/.github/workflows/freebsd-build.yml new file mode 100644 index 00000000..4c5ec6d2 --- /dev/null +++ b/.github/workflows/freebsd-build.yml @@ -0,0 +1,56 @@ +name: FreeBSD Rust Build + +on: + workflow_dispatch: + push: + branches: + - main + pull_request: + +jobs: + freebsd: + name: FreeBSD ${{ matrix.freebsd-version }} / ${{ matrix.target }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + include: + - freebsd-version: "14.2" + target: x86_64-unknown-freebsd + - freebsd-version: "15.0" + target: x86_64-unknown-freebsd + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build on FreeBSD ${{ matrix.freebsd-version }} + uses: vmactions/freebsd-vm@v1 + with: + release: ${{ matrix.freebsd-version }} + usesh: true + prepare: | + pkg install -y curl git bash gmake pkgconf + curl https://sh.rustup.rs -sSf | sh -s -- -y + run: | + set -e + . "$HOME/.cargo/env" + + rustup default stable + rustc --version + cargo --version + + cargo build --release + + mkdir -p dist + BIN_NAME="your-binary-name" + + cp "target/release/$BIN_NAME" "dist/${BIN_NAME}-freebsd-${{ matrix.freebsd-version }}-x86_64" + tar -C dist -czf "dist/${BIN_NAME}-freebsd-${{ matrix.freebsd-version }}-x86_64.tar.gz" "${BIN_NAME}-freebsd-${{ matrix.freebsd-version }}-x86_64" + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: freebsd-${{ matrix.freebsd-version }}-x86_64 + path: dist/*.tar.gz From 0ad27f57067342eee92179a93777eebcd0ff2405 Mon Sep 17 00:00:00 2001 From: Mohammadreza Hajianpour Date: Thu, 14 May 2026 00:13:23 +0330 Subject: [PATCH 2/4] Modify FreeBSD build workflow for version 15.0 Updated FreeBSD build workflow to target FreeBSD 15.0 and include additional binaries in the distribution. --- .github/workflows/freebsd-build.yml | 36 +++++++++++++---------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/.github/workflows/freebsd-build.yml b/.github/workflows/freebsd-build.yml index 4c5ec6d2..ba57c9a0 100644 --- a/.github/workflows/freebsd-build.yml +++ b/.github/workflows/freebsd-build.yml @@ -9,48 +9,44 @@ on: jobs: freebsd: - name: FreeBSD ${{ matrix.freebsd-version }} / ${{ matrix.target }} + name: FreeBSD x86_64 runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - freebsd-version: "14.2" - target: x86_64-unknown-freebsd - - freebsd-version: "15.0" - target: x86_64-unknown-freebsd - steps: - name: Checkout uses: actions/checkout@v4 - - name: Build on FreeBSD ${{ matrix.freebsd-version }} + - name: Build on FreeBSD 15.0 uses: vmactions/freebsd-vm@v1 with: - release: ${{ matrix.freebsd-version }} + release: "15.0" usesh: true prepare: | - pkg install -y curl git bash gmake pkgconf + pkg install -y curl git bash gmake pkgconf openssl curl https://sh.rustup.rs -sSf | sh -s -- -y run: | set -e + . "$HOME/.cargo/env" rustup default stable + rustc --version cargo --version - cargo build --release + cargo build --release --bin mhrv-rs --bin mhrv-rs-ui + + mkdir -p dist/freebsd-x86_64 - mkdir -p dist - BIN_NAME="your-binary-name" + cp target/release/mhrv-rs dist/freebsd-x86_64/ + cp target/release/mhrv-rs-ui dist/freebsd-x86_64/ - cp "target/release/$BIN_NAME" "dist/${BIN_NAME}-freebsd-${{ matrix.freebsd-version }}-x86_64" - tar -C dist -czf "dist/${BIN_NAME}-freebsd-${{ matrix.freebsd-version }}-x86_64.tar.gz" "${BIN_NAME}-freebsd-${{ matrix.freebsd-version }}-x86_64" + tar -C dist \ + -czf mhrv-rs-freebsd-x86_64.tar.gz \ + freebsd-x86_64 - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: freebsd-${{ matrix.freebsd-version }}-x86_64 - path: dist/*.tar.gz + name: mhrv-rs-freebsd-x86_64 + path: mhrv-rs-freebsd-x86_64.tar.gz From c396045a7409d1e26dbe8e9e183d005a4c29ea5f Mon Sep 17 00:00:00 2001 From: Mohammadreza Hajianpour Date: Thu, 14 May 2026 00:18:05 +0330 Subject: [PATCH 3/4] Update FreeBSD build workflow to include UI features --- .github/workflows/freebsd-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/freebsd-build.yml b/.github/workflows/freebsd-build.yml index ba57c9a0..9d2d7c46 100644 --- a/.github/workflows/freebsd-build.yml +++ b/.github/workflows/freebsd-build.yml @@ -34,7 +34,8 @@ jobs: rustc --version cargo --version - cargo build --release --bin mhrv-rs --bin mhrv-rs-ui + cargo build --release --bin mhrv-rs + cargo build --release --features ui --bin mhrv-rs-ui mkdir -p dist/freebsd-x86_64 From 56886d0a430a1c2a8215393a73d683f0ad69be02 Mon Sep 17 00:00:00 2001 From: Mohammadreza Hajianpour Date: Thu, 14 May 2026 00:36:23 +0330 Subject: [PATCH 4/4] Update freebsd-build.yml --- .github/workflows/freebsd-build.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/freebsd-build.yml b/.github/workflows/freebsd-build.yml index 9d2d7c46..512ab571 100644 --- a/.github/workflows/freebsd-build.yml +++ b/.github/workflows/freebsd-build.yml @@ -9,7 +9,7 @@ on: jobs: freebsd: - name: FreeBSD x86_64 + name: FreeBSD amd64 runs-on: ubuntu-latest steps: @@ -37,17 +37,17 @@ jobs: cargo build --release --bin mhrv-rs cargo build --release --features ui --bin mhrv-rs-ui - mkdir -p dist/freebsd-x86_64 + mkdir -p dist - cp target/release/mhrv-rs dist/freebsd-x86_64/ - cp target/release/mhrv-rs-ui dist/freebsd-x86_64/ + cp target/release/mhrv-rs dist/mhrv-rs + cp target/release/mhrv-rs-ui dist/mhrv-rs-ui tar -C dist \ - -czf mhrv-rs-freebsd-x86_64.tar.gz \ - freebsd-x86_64 + -czf dist/mhrv-rs-freebsd-amd64.tar.gz \ + mhrv-rs mhrv-rs-ui - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: mhrv-rs-freebsd-x86_64 - path: mhrv-rs-freebsd-x86_64.tar.gz + name: mhrv-rs-freebsd-amd64 + path: dist/mhrv-rs-freebsd-amd64.tar.gz