Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: add automated releases / ARM builds #237

Open
0x07cf-dev opened this issue Feb 3, 2025 · 0 comments
Open

Feature Request: add automated releases / ARM builds #237

0x07cf-dev opened this issue Feb 3, 2025 · 0 comments

Comments

@0x07cf-dev
Copy link

Hi @doy. First of all, thank you for this project! Though I have been using it for only a few days, it's a breath of fresh air compared to the official CLI.

Since I rely on Bitwarden as a secret manager for my dotfiles, and not only is the official CLI terrible, but it also lacks ARM support, I have decided to look into rbw. I have looked everywhere but it seems like this repo only releases builds for amd64/x86_64 CPUs, and I have a couple of Raspberry Pi's, which are ARM64-based, on which I'd like to install rbw as a secret manager for my dotfiles.

So I forked this repo in order to test a GitHub Actions workflow for automatic releases (triggered whenever a new tag is pushed) so that I can download pre-compiled binaries for ARM, saving myself a lot of time by not having to build the project from source every time.

So I have cloned my own fork locally, and I have used this command to build rbw for my Pis:

$ cargo build --release --target aarch64-unknown-linux-gnu

After building rbw, I have only tried a couple of basic operations, such as login, get, ls, config, and it seems to work just fine on ARM, at least as far as these commands are concerned.

I am creating this issue, instead of a PR, as I genuinely don't know anything about your release pipeline, whether you do automatic or manual releases, whether you'd like to use GitHub Actions, and so on, so I'd rather wait on your input on this matter. Also, I have no experience with Rust, and you might be aware of some quirks or issues that would arise on different architectures, as perhaps there is a reason for no ARM builds after all.

Anyway, here is a release that my workflow generated based on the new changelog entry for the tag that triggered it (I have pushed a test tag 1.13.3), and here is the run that created it.

As you can see, the builds seem to be working:

# x86_64 builds do not work on ARM systems.
❯ curl -LsO https://github.com/0x07cf-dev/rbw/releases/download/1.13.3/rbw_1.13.3_linux_amd64.tar.gz
❯ tar -xf rbw_1.13.3_linux_amd64.tar.gz && ./rbw
zsh: formato eseguibile non valido: ./rbw

# But ARM builds obviously do.
❯ curl -LsO https://github.com/0x07cf-dev/rbw/releases/download/1.13.3/rbw_1.13.3_linux_arm64.tar.gz
❯ tar -xf rbw_1.13.3_linux_arm64.tar.gz && ./rbw
Unofficial Bitwarden CLI

Usage: rbw <COMMAND>

(Rest of the output...)

The only things that I have yet to tackle are:

  • Including the shell completions inside the release archives.
  • Testing macOS builds.

The first one does not seem to be an issue to implement, and I will look into it when I have some free time. The second one is an issue for me, as I do not own any macOS system.

Please, let me know whether you'd like to introduce a workflow for automated releases. If so, I can submit a PR.

It should be noted that the workflow throws an error if a new tag is pushed without a relevant changelog entry. As a result, in my local branch, I had to add a few lines to the changelog file in order to test the workflow; I don't personally feel like this alone should warrant a version bump, so I wouldn't include the changes to the changelog in a PR.

Let me know how to proceed. Thank you so much for your time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant