Git Product home page Git Product logo

autify-cli's People

Contributors

4ydx avatar dependabot[bot] avatar henchiyb avatar hgsgtk avatar mtsmfm avatar renovate[bot] avatar riywo avatar yarimizu14 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

dolphin-diving

autify-cli's Issues

Run CI/CD integrations' integration test inside CLI workflow

To make sure our CI/CD integrations work with the new code before release, we'd like to run their integration test inside CLI workflow as well.

An idea is:

  1. Clone one integration repository
  2. Swap installation or override the autify path
  3. Run its integration test with @autifyhq/autify-cli-integration-test

Add option to cancel or stop scenarios

Hello! Great job for creating a client to interact with the autify platform, we are currently using it for our e2e tests in my actual company.

I have a question, sometimes the test cases are running for long time and we don't know the actual status of them. Is it possible to add some features like:

  • Execute all the tests in a timeout window
  • Show the current status and the step
  • Cancel a test case

Fix `autify update` with Windows and brew

On Windows:

Run autify update
@autifyhq/autify-cli: Updating CLI... not updatable

With brew on GitHub Actions:

Run autify update
@autifyhq/autify-cli: Updating CLI... fetching manifest

@autifyhq/autify-cli: Updating CLI from 0.10.0-beta.0 to 0.10.0-beta.0-2f002ba (beta)... done
node:internal/process/promises:2[7](https://github.com/autifyhq/autify-cli/actions/runs/3031442476/jobs/4878335436#step:8:8)[9](https://github.com/autifyhq/autify-cli/actions/runs/3031442476/jobs/4878335436#step:8:10)
            triggerUncaughtException(err, true /* fromPromise */);
            ^

[Error: ENOENT: no such file or directory, open '/Users/runner/.local/share/autify/channel'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/runner/.local/share/autify/channel'
}

Note: autify update works on my macOS laptop (autify is installed via brew).

GitHub Actions example: https://github.com/autifyhq/autify-cli/actions/runs/3031442476

Use more proper fake `autifyconnect`

We should not implement such fake logic of autifyconnect here. Instead, it should be provided along with autifyconnect.

Reasons:

  • The fake command should reside in autifyconnect's repository to reuse most of the real code.
  • Windows invokes a script command and a .exe file differently. Thus, the fake command should be also .exe file same as autifyconnect.exe.

Avoid signal to terminate `autifyconnect`

Since Windows doesn't have a concept of "signal", it is very tricky to emulate the simlar behavior to Unix. Also, for some reasons, only Jest invocation can't handle signal properly. So, we gave up and used different behavior when Jest on Windows: https://github.com/autifyhq/autify-cli/blob/main/src/autify/connect/spawnClient.ts#L178

Once we settle a way to terminate autifyconnect without signal, we should quickly switch to it and remove all the hacks for signal:

https://github.com/autifyhq/autify-cli/blob/main/patches/oclif%2B3.1.2.patch#L152-L153

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • fix(deps): update all non major npm update (@oclif/core, @oclif/plugin-not-found, @types/tar)
  • chore(deps): update dependency eslint to v9
  • chore(deps): update dependency eslint-plugin-unicorn to v52
  • chore(deps): update dependency ts-morph to v22
  • chore(deps): update mcr.microsoft.com/vscode/devcontainers/typescript-node docker tag to v1
  • chore(deps): update typescript-eslint monorepo to v7 (major) (@typescript-eslint/eslint-plugin, @typescript-eslint/parser)
  • fix(deps): update dependency archiver to v7
  • fix(deps): update dependency http-proxy-middleware to v3
  • fix(deps): update dependency node-emoji to v2 (node-emoji, @types/node-emoji)
  • fix(deps): update dependency node-fetch to v3
  • fix(deps): update dependency strip-ansi to v7
  • fix(deps): update dependency tar to v7
  • fix(deps): update dependency xstate to v5
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

dockerfile
.devcontainer/Dockerfile
  • mcr.microsoft.com/vscode/devcontainers/typescript-node 0-18-bullseye
github-actions
.github/actions/setup/action.yml
  • actions/setup-node v4
  • aws-actions/configure-aws-credentials v4
  • aws-actions/configure-aws-credentials v4
  • aws-actions/configure-aws-credentials v4
.github/workflows/bump.yml
  • tibdex/github-app-token v2
  • actions/checkout v4
.github/workflows/github-actions-tests.yml
  • actions/checkout v4
  • actions/setup-node v4
  • autifyhq/actions-web-test-run v2
  • autifyhq/actions-web-test-run v2
  • autifyhq/actions-web-test-run v2
  • autifyhq/actions-web-test-run v2
  • autifyhq/actions-web-test-run v2
  • actions/setup-node v4
  • autifyhq/actions-mobile-test-run v2
  • autifyhq/actions-mobile-test-run v2
  • autifyhq/actions-mobile-test-run v2
  • autifyhq/actions-mobile-test-run v2
  • autifyhq/actions-mobile-test-run v2
  • autifyhq/actions-mobile-test-run v2
  • actions/setup-node v4
  • autifyhq/actions-mobile-build-upload v2
  • autifyhq/actions-mobile-build-upload v2
.github/workflows/integration-tests.yml
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
.github/workflows/merge-bump.yml
  • tibdex/github-app-token v2
  • actions/checkout v4
.github/workflows/pr-bump.yml
  • tibdex/github-app-token v2
  • actions/checkout v4
.github/workflows/promote.yml
  • tibdex/github-app-token v2
  • actions/checkout v4
.github/workflows/publish.yml
  • tibdex/github-app-token v2
  • actions/checkout v4
  • actions/checkout v4
.github/workflows/pull-requests.yml
.github/workflows/rollback.yml
  • actions/checkout v4
.github/workflows/upload.yml
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
.github/workflows/validate.yml
  • actions/checkout v4
npm
integration-test/package.json
  • @pollyjs/adapter-node-http ^6.0.6
  • @pollyjs/core ^6.0.6
  • @pollyjs/persister ^6.0.6
  • @pollyjs/persister-fs ^6.0.6
  • cross-env ^7.0.3
  • express ^4.19.2
  • http-proxy-middleware ^2.0.6
  • jest ^29.7.0
  • strip-ansi ^6.0.1
  • tslib ^2.6.2
  • which ^4.0.0
  • @types/express ^4.17.21
  • @types/jest ^29.5.12
  • @types/node ^20.12.7
  • @types/which ^3.0.3
  • shx ^0.3.4
  • ts-node ^10.9.2
  • typescript ^5.4.5
  • node >=20.11.0
package.json
  • @autifyhq/autify-sdk ^0.21.0
  • @oclif/core ^3.26.3
  • @oclif/errors ^1.3.6
  • @oclif/plugin-help ^6.0.21
  • @oclif/plugin-not-found ^3.1.4
  • @oclif/plugin-update ^4.2.6
  • @oclif/plugin-warn-if-update-available ^2.1.1
  • abort-controller ^3.0.0
  • archiver ^6.0.2
  • envfile ^7.1.0
  • get-port ^5.1.1
  • inquirer ^8.2.6
  • listr ^0.14.3
  • node-emoji ^1.11.0
  • node-fetch ^2.7.0
  • node-stream-zip ^1.15.0
  • per-env ^1.0.2
  • shell-quote ^1.8.1
  • tar ^6.2.1
  • unzip-stream ^0.3.1
  • uuid ^9.0.1
  • which ^4.0.0
  • winston ^3.13.0
  • xstate ^4.38.3
  • @oclif/test ^3.2.10
  • @types/archiver ^6.0.2
  • @types/chai ^4.3.14
  • @types/inquirer ^8.2.10
  • @types/listr ^0.14.9
  • @types/node ^20.12.7
  • @types/node-emoji ^1.8.2
  • @types/node-fetch ^2.6.11
  • @types/shell-quote ^1.7.5
  • @types/tar ^6.1.12
  • @types/unzip-stream ^0.3.4
  • @types/uuid ^9.0.8
  • chai ^5.1.0
  • cross-env ^7.0.3
  • eslint ^8.57.0
  • eslint-config-oclif ^5.1.2
  • eslint-config-oclif-typescript ^3.1.5
  • eslint-config-prettier ^9.1.0
  • husky ^9.0.11
  • lint-staged ^15.2.2
  • oclif ^4.8.5
  • patch-package ^8.0.0
  • prettier ^3.2.5
  • shx ^0.3.4
  • ts-morph ^21.0.1
  • ts-node ^10.9.2
  • tslib ^2.6.2
  • typed-emitter ^2.1.0
  • typescript ^5.4.5
  • node >=20.11.0
  • eslint-plugin-unicorn ^50.0.1
  • @typescript-eslint/parser ^6.21.0
  • @typescript-eslint/eslint-plugin ^6.21.0

  • Check this box to trigger a request for Renovate to run again on this repository

Use `JSZip` to compress iOS app

Currently, it relies on zip binary installed on the host machine but it's not universal e.g. Jenkins CI servers don't have it: https://github.com/jenkinsci/autify-plugin/pull/16/checks?check_run_id=8119937975

Use JSZip to generate a zip file by pure JavaScript: https://stuk.github.io/jszip/documentation/examples.html

Note: This opens Windows support but be careful to use UNIX style path inside zip file because Autify for Mobile runs on macOS environment for iOS app.

Add --retry option for autify web test run

In some cases, Autify users want to automatically retry specific tests a limited number of times (once or twice) until it passes. If Autify CLI can support this (with --retry option along with --wait option), that would be great.

User agent configuration via environment variable

To measure where the CLI is used, we should have configuration for user agent via environment variable like AUTIFY_CLI_USER_AGENT. Then, each official integration overrides (or appends identifier) to the user agent and we can measure their usage.

Provide `linux-arm64` binary

Currently we provide only 32 bit binary for arm architecture. This won't work with 64 bit architecture.

Example with public.ecr.aws/amazonlinux/amazonlinux:2 docker image:

bash-4.2# curl https://autify-cli-assets.s3.amazonaws.com/autify-cli/channels/stable/install-standalone.sh | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2046  100  2046    0     0  10459      0 --:--:-- --:--:-- --:--:-- 10492
Installing CLI from https://autify-cli-assets.s3.amazonaws.com/autify-cli/channels/stable/autify-linux-arm.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 31.5M  100 31.5M    0     0   792k      0  0:00:40  0:00:40 --:--:-- 1257k
qemu-arm: Could not open '/lib/ld-linux-armhf.so.3': No such file or directory
autify installed to /usr/local/bin/autify
Error: node is not installed.

bash-4.2# autify --version
Error: node is not installed.

(In the installer, it removes node when node -v doesn't work and delegates system-wide node but no node is installed, hence the last error).

We should provide linux-arm64 binary because Node.JS officially provide such binary for node as well.

Place machine-readable output as a file

High level commands such as web test run use stdout for informing to the human user. Therefore, it is not easy to pass the re-usable data to other process via pipe.

We could use stderr for logging and stdout for machine-readable information but such convention will break easily. Also, machine-readable information is not needed for human.

Thus, we should put such data on data directory like ~/.data/autify/output/web-test-run-<timestamp>-<pid>.json then print the location as a log. The other process like CI/CD integration can parse the file location from log easily and get the output in json format.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.