Skip to content

Conversation

@volodymyrZotov
Copy link
Contributor

@volodymyrZotov volodymyrZotov commented Jul 19, 2025

This MR adds support for Windows runners.

Deiced to go with TS implementation, as it:

  • Allows to add new features easier than bash script.
  • Easier to test, debug and support
  • Better error handling
  • Unlocks features like input parameters validation, caching etc.
  • Aligns with GitHub best practices (many official actions use node20)

Notes for the reviewer

  1. Project boilerplate is taken from load-secrets-action. That means all the configuration files (.husky, .prettieringnore, jest.config.js etc) are copied from there.
  2. Config files are moved to root instead of conifg as in load-secrets-action, as most of the tools (like Goland test runner etc) expect config files to be in the root of the project. With that we avoid additional configuration.
  3. Entry point changed to "dist/index.js"
  4. Replicated the functionality of the install-cli.sh in Typescript.
  5. Latest CLI version now will be fetched from https://app-updates.agilebits.com/latest
  6. Latest @1password/[email protected] uses eslint@v9 which requires move eslint config from package.json to eslint.config.js (see docs)
  7. Readme will be updated after we release this. Here is open PR

How to test

Pipeline should pass. It will cover an installation of different versions on all runners including Windows.

Resolves #3

@volodymyrZotov volodymyrZotov requested a review from edif2008 July 22, 2025 19:00
@volodymyrZotov volodymyrZotov marked this pull request as ready for review July 22, 2025 19:02
This was referenced Jul 22, 2025
Copy link
Member

@edif2008 edif2008 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review: ✅

The overall approach is really solid. The thing that I think can be further optimized is the installation process. Currently you've implemented branches for each OS, but I think with macOS installing from .zip instead of .pkg, it can be further simplified.

I've left other small nits.

@volodymyrZotov
Copy link
Contributor Author

@edif2008

Currently you've implemented branches for each OS, but I think with macOS installing from .zip instead of .pkg, it can be further simplified.

Good point. My initial implementation used .zip, but then I found that CLI versions <2.20 doesn't have .zip installer.
That's why to have a single installation implementation for macos I decided to go with .pkg, as it covers all the versions we have.

@edif2008
Copy link
Member

edif2008 commented Jul 23, 2025

CLI versions <2.20 doesn't have .zip installer.

I'd check if there's any usage of CLI versions lower than that and if not, I'd say it's safe to make that version as a minimum supported.

@volodymyrZotov
Copy link
Contributor Author

There are users that use CLI <2.20.0

Copy link
Member

@edif2008 edif2008 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pipeline passing shows that the action now supports installing the CLI on Windows as well. Appreciate you rewriting this as a Typescript action. It will make maintaining this much easier.

@volodymyrZotov volodymyrZotov merged commit bc7bac4 into main Jul 24, 2025
14 checks passed
@volodymyrZotov volodymyrZotov deleted the vzt/windows-support branch July 24, 2025 21:21
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

Successfully merging this pull request may close these issues.

No such file or directory in windows2019

3 participants