Giter VIP home page Giter VIP logo

appcenter-cli's Introduction

App Center Command Line Interface (CLI)

Visual Studio App Center command line interface (CLI) is a unified tool for running App Center services from the command line. Our aim is to offer a concise and powerful tool for our developers to use App Center services and easily script a sequence of commands that they'd like to execute. You can currently login and view/configure all the apps that you have access to in App Center.

Prerequisites

The required Node.js version is 18 or higher, Mono and the Android-SDK are required to run the UI test for Android and iOS.

Installation

npm install --location=global appcenter-cli

Once installed, use the appcenter command. See below for the available commands.

Getting Help

To get a top level list of the available commands, run appcenter help.

To get help on a specific command or category, run appcenter help command or pass the -h flag to any command or category name.

App Center provides SDK support directly within the App Center portal. Any time you need help, just sign in to App Center, then choose 'Contact support' inside the help menu on the upper right of the App Center portal and our dedicated support team will respond to your questions and feedback.

Commands

Below is the list of commands currently supported by Visual Studio App Center CLI:

Command Description
appcenter help Get help using appcenter commands
appcenter login Log in
appcenter logout Log out
appcenter setup-autocomplete Setup tab completion for your shell
appcenter analytics app-versions Shows versions of the application
appcenter analytics audience Show audience statistics
appcenter analytics log-flow Command to see the incoming logs in real time
appcenter analytics sessions Show statistics for sessions
appcenter analytics events delete Delete event
appcenter analytics events show Show statistics for events
appcenter apps create Create a new app
appcenter apps delete Delete an app
appcenter apps get-current Get the application that's set as default for all CLI commands
appcenter apps list Get list of configured applications
appcenter apps set-current Set default application for all CLI commands. Not compatible when authenticating with '--token' or an environment variable. Use environment variable 'MOBILE_CENTER_CURRENT_APP' to set the default app instead
appcenter apps show Get the details of an app
appcenter apps update Update an app
appcenter build download Download the binary, logs or symbols for a completed build
appcenter build logs Displays log for build
appcenter build queue Queue a new build
appcenter build branches list Show list of branches
appcenter build branches show Show branch build status
appcenter codepush patch Update the metadata for an existing CodePush release
appcenter codepush promote Create a new release for the destination deployment, which includes the exact code and metadata from the latest release of the source deployment
appcenter codepush release-cordova Release a Cordova update to an app deployment
appcenter codepush release-electron Release an Electron update to a deployment
appcenter codepush release-react Release a React Native update to an app deployment
appcenter codepush release Release an update to an app deployment
appcenter codepush rollback Rollback a deployment to a previous release
appcenter codepush deployment add Add a new deployment to an app
appcenter codepush deployment clear Clear the release history associated with a deployment
appcenter codepush deployment history Display the release history for a CodePush deployment
appcenter codepush deployment list List the deployments associated with an app
appcenter codepush deployment remove Remove CodePush deployment
appcenter codepush deployment rename Rename CodePush deployment
appcenter crashes upload-mappings Upload the Android mappings for the application
appcenter crashes upload-missing-symbols Upload missing crash symbols for the application (only from macOS)
appcenter crashes upload-symbols Upload the crash symbols for the application
appcenter distribute release Upload release binary and trigger distribution, at least one of --store or --group must be specified
appcenter distribute groups create Create new distribution group
appcenter distribute groups delete Deletes the distribution group
appcenter distribute groups download Download release package for the distribution group
appcenter distribute groups list Lists all distribution groups of the app
appcenter distribute groups publish Publish an app file to a group
appcenter distribute groups show Shows information about the distribution group
appcenter distribute groups update Update existing distribution group
appcenter distribute releases add-destination Distribute an existing release to an additional destination
appcenter distribute releases delete Deletes the release
appcenter distribute releases edit-notes Update release notes
appcenter distribute releases edit Toggles enabling and disabling the specified release
appcenter distribute releases list Shows the list of all releases for the application
appcenter distribute releases show Shows full details about release
appcenter distribute stores list Lists all stores of the app
appcenter distribute stores publish Publish an app file to a store
appcenter orgs create Create a new organization
appcenter orgs list Lists organizations in which current user is collaborator
appcenter orgs show Show information about organization
appcenter orgs update Update organization information
appcenter orgs apps create Create a new app in an organization
appcenter orgs apps list Lists applications of organization
appcenter orgs collaborators list Lists collaborators of organization
appcenter orgs collaborators update Update list of organization collaborators
appcenter profile list Get information about logged in user
appcenter profile update Update user information
appcenter telemetry off Turn off the sending of telemetry
appcenter telemetry on Turn on the sending of telemetry
appcenter test download Download the report artifacts, unpack and merge them. This command is only available for UITest and Appium test runs
appcenter test status Checks the status of the started test run
appcenter test stop Stop the started test run
appcenter test wizard Start a test run interactively. All the parameters will be prompted on-the-go
appcenter test generate appium Generates an Appium project
appcenter test generate uitest Generates a Xamarin.UITest project
appcenter test prepare appium Creates an artifacts directory with Appium tests
appcenter test prepare calabash Creates an artifacts directory with Calabash tests
appcenter test prepare espresso Creates an artifacts directory with Espresso tests
appcenter test prepare uitest Creates an artifacts directory with Xamarin UI Tests
appcenter test prepare xcuitest Creates an artifacts directory with XCUITest tests
appcenter test run appium Starts a test run with Appium tests
appcenter test run calabash Starts a test run with Calabash tests
appcenter test run espresso Starts a test run with Espresso tests
appcenter test run manifest Starts a test run with previously prepared artifacts
appcenter test run uitest Starts a test run with Xamarin UI Tests
appcenter test run xcuitest Starts a test run with XCUITest tests
appcenter tokens create Create a new API token
appcenter tokens delete Delete an API token
appcenter tokens list Get a list of API tokens

Please use the appcenter help command to get more information about each one.

Contributing

Please see the contributing file for an introduction to the codebase and what the various moving parts are.

Known issues

Check out known issues for a list of known issues, and potential workarounds.

Security

Check out SECURITY.md for any security concern with this project.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

appcenter-cli's People

Contributors

alexandergoncharov-zz avatar anatolypristensky avatar buptkang avatar cjonsmith avatar dependabot-preview[bot] avatar dependabot[bot] avatar dmitriykirakosyan avatar ela-malani avatar erychagov avatar hagould avatar john7doe avatar jp-andre avatar kmiecikt avatar krukow avatar lumaxis avatar matthiaswenz avatar mrmyhuang avatar oddj0b avatar owenniblock avatar patniko avatar pfleidi avatar phated avatar prashantpatali avatar sergey-akhalkov avatar snowpardx avatar steph-dove avatar stoneman avatar vaagnavanesyan avatar yuri-kulikov avatar yuya-takeyama 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  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  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  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

appcenter-cli's Issues

OS X: setup-autocomplete - breaks file tab-completion

System: OS X Sierra 10.12.6, mobile-center version 0.11.0, zsh

Installing setup-autocomplete causes to complete filenames to stop working.

It would be great to get both autocomplete and tab-complete file names.

Example:

➜  espresso ls
total 69864
drwxr-xr-x@  4 krukow  staff   136B Oct 10 14:44 ./
drwx------+ 89 krukow  staff   3.0K Oct 10 15:59 ../
-rw-r--r--@  1 krukow  staff   2.4M Oct 10 14:44 gc-androidTest.apk
-rw-r--r--@  1 krukow  staff    32M Oct 10 14:44 gc.apk
➜  espresso mobile-center test run espresso --app "karl.krukow/Example-espresso" \ 
    --devices any_top_1_device \ 
    --app-path gc.ap<TAB> \ 
    --build-dir ./  \ 
     --debug --test-series master --output --test-parameter test=test

the here does not complete the filename gc.app

here does not complete file.

The version option is not discoverable

The mobile-center CLI supports a --version or -v option. However, this is not discoverable from the help output:

➜  code mobile-center help

Mobile Center helps you build, test, distribute, and monitor mobile apps.

Usage: mobile-center <command>

Commands:
    analytics                      View events, audience info, sessions, and
                                   other anayltics for apps
    apps                           View and manage apps
    build                          Start builds, get their status, and
                                   download artifacts
    codepush                       View and manage CodePush deployments and
                                   releases
    crashes                        Upload symbols for better crash reports
    distribute                     Send builds to testers and manage
                                   distribution groups
    orgs                           Manage organizations
    profile                        Manage your profile
    telemetry                      Manage telemetry preferences
    test                           Start test runs and get their status
    tokens                         Manage API tokens
    help                           Get help using mobile-center commands
    login                          Log in
    logout                         Log out
    setup-autocomplete             Setup tab completion for your shell

upload sourcemaps

we can upload symbols with this. can you add uploading of sourcemaps too? so we can use this tool to upload everything needed for a react native app to mobile center.

Doesn't respect `--target-binary-version` flag.

We generate our versionName and versionCode values dynamically, so with code-push in the past we've had to manually specify the target binary version using the flag --targetBinaryVersion.

First off, with appcenter that flag is now listed as --target-binary-version. That's fine.

However, even if you specify the --target-binary-version or -t flag when using appcenter codepush release-react, it still complains about not being able to find the version and actually says you should use the --targetBinaryVersion flag:

Detecting android app version:

Error: Command 'codepush release-react -a joshuapinter/CNTRAL-Mobile --deployment-name Staging --entry-file index.android.js --gradle-file ./cntral/build.gradle -t 6.53.0' failed with exception "The "android.defaultConfig.versionName" property value in "./cntral/build.gradle" is not a valid string. If this is expected, consider using the --targetBinaryVersion option to specify the value manually."

Neither of those flags work, tho.

Line endings in launch script

Currently, appcenter script doesn't work on Linux. It looks like .gitattributes need to be updated after renaming b5cc661.

Steps to reproduce
# npm install -g appcenter-cli
$ appcenter
/usr/bin/env: ‘node\r’: No such file or directory
Expected results

appcenter script should work on Linux.

Improve "x list" commands

This is a follow-up to #226

Currently, commands like apps list and orgs list output very minimal information and getting more details always requires using an additional x show command on a single entity to get more details.
I would suggest to come up with a format, like a table, that outputs most of the useful/necessary information right in the list command's output.

Something like this:

Apps

| Display name | Name        | OS      | Platform | Origin        |
| ------------ | ----------- | ------- | -------- | ------------- |
| My Test App  | my-test-app | iOS     | Xamarin  | mobile-center |
| Some App     | some-app    | Windows | UWP      | hockeyapp     |

or

Organizations

| Display Name  | Name          | Origin        |
| ------------- | ------------- | ------------- |
| Mobile Center | mobile-center | mobile-center |

Listing organizations is not very readable

A few suggestions:

  • Display both display_name and name
  • Consider constructing a URL directly from the name instead of showing the value plainly, similar to what we do in the UI:

screenshot 2017-06-14 21 42 48

  • Looking at the screenshot above, we should imo also have an indication if the organization is synced over from HockeyApp and therefore read-only

analytics audience --devices --output csv has an extra comma

mobile-center analytics audience --devices has an extra comma on each line

Devices,,,
Nexus 6P,22,84.61538461538461,
Galaxy Nexus,1,3.8461538461538463,
SAMSUNG-SM-G870A,1,3.8461538461538463,
GT-I9500,1,3.8461538461538463,
Android SDK built for x86,1,3.8461538461538463,

Bug- mobile-center test generate uitest

mobile-center test generate uitest --platform "android" --output-path "C:\Users\user1\test1"

This command does not generate any files in the specified --output-path, seems to hang.

Platform: Windows 10
mobile-center CLI: v 0.11.0

Bug in promisified-glob/globSingleFile

The type signature for this code is:

function globSingleFile(pattern: string, options?: g.Options): Promise<string>

The code that resolves the final promise is:

    resolve(matches);

However, matches is an array. So the actual value returned is a string[], not a string, which will cause all sorts of weird errors down the line.

Change that line to resolve(matches[0]);

analytics sessions time-range

mobile-center analytics sessions returns values for an unspecified time-range.
It doesn't correspond to the last7, last30, last60 or last90 options in the portal.

    0-10s    4
    10-30s   0
    30s-1min 0
    1-30min  1
    30min-1h 0
    >1h      0

Session Statistics
    Total Sessions               5     0%
    Average Sessions Per Day     5     100%
    Average Session Length (sec) 28.38 100%

image

Confusing package names

If you install 'mobile-center' with npm you get an outdated version of the cli available on the command line (0.9.1 I believe) and no amount of npm updating mobile-center will give you the latest version. If you install 'mobile-center-cli you get the latest. This is really confusing.

Error: "app.match is not a function" when --app begins with "-"

Example reproduction:

$ mobile-center test run uitest --app "-a-/app" \
   --devices 12345678 --app-path MyDrivingiOS.ipa \
   --test-series "master" --locale "en_US" \
   --build-dir  MyDriving/MyDriving.UITests/bin/Debug \
   --uitest-tools-dir packages/Xamarin.UITest.2.1.3/tools
Preparing tests... done.
Error: app.match is not a function

Invite users to community in --help flag

I was spinning up a toy app using Swift and the framework (Vapor) did this delightful thing I think we can "borrow".

$tmp vapor --help
Usage: vapor <new|build|run|fetch|clean|test|xcode|version|self|heroku|docker>
**Join our Slack if you have questions, need help, or want to contribute: http://vapor.team**

I don't know if we have a public community chat yet, but it would be a nice little touch to invite people to proactively engage with us as they start to learn how to use the service.

Mos relevant command options are displayed last

For example, when I do mobile-center help build queue, the --branch and --debug-logs options are the most relevant for this specific command, but they are listed last.

In fact, --debug, --output, --token, --env, --version, --disable-telemetry seem rarely relevant and are not command-specific.

$ mobile-center help build queue

    mobile-center build queue [--debug] [--output <arg>] [--token <arg>] [--env <arg>] [-h|--help] [--quiet]
        [-v|--version] [--disable-telemetry] [-a|--app <arg>] -b|--branch <arg> [-d|--debug-logs]

Queue a new build

Command Options:
       --debug                 Output additional debug information for this command                             
                                                                                                               
       --output <arg>          Format of output for this command: json                                          
                                                                                                               
       --token <arg>           API Token to use for this command                                                
                                                                                                               
       --env <arg>             Environment to connect to when using api token                                   
                                                                                                               
    -h|--help                  Display help for this command                                                    
                                                                                                               
       --quiet                 Auto-confirm any requests, do not prompt for input                               
                                                                                                               
    -v|--version               Display command's version                                                        
                                                                                                               
       --disable-telemetry     Do not send any CLI telemetry for this command, overriding defaults              
                                                                                                               
    -a|--app <arg>             Specify application for command to act on                                        
                                                                                                               
    -b|--branch <arg>          Branch to be build                                                               
                                                                                                               
    -d|--debug-logs            Enable debug mode  

The create app command does not output relevant errors/does not validate arguments

When creating an app any error messages from the server are ignored.

    $  appcenter apps create -p "React-Native" -o "ios" -d foobar
    Error: the request was rejected for an unknown reason
$  appcenter apps create -p "React-Native" -o "ios" -d foobar --debug
logFilter, request: WebResource {
  rawResponse: false,
  queryString: {},
  url: 'https://api.appcenter.ms/v0.1/apps',
  method: 'POST',
  headers:
   { 'Content-Type': 'application/json; charset=utf-8',
     'user-agent': 'appcenterCli/1.0.2 NodeJS/v7.7.1 win32/10.0.15063',
     'x-api-token': '...' },
  body: '{"display_name":"foobar","os":"ios","platform":"React-Native"}' }
| Creating app ...Response status code: 400
Body: {"error":{"code":"BadRequest","message":"Validation error for body parameter \"app.os\": No enum match for: ios"}}
Error: the request was rejected for an unknown reason

The argument should be "iOS", not "ios", and "Android", not "android". The error message could be more helpful.

The command shown in the migration guide is wrong:
https://docs.microsoft.com/en-us/appcenter/distribution/codepush/migrationguide

Creating an App in the App Center CLI:
appcenter apps create -p "React-Native" -o "ios" -d "MyApp"

Wrong error message in case all API tokens have been removed

Hi, I've found issue with very rare repro steps, but I believe it should be fixed due to server returns correct response.

Environment:

$ appcenter -v
appcenter version 1.0.5

Repro steps:

  1. appcenter login
  2. go to the https://appcenter.ms/settings/apitokens and remove appcenter-cli token
  3. appcenter tokens list or another command that requires authorization

Actual:
Error: Command 'tokens list' failed with exception "apiTokensResponse.result.map is not a function"

Expected:
Error: Command 'appcenter tokens list' requires a logged in user. Use the 'appcenter login' command to log in.

Typo in README.md

screen shot 2017-04-30 at 5 51 07 pm

Should be:

mobile-center test generate appium Generates a Appium project

Unable to start xcuitest server says 404

Not exactly sure what this is about, but when I try to star tan xcuitest I get the very unhelpful message:

$ mobile-center test run xcuitest --app-path XTCiOSSample.ipa --app "kamikkel/XTCiOSSample-xcuitest" --devices 9847d512 --test-series "master" --locale "en_US" --test-ipa-path ddp/Build/Products/Debug-iphoneos/integrationTestsUITests-Runner.ipa
Preparing tests... done.
Validating arguments... done.
Creating new test run... failed.
Error: {"message":"","code":"Not Found"}

Exit code 3.

If I run with --debug I can see that it is not about my local files, but I get a 404 from the server:

Preparing tests... done.
Validating arguments... done.
logFilter, request: WebResource {
  rawResponse: false,
  queryString: {},
  url: 'https://bifrost-staging.trafficmanager.net/v0.1/apps/kamikkel/XTCiOSSample-xcuitest/test_runs',
  method: 'POST',
  headers: 
   { 'Content-Type': 'application/json; charset=utf-8',
     'user-agent': 'mobile-centerCli/0.11.0 NodeJS/v6.11.0 linux/4.10.0-33-generic',
     'x-api-token': '0c52f44bcdf73aa2369f576bd57edeb88e2b3114',
     'internal-request-source': 'cli',
     'diagnostic-context': '08fc66c5-293c-48a2-b340-535e545c35fc',
     'cli-command-name': 'test run xcuitest' },
  body: null }
/ Creating new test run... Response status code: 404
Body: {"message":"","code":"Not Found"}
Creating new test run... failed.
Error: {"message":"","code":"Not Found"}

Unable to build latest commit

It seems the latest commit introduced an error that prevents the application from building. If I change my working copy to the previous commit (926542b44889c6791c2252099978ca65515f0da3) I am able to build without a problem.

Node Version

v7.10.0

NPM Version

v4.2.0

Steps to Reproduce:

  1. Clone repository
  2. Run npm install

Log File

2017-05-18T01_25_45_231Z-debug.txt

Output

[redacted]:mobile-center-cli [redacted]$ npm install
npm WARN deprecated [email protected]: Use uuid module instead
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN prepublish-on-install As of npm@5, `prepublish` scripts will run only for `npm publish`.
npm WARN prepublish-on-install (In npm@4 and previous versions, it also runs for `npm install`.)
npm WARN prepublish-on-install See the deprecation note in `npm help scripts` for more information.

> [email protected] prepublish [redacted]/mobile-center-cli
> gulp prepublish

module.js:472
    throw err;
    ^

Error: Cannot find module '../dist/util/commandline/option-decorators'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> ([redacted]/mobile-center-cli/scripts/autocomplete-tree.js:4:26)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)

npm ERR! Darwin 16.6.0
npm ERR! argv "/usr/local/Cellar/node/7.10.0/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v7.10.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] prepublish: `gulp prepublish`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] prepublish script 'gulp prepublish'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the mobile-center-cli package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gulp prepublish
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs mobile-center-cli
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls mobile-center-cli
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/[redacted]/.npm/_logs/2017-05-18T01_25_45_231Z-debug.log

React Native - Deleting output folder after release

Hi!

Today I migrated from code-push-cli to appcenter-cli, but I'm having a problem, I use the generated bundle and sourcemap to upload them for sentry:

https://docs.sentry.io/clients/react-native/codepush/

But, in the final of the release process the appcenter-cli delete the generated folder:

https://github.com/Microsoft/appcenter-cli/blob/master/src/commands/codepush/release-react.ts#L153

I want to propose a flag to avoid delete the output dir, so I could keep the files after a release.

mobile-center test run xcuitest required option --email is not listed in help

  • version 0.12.0

Reproduce

$ mobile-center test run xcuitest \
  --devices "${1}" \
  --token "${API_TOKEN}" \
  --build-dir "${WORKSPACE}" \
  --test-series "${SERIES}" \
  --disable-telemetry

Expected

The test to upload.

Found

Preparing tests... done.
Error: Command 'test run xcuitest ...' failed with exception "Cannot read property 'email' 
of null"

Warning message and freezeup on Windows 10 / node 7.1.0

When attempting to login on a Windows 10 box running node 7.1, you get:

> mobile-center login
(node:13360) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: This socket is closed
(node:13360) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

and then the CLI freezes up for quite a while waiting for some sort of timeout.

Works fine on Node 6.9.

analytics sessions headers

mobile-center analytics sessions doesn't include headers for the columns

Session Durations
    0-10s    116
    10-30s   2
    30s-1min 5
    1-30min  5
    30min-1h 0
    >1h      0

Session Statistics
    Total Sessions               128  -17.95%
    Average Sessions Per Day     4.13 -15.3%
    Average Session Length (sec) 7.53 152.79%

Swagger update

Since we need to use the new swagger endpoints from internal bifrost, we need to update swagger file in the cli so that I can further add commands. But when I tried to run: gulp autorest, I got errors to build it successfully. I figured it out that other services have updated their endpoints, which conflicts with the existing cli commands. We need to resolve this issue so that we can pull the latest swagger successfully.

Crashes on case sensitive file systems

PR here #307

kamstrup@mandrill:~$ appcenter 
module.js:538
    throw err;
    ^

Error: Cannot find module './generated/AppCenterClient'
    at Function.Module._resolveFilename (module.js:536:15)
    at Function.Module._load (module.js:466:25)
    at Module.require (module.js:579:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/lib/node_modules/appcenter-cli/dist/util/apis/create-client.js:6:25)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)

Drop spinner when stdout is not a tty

When piping stdout to a file i get a bunch of escape characters in there ala:

�[2K�[1G\ Uploading files...�[2K�[1G\ Uploading files...�[2K�[1G\ Uploading files... ...

It would be nice to check if stdout is a file and simplify the progress output in that case.

Replace full rx package with rx-lite

The Rx JS package is powerful, but very large. rx-lite should do everything we need at 10% of the size.

Update inquirer to latest version - this was what originally brought in Rx in the first place, it now uses rx-lite

Replace our use of rx with rx-lite - it's primarily in the token store code.

Build download problem

I am using the following command:

appcenter build download -t build -i "my-id" -a "my-app-name" --token "my-token"

and I'm getting this error message:
failed with exception "Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"

If I try this command without specifying the app-name I get error message:
failed with exception "End of data reached (data length = 71699727, asked index = 1583568238). Corrupted zip ?"

I am able to download symbols and logs for the same build but I cannot download build.

appcenter version 1.0.5

Delete analytics events along with properties

Deleting an analytics event do not delete the associated properties.
When a new event is sent with the same name, the old property values are there.

It would be great to be able to clear everything for an event (full reset).

Reformat default help display

Here's the current output of running mobile-center without any arguments. We should spruce it up!

$ mobile-center  
mobile-center 


    mobile-center
    Command to start with the Mobile Center CLI


    mobile-center apps           Commands to manage applications in Mobile Center                                                                
                                                                                                                                                
    mobile-center build          Commands for queueing builds, getting build status and downloading binaries and logs for completed builds       
                                                                                                                                                
    mobile-center crashes        Command to upload symbols to get symbolicated crash reports on Mobile Center                                    
                                                                                                                                                
    mobile-center distribute     Commands for the releases and distribution groups manipulation                                                  
                                                                                                                                                
    mobile-center profile        Commands to manage profile information in Mobile Center                                                         
                                                                                                                                                
    mobile-center telemetry      Commands to manage the sending of telemetry from Mobile Center commands                                         
                                                                                                                                                
    mobile-center test           Command for preparing, starting and checking state of Mobile Center tests                                       
                                                                                                                                                
    mobile-center tokens         Commands to manage API tokens in Mobile Center                                                                  
                                                                                                                                                
    mobile-center help           Get command or category help                                                                                    
                                                                                                                                                
    mobile-center login          Login to Mobile Center                                                                                          
                                                                                                                                                
    mobile-center logout         Logout from Mobile Center                                                                                       

analytics sessions --duration has extra column

mobile-center analytics sessions --duration --output csv includes an extra comma at the end of each line.

Session Durations,,
0-10s,116,
10-30s,2,
30s-1min,5,
1-30min,5,
30min-1h,0,
>1h,0,

test espresso: Appending tilde to --build-dir

I am not able to upload an espresso test at all. No matter how I format the arguments ithe m-c cli always appends a '~' to the --build-dir argument. Thus pointing at a non-existing directory.

Example. I have an app and corresponding test apk in /home/kamstrup/Downloads:

$ mobile-center test run espresso --app "kamikkel/MyApp" --devices 31be1403 --app-path Downloads/myApp.apk  --test-series "master" --locale "en_US" --build-dir Downloads
\ Preparing tests... events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: EACCES: permission denied, open 'Downloads/~'
    at Error (native)

(this is with m-c cli version 0.9.1, there seem to have been 2 releases since then, but I can not update via npm for some reason? (just tried with 0.11.0 and still have the issue))

log-flow command fails

When trying to use the new analytics log-flow command I only get back an error stating the logs failed to load.

Example Output:

$ node dist/index.js analytics log-flow --app "user/App-Name"
Command failed: failed to load the logs

Mobile-Center tests time out after 1 hour

I have some 47 tests and it takes more than an hour to run all of them on real devices. I tried --timeout command but they always timeout in about an hour. I think this is because you can not run more than 1 hour long tests in xamarin cloud but we don't have option for paid account during preview period of mobile center(may be i missed it?)

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.