Commit Graph

21 Commits

Author SHA1 Message Date
Matiss Janis Aboltins
a43b6f5c47 [AI] Experimental CLI tool for Actual (#7208)
* [AI] Add @actual-app/cli package

New CLI tool wrapping the full @actual-app/api surface for interacting with
Actual Budget from the command line. Connects to a sync server and supports
all CRUD operations across accounts, budgets, categories, transactions,
payees, tags, rules, schedules, and AQL queries.

* Refactor CLI options: replace `--quiet` with `--verbose` for improved message control. Update related configurations and tests to reflect this change. Adjust build command in workflow for consistency.

* Refactor tests: streamline imports in connection and accounts test files for improved clarity and consistency. Remove dynamic imports in favor of static imports.

* Enhance package.json: Add exports configuration for module resolution and publish settings. This includes specifying types and default files for better compatibility and clarity in package usage.

* Update package.json exports configuration to support environment-specific module resolution. Added 'development' and 'default' entries for improved clarity in file usage.

* Enhance CLI functionality: Update configuration loading to support additional search places for config files. Refactor error handling in command options to improve validation and user feedback. Introduce new utility functions for parsing boolean flags and update related commands to utilize these functions. Add comprehensive tests for new utility functions to ensure reliability.

* Update CLI TypeScript configuration to include Vitest globals and streamline test imports across multiple test files for improved clarity and consistency.

* Update CLI dependencies and build workflow

- Upgrade Vite to version 8.0.0 and Vitest to version 4.1.0 in package.json.
- Add rollup-plugin-visualizer for bundle analysis.
- Modify build workflow to prepare and upload CLI bundle stats.
- Update size comparison workflow to include CLI stats.
- Remove obsolete vitest.config.ts file as its configuration is now integrated into vite.config.ts.

* Enhance size comparison workflow to include CLI build checks and artifact downloads

- Added steps to wait for CLI build success in both base and PR workflows.
- Included downloading of CLI build artifacts for comparison between base and PR branches.
- Updated failure reporting to account for CLI build status.

* Update documentation to replace "CLI tool" with "Server CLI" for consistency across multiple files. This change clarifies the distinction between the command-line interface for the Actual Budget application and the sync-server CLI tool.

* Refactor configuration to replace "budgetId" with "syncId" across CLI and documentation

* Enhance configuration validation by adding support for 'ACTUAL_ENCRYPTION_PASSWORD' and implementing a new validation function for config file content. Update documentation to clarify error output format for the CLI tool.

* Enhance configuration tests to include 'encryptionPassword' checks for CLI options and environment variables, ensuring proper priority handling in the configuration resolution process.

* Update nightly versioning script to use yarn

* Align versions

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-18 18:22:38 +00:00
Matt Fiddaman
1f821d2849 ⬆️ bump github actions (#7234)
* actions/setup-node

* actions/cache

* actions/checkout

* docker/*

* actions/*-artifact

* actions/stale

* others

* note
2026-03-18 08:53:03 +00:00
Matt Fiddaman
fe624f0158 post bundle size comparison comment in the PR body instead (#6677)
* post size-compare comment in pr body instead of comment

* note
2026-01-18 18:07:48 +00:00
Matiss Janis Aboltins
094da46fb0 lint: move some more rules to oxlint/oxfmt and upgrade linter versions (#6398) 2025-12-13 22:41:21 +00:00
Michael Clark
64bc7dbf6e 🤖 Adding path filters so workflows only run when required (#6364)
* adding path filters to workflows so they only run when required

* trigger them also when the workflow changes

* adding yarn lock in case packages affect e2e

* release notes

* add the package.json in case we modify the scripts

* Remove API changes from size comparison workflow

* Clarify size impact of package changes in workflow

Updated comments to clarify that certain package changes don't affect the size of the web/api.

* Fix comments for VRT update exclusions

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6364

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6364

* Fix comment formatting in VRT update workflow

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-11 19:20:36 +00:00
Matiss Janis Aboltins
7648fc6809 Combine bundle stats comments in PR (#6101)
* Combine bundle stats comments in PR

* Refactor bundle stats comment generation to use a mapping approach for base and head stats, improving argument parsing and validation in the CI action.

* Enhance size comparison workflow by adding steps to checkout the base branch and set up the environment, ensuring accurate build status checks for pull requests.

* Implement size comparison job in GitHub Actions workflow, replacing the deprecated size-compare.yml. This new job downloads build stats from both the base and head branches, processes the stats files, and generates a combined comment for pull requests, enhancing visibility into bundle size changes.

* Add release notes for bundle size stats update, consolidating workflow and PR comment generation.

* Refactor GitHub Actions workflows by removing the deprecated size comparison job from build.yml and introducing a new size-compare.yml workflow. This new workflow enhances build status checks and ensures accurate reporting of bundle size changes for pull requests.

* chore: update action versions and improve error messages in bundle stats scripts

- Updated GitHub Actions to specific commit versions for `upload-artifact` and `checkout`.
- Enhanced error messages in `bundle-stats-comment.mjs` and `update-bundle-stats-comment.mjs` for better clarity and consistency, replacing standard quotes with typographic quotes.

* fix: standardize error messages in bundle-stats-comment.mjs

- Updated error messages in `bundle-stats-comment.mjs` to remove typographic quotes for consistency and clarity.
2025-11-13 18:11:34 +00:00
Matt Fiddaman
e64a042f0c fix github action version resolution (#6114)
* pin to sha

* note
2025-11-11 23:26:07 +00:00
Matt Fiddaman
407a0d2f7f fix GitHub workflows in the compare sizes action (#6079)
* fix compare sizes workflow versions

* note
2025-11-06 01:01:12 +00:00
Matt Fiddaman
25f9ea3f97 ⬆️ bump github action versions (#6014)
* actions/checkout v5

* actions/setup-node v6

* actions/upload-artifact v5

* actions/download-artifact v6

* actions/stale v10

* aidan-mundy/react-to-issue v1

* twk3/rollup-size-compare-action v1

* actions/github-script v8

* dawidd6/action-download-artifact v11

* fountainhead/action-wait-for-check v1

* peter-evans/create-or-update-comment v5

* docker/build-push-action v6

* note
2025-11-05 23:56:17 +00:00
Julian Dominguez-Schatz
c1d97fcc75 Allow size-compare action to run immediately after artifact upload (#5912)
* Allow size-compare action to run immediately after artifact upload

* Add release notes
2025-10-13 09:20:18 -07:00
Michael Clark
be20f65b6e 🛠️ Moving loot-core to Vite (#5379)
* Moving loot core to Vite
2025-08-13 20:49:48 +01:00
Michael Clark
6710456c05 ⚒ Workflow updates to only trigger when needed (#4352) 2025-02-11 14:54:40 +00:00
Michael Clark
be2126e136 ☁️ Server workflows run only when server files have changed (#4348)
* making the server workflows run only when server files have changed

* release notes

* also on merge to master

* rabbit suggestion

* e2e tests and size compare dont need to run when server changes

* adding to the paths ignore
2025-02-10 22:46:25 +00:00
Matt Fiddaman
279d545a28 fix size comparison workflow (#3594)
* fix size comparison workflow

* note
2024-10-07 17:37:08 +01:00
Matiss Janis Aboltins
dc5d1174c7 ⬆️ upgrade some github actions (#3577) 2024-10-06 07:06:10 +01:00
Matiss Janis Aboltins
6ae2047ab8 🔧 upgrade deprecated github actions (#2319) 2024-02-02 20:38:57 +00:00
DJ Mountney
a8b42bcd50 Change the vite chunk filename hash usage (#2224)
* Change the vite chunk filename hash usage

- Change to more closely match the . syntax we use with webpack
- This should fix some issues with our size compare as well
* Account for chunks being base64
2024-01-15 09:47:09 -08:00
DJ Mountney
d5359a96ca Proposal for switching desktop-client to vite (#2084)
* Proof of concept for switching desktop-client to vite

* Fix other packages ts tests issues

* Update jsx tests to use vitest instead of jest

* Inject our global shims properly

* Add comment regarding new plugin

* Cleanup unnessary change after rebase

* Fix inter fonts pathing

* Remove manual chunks sizes for now

Just set the limit higher

* Bring back size compare

* Suppress victory warnings

* Remove craco config now that it's not used

* Add vite basic ssl plugin

- This autogenerates self-signed certs in dev mode when HTTPS env is set
- Made to match the CRA behaviour

* Add release note

* Remove warning suppression for victory

- Updated to a rollup version that includes the fix
2024-01-11 10:18:49 -08:00
Jed Fox
907571bd83 Update to the latest version of the size compare action (#1435)
Includes a few typographical improvements I PR’d.

(since the workflow is a `pull_request_target` one, the changes won’t
show up in the comments till this PR is merged)
2023-07-31 18:02:03 +01:00
Matiss Janis Aboltins
168b38fc4b 🔧 cancel previous CI runs if a new push is made (#1251)
Cancel previous CI runs if a new push is made. Thus saving a bit of CI
resources.
2023-07-01 21:26:02 +01:00
Jed Fox
2108712f2d Fix size comparison workflow on fork PRs (#1214)
This PR moves the size comparison action back to a separate workflow
which now uses the `pull_request_target` event. This event is triggered
at all the same times as the `pull_request` action, except that the
workflow file content comes from the target branch of the PR, and it is
run in the context of the repo owning the target branch. Practically,
this means that it will still have access to post a comment even if the
PR comes from a fork.

We don’t want the build actions to be run in a `pull_request_target`
workflow because they would get access to the secrets and be able to
perform arbitrary actions on the repository, even from fork PRs.

See the current version failing here:
https://github.com/actualbudget/actual/actions/runs/5395184895/jobs/9797388016?pr=1122
2023-06-28 12:04:15 -04:00