Commit Graph

426 Commits

Author SHA1 Message Date
Paulo Castro
2307a15b10 balena ssh: Refactor error handling and test cases
Connects-to: #1896
Change-type: patch
2020-07-02 00:50:32 +01:00
Pagan Gazzard
303c3af061 Switch from Bluebird.join to native version
Change-type: patch
2020-06-30 23:59:18 +01:00
Pagan Gazzard
984d1a3fd6 Switch from new Bluebird to native version
Change-type: patch
2020-06-30 23:59:17 +01:00
Pagan Gazzard
d4f288394b Switch from Bluebird.map to native version
Change-type: patch
2020-06-30 23:59:11 +01:00
Pagan Gazzard
5e94f3f9c9 Add typing info to requires wherever possible
Change-type: patch
2020-06-30 23:21:39 +01:00
Pagan Gazzard
2a3479c7c6 Stop importing specific lodash files
We already import the entirety of lodash so importing the individual
files just adds time to also import the single file versions

Change-type: patch
2020-06-30 13:52:08 +01:00
Paulo Castro
eaf61d801c Add --multi-dockerignore (-m) option to push/build/deploy commands
Connects-to: #1870
Change-type: minor
2020-06-28 23:55:30 +01:00
Scott Lowe
1308b64c67 Recategorize some errors as expected.
Change-type: patch
Signed-off-by: Scott Lowe <scott@balena.io>
2020-06-26 13:57:39 +02:00
Pagan Gazzard
667358b23e Import just strip-tags from common-tags to reduce startup time
This saves ~100ms for me on startup with no fast-boot cache and ~50ms
with a fast-boot cache

Change-type: patch
2020-06-25 22:56:43 +01:00
Pagan Gazzard
b114697cab Use native fs promises rather than promisify or mz
Change-type: patch
2020-06-24 18:13:48 +01:00
Pagan Gazzard
6dce5c1212 Use import type where possible to explicitly import only type info
Change-type: patch
2020-06-24 13:46:27 +00:00
Pagan Gazzard
420a282bea Standardize all references to Bluebird
Change-type: patch
2020-06-24 12:38:09 +00:00
Paulo Castro
11d1a3f5a0 Add runtime warning for unused .dockerignore files
Change-type: patch
2020-06-22 01:14:27 +01:00
Scott Lowe
ab673f884a Convert device commands to oclif
Change-type: patch
Signed-off-by: Scott Lowe <scott@balena.io>
2020-06-18 13:59:41 +02:00
Paulo Castro
146de39b83 Add --gitignore (-g) option to push/build/deploy commands for v11 compatibility
Change-type: minor
2020-06-17 14:18:23 +01:00
Paulo Castro
c619bd4b99 Update 'balena-lint' and apply new prettier rules
Change-type: patch
2020-06-15 23:53:07 +01:00
Paulo Castro
7e1d58546c Add tests for standalone executable via proxy server
Change-type: patch
2020-06-15 23:53:04 +01:00
Paulo Castro
a7b78d2ccd Turn v12 feature switch on
See https://github.com/balena-io/balena-cli/issues/1770

Change-type: major
2020-06-15 23:52:58 +01:00
Rich Bayliss
d967b942e0
Allow setting the initialDeviceName
Change-type: patch
Signed-off-by: Rich Bayliss <rich@balena.io>
2020-06-11 16:02:17 +01:00
Scott Lowe
1569915fae v12 preparations: Add feature switch for default eol-converson
Change-type: patch
Connects-to: #1770
2020-06-05 16:37:44 +01:00
Paulo Castro
626d328194 v12 preparations: Add feature switch for build/deploy --logs option
Connects-to: #1770
Change-type: patch
2020-06-02 16:42:51 +01:00
Paulo Castro
2ab8ae1c10 v12 preparations: Add feature switch for project directory validation
Connects-to: #1770
Change-type: patch
2020-05-29 22:03:55 +01:00
Paulo Castro
1d073af31a v12 preparations: Add feature switch for '--nogitignore'
Connects-to: #1770
Change-type: patch
2020-05-29 01:12:15 +01:00
Scott Lowe
979284b071 Convert tags, tag set, tag rm to oclif.
Change-type: patch
Resolves: #1805
Signed-off-by: Scott Lowe <scott@balena.io>
2020-05-28 19:49:23 +02:00
Scott Lowe
889c7b08cf v12 preparations: Add version switch, update login message.
Change-type: patch
Connects-to: #1770
Signed-off-by: Scott Lowe <scott@balena.io>
2020-05-27 18:29:36 +02:00
Paulo Castro
ba0024645d balena deploy: Fix "access denied" pushing images to registry
Change-type: patch
2020-05-25 17:10:17 +01:00
Pagan Gazzard
a6f905b71c Fix lazy loading in utils/compose
Change-type: patch
2020-05-25 15:35:03 +01:00
Scott Lowe
1c354c800b Replace windows dns workaround with single lookup
Change-type: patch
Connects-to: #1518
Resolves: #1727
Signed-off-by: Scott Lowe <scott@balena.io>
2020-05-22 12:14:58 +00:00
Paulo Castro
8522363cd3 Convert selected functions to Typescript and async/await (compose.js)
Connects-to: #1045
Change-type: patch
2020-05-22 00:24:46 +01:00
Paulo Castro
480228d8f4 Add tests for 'balena deploy'
Connects-to: #1045
Change-type: patch
2020-05-22 00:24:46 +01:00
Cameron Diver
77f3fa4b6c Fix caching by preserving all file stats when pushing to device or cloud
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-21 12:01:34 +01:00
Pagan Gazzard
744122b1b8 Update typescript to 3.9
Change-type: patch
2020-05-18 13:32:15 +01:00
Paulo Castro
4577d72ead push/build/deploy: add --nogitignore option and update dockerignore filter library
Connects-to: #1032
Connects-to: #1148
Change-type: minor
2020-05-13 22:33:37 +01:00
Cameron Diver
4e50d08f7b Fix usage of livepush v3 features
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-05-12 09:24:05 +01:00
Paulo Castro
8d60cd1f92 Fix 'balena app' (rm, restart, info) with numeric app IDs
Resolves: #1815
Change-type: patch
2020-05-11 19:27:49 +01:00
Scott Lowe
98a2c0635d Improve presentation of errors, help
Change-type: patch
Resolves: #1779 #1757
Signed-off-by: Scott Lowe <scott@balena.io>
2020-05-06 10:48:50 +02:00
Pagan Gazzard
2f24e591ef Avoid unnecessary api calls in balena build and balena deploy
Change-type: patch
2020-05-01 15:58:44 +01:00
Scott Lowe
9b1c3c665b Refactor: move error related functions into error module
Change-type: patch
Signed-off-by: Scott Lowe <scott@balena.io>
2020-05-01 14:41:39 +02:00
Scott Lowe
153cdf4bb0 Refactor: use checkLoggedIn() instead of exitIfNotLoggedIn()
Change-type: patch
Signed-off-by: Scott Lowe <scott@balena.io>
2020-05-01 14:40:37 +02:00
Pagan Gazzard
cbcd7694a9 Merge qemu-ts.ts and qemu.ts files 2020-05-01 11:43:45 +01:00
Pagan Gazzard
52bece7f17 Convert qemu.js to typescript
Change-type: patch
2020-05-01 11:43:44 +01:00
Pagan Gazzard
0df6368ab9 Enforce lazy loading via tslint import-blacklist
Change-type: patch
2020-05-01 09:33:29 +00:00
Pagan Gazzard
73d6d7b264 Convert lib/utils/deploy.coffee to javascript
Change-type: patch
2020-04-30 16:11:42 +01:00
Pagan Gazzard
4ae91ef846 Only notify of an update if the new version is actually newer
Change-type: patch
2020-04-30 12:55:39 +00:00
Scott Lowe
d398e22c58 Integrate livepush v3 and live directives
Change-type: minor
Resolves: #1784
Signed-off-by: Scott Lowe <scott@balena.io>
2020-04-30 12:25:17 +00:00
Pagan Gazzard
203ccaf97b Convert lib/utils/deploy-legacy.coffee to javascript
Change-type: patch
2020-04-30 12:50:20 +01:00
Paulo Castro
6d95c5bad5 balena build/deploy: Update QEMU version to support newer balenalib images
Change-type: patch
2020-04-30 10:47:51 +01:00
Paulo Castro
74cdd80b51 balena deploy: Fix "TypeError: images.push is not iterable"
Change-type: patch
2020-04-29 15:13:51 +01:00
Pagan Gazzard
6ec05e8dcf Fix unhandled promise rejection when using balena deploy
Change-type: patch
2020-04-28 13:22:15 +01:00
Pagan Gazzard
0cfa1a0dfb Convert lib/actions/device.coffee to javascript
Change-type: patch
2020-04-25 14:08:30 +00:00
Pagan Gazzard
560b0abbe7 Convert lib/utils/compose.coffee to javascript
Change-type: patch
2020-04-24 16:17:23 +01:00
Pagan Gazzard
23f2242e22 Convert lib/utils/docker-coffee.coffee to javascript
Change-type: patch
2020-04-24 15:25:20 +01:00
Pagan Gazzard
9f59b6dde5 Convert lib/utils/qemu.coffee to javascript
Change-type: patch
2020-04-24 10:20:15 +01:00
Thodoris Greasidis
3e4f9f9572 device os-update: Refactor to use the overall_progress field
Change-type: patch
Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
2020-04-23 16:10:09 +00:00
Pagan Gazzard
9fda165d34 Convert lib/utils/tty to typescript
Change-type: patch
2020-04-23 09:42:23 +01:00
Scott Lowe
a2b761ec4b Convert command scan to TypeScript, migrate to oclif
Change-type: patch
Signed-off-by: Scott Lowe <scott@balena.io>
2020-04-22 11:13:40 +00:00
Pagan Gazzard
88e4009e88 Update to balena-release
Change-type: patch
2020-04-21 17:39:25 +01:00
Scott Lowe
be82bcfa63 convert commands key, keys, key add, key rm to oclif.
Also:
 - Display keys with `name` instead of `title`.
 - Check for empty key before calling API.

Change-type: patch
Signed-off-by: Scott Lowe <scott@balena.io>
2020-04-20 16:07:39 +02:00
Paulo Castro
655534469a Review 'instanceof' usage with classes of external packages
Change-type: patch
2020-04-18 02:50:00 +01:00
Scott Lowe
320b4864d9 device os-update: allow host OS upgrade with development balenaOS images
also:
fix `device os-update` incorrectly showing 0% progress
convert `device os-update` to use async/await

Change-type: minor
Resolves: #1725
Signed-off-by: Scott Lowe <scott@balena.io>
2020-04-15 15:07:10 +02:00
Paulo Castro
159cb752d1 Add '-t' option to 'balena ssh' to bypass TTY autodetection (force allocation)
Change-type: patch
2020-03-31 14:50:09 +01:00
Paulo Castro
a74f0413df Handle ssh process exit codes
Change-type: patch
2020-03-31 14:27:30 +01:00
Pagan Gazzard
1a71bad8bb Convert lib/actions/local/common.coffee to javascript
Change-type: patch
2020-03-31 11:57:47 +01:00
Paulo Castro
30738d93b0 Fix "the input device is not a TTY" when piping to 'balena ssh' (local device)
Change-type: patch
2020-03-30 14:45:16 +01:00
Paulo Castro
be76b8adbd Fix 'balena ssh' on MSYS Windows shell ("unexpected end of file")
Resolves: #1681
Change-type: patch
2020-03-30 14:45:16 +01:00
Pagan Gazzard
b3b22d6399 Use balena-lint for javascript linting and add javascript type-checking
Change-type: patch
2020-03-25 12:12:03 +00:00
Scott Lowe
8658104647 Add support for authentication checking to oclif
Change-type: patch
Signed-off-by: Scott Lowe <scott@balena.io>
2020-03-24 10:19:18 +01:00
Pagan Gazzard
809a5fae25 Switch to native number check
Change-type: patch
2020-03-13 16:15:07 +00:00
Pagan Gazzard
eccb1bd9ad Switch to native string check
Change-type: patch
2020-03-13 16:13:21 +00:00
Pagan Gazzard
f859d5025a Switch to native Array.isArray instead of aliases
Change-type: patch
2020-03-13 16:09:43 +00:00
Pagan Gazzard
09a59ab03f Remove dependency on inquirer-dynamic-list 2020-03-12 18:03:10 +00:00
Pagan Gazzard
3d2e109e7f Update dependencies
Update balena-sdk from 12.26.7 to 12.29.1

Change-type: minor
2020-03-12 18:03:10 +00:00
Paulo Castro
5a80654305 Avoid Sentry reporting of selected common "expected" errors
Change-type: patch
2020-03-09 12:51:56 +00:00
Cameron Diver
b83431c2e0 Improve the UX by only printing effective file changes in livepush
Change-type: patch
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-03-06 15:17:02 +00:00
Paulo Castro
ca8272b477 Fix build --emulated on Linux ("exec format error")
Resolves: #1649
Change-type: patch
2020-03-06 01:51:36 +00:00
Pagan Gazzard
235c13bea9 Switch to object spreading in favor of _.assign
Change-type: patch
2020-02-29 22:08:10 +00:00
Pagan Gazzard
98152c0b09 Lazy-load chalk
Change-type: patch
2020-02-28 18:34:54 +00:00
Pagan Gazzard
7c62e34455 Simplify lazy-loading of resin-cli-visuals with a shared function
This also avoids current unnecessary requiring of resin-cli-visuals
for every command

Change-type: patch
2020-02-28 15:29:07 +00:00
Pagan Gazzard
eac6bb5e5c Simplify lazy-loading of balena-sdk by utilizing a shared function
This also avoids instantiating multiple balena-sdk

Change-type: patch
2020-02-27 17:17:36 +00:00
Paulo Castro
cdfd1d124b Fix build/deploy commands with QEMU emulation and alternative Dockerfile name
Resolves: #1624
Change-type: patch
2020-02-25 16:42:12 -03:00
Cameron Diver
95c93d24da
Update resin-multibuild and add app and release template vars
Change-type: minor
Signed-off-by: Cameron Diver <cameron@balena.io>
2020-02-18 10:21:12 +07:00
Paulo Castro
671dca8287 Add project directory validation for balena push / build / deploy commands
Change-type: minor
2020-02-17 15:19:07 +00:00
Paulo Castro
a1c406a479 Add '--cache-from' option to balena build and deploy commands
It implements the same feature as the "docker build --cache-from" option.

Resolves: #1616
Change-type: minor
2020-02-13 18:43:15 +00:00
Paulo Castro
88a1e413a3 Fix balena push "Segmentation fault" on Windows (replace 'mmmagic' with 'isBinaryFile')
Connects-to: #1611
Change-type: patch
2020-02-13 15:51:45 +00:00
Pagan Gazzard
f9ece2ce7d Convert lib/actions/auth to typescript
Change-type: patch
2020-02-12 14:26:32 +00:00
Paulo Castro
be209f1626 Fix Windows standalone zip installer (missing mmmagic db for CRLF conversion)
Change-type: patch
2020-02-07 18:19:10 +00:00
Pagan Gazzard
f4525bc11e Add debug instructions for powershell
Change-type: patch
2020-02-06 18:24:53 +00:00
Paulo Castro
4502f2a203 Avoid loading 'mmmagic' on Linux (fix "could not load any valid magic files")
Resolves: #1596
Change-type: patch
2020-02-05 23:59:11 +00:00
Pagan Gazzard
27e1f3f7d7 Remove unnecessary code now that typescript understands process.exit
Change-type: patch
2020-02-03 13:06:23 +00:00
Paulo Castro
f9743b269a Add more tests for push/build/deploy commands (--convert-eol)
Change-type: patch
Signed-off-by: Paulo Castro <paulo@balena.io>
2020-02-02 20:16:57 +00:00
Scott Lowe
58e7880f1d Add support for auto-conversion of CRLF line endings.
Applies to commands:
 balena push
 balena build
 balena deploy --build

Change-type: minor
Resolves: #1273
Signed-off-by: Scott Lowe <scott@balena.io>
2020-01-31 16:27:22 +01:00
Scott Lowe
041823189f Add support for deferred log messages.
eg. so that info can be output at the end of the process.

Change-type: patch
Connects-to: #1273
Signed-off-by: Scott Lowe <scott@balena.io>
2020-01-31 11:26:54 +01:00
Paulo Castro
1e37c97ffb Fix proxy support and add proxy exclusion feature (Node.js >= 10.16.0 only)
See README for more details on proxy configuration and Node.js compatibility.

Resolves: #1579
Resolves: #1335
Connects-to: #1580
Change-type: minor
Signed-off-by: Paulo Castro <paulo@balena.io>
2020-01-27 12:11:11 +00:00
Paulo Castro
b978230f9e Update resin-lint and prettier, and re-prettify
Change-type: patch
Signed-off-by: Paulo Castro <paulo@balena.io>
2020-01-20 22:46:32 +00:00
Scott Lowe
95b5ac1c7f Prevent file ignorer from ignoring Dockerfile (and variants), docker-compose.yml
Change-type: patch
Resolves: #1445
Signed-off-by: Scott Lowe <scott@balena.io>
2020-01-20 11:59:04 +01:00
Paulo Castro
95561864a6 Fix 'balena join' when the user is not logged in
Change-type: patch
Signed-off-by: Paulo Castro <paulo@balena.io>
2020-01-14 19:34:53 +00:00
Paulo Castro
51adfeaa3b Fix join and leave commands on Windows (hanging on stdin and argument escaping)
Change-type: patch
Signed-off-by: Paulo Castro <paulo@balena.io>
2020-01-14 19:34:53 +00:00
Paulo Castro
7c1faa6de0 Add multicontainer (microservices) support for 'balena env rm'
Change-type: minor
Signed-off-by: Paulo Castro <paulo@balena.io>
2019-12-12 13:39:26 +00:00
Paulo Castro
38920a1c59 Add multicontainer (microservices) support for 'balena envs'
Connects-to: #1153
Change-type: minor
Signed-off-by: Paulo Castro <paulo@balena.io>
2019-12-11 17:50:08 +00:00
Scott Lowe
53325b7c05 Introduce workaround that fixes windows dns issue on balena push using .local device names.
Improve error handling in deployToDevice so that versionErrors don't mask other errors.

Resolves:#1518
Change-type:patch
Signed-off-by:Scott Lowe <scott@balena.io>
2019-12-06 15:32:08 +01:00