Skip to content

Commit e20c5ce

Browse files
authored
Merge pull request #96 from appcircleio/fixes/cli-bugs-2.7.5
Fixes/cli bugs 2.7.5
2 parents 5d870b3 + 93c69b2 commit e20c5ce

34 files changed

Lines changed: 2253 additions & 439 deletions

Jenkinsfile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ pipeline {
55
}
66
environment {
77
NPM_AUTH_TOKEN = credentials('Appcircle-CLI-NPM-Cred')
8-
GITHUB_PAT = credentials('ozer-github-pat')
8+
GITHUB_PAT = credentials('appcircle-cli-gh-repo-fg-pat')
99
}
1010
stages {
1111
stage('PR Validation') {
@@ -230,7 +230,10 @@ pipeline {
230230

231231
stage('Publish') {
232232
when {
233-
expression { params.PUBLISH == true }
233+
anyOf {
234+
expression { params.PUBLISH == true }
235+
buildingTag()
236+
}
234237
}
235238
steps {
236239
sh '''#!/bin/bash

docs/build/start.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ appcircle build start [options]
2929
--configurationId <uuid> Configuration ID
3030
--configuration <string> Configuration name (alternative to --configurationId)
3131
--no-wait Don't wait for build completion, return immediately with task info
32+
Note: Incompatible with monitoring modes (--monitor) and download options
3233
--download-logs Automatically download build logs after completion
34+
Note: Cannot be used with --no-wait or --monitor none
3335
--download-artifacts Automatically download build artifacts after completion
36+
Note: Cannot be used with --no-wait or --monitor none
3437
--path <string> Download path for logs and artifacts (default: ~/Downloads)
35-
--monitor <mode> Build monitoring preference: none, summary (default), steps, or verbose
38+
--monitor [mode] Build monitoring preference: none, summary (default), steps, or verbose
39+
Valid values: none | summary | steps | verbose
40+
Note: Incompatible with --no-wait. Must be specified with a valid value.
3641
```
3742

3843
## Options inherited from parent commands
@@ -201,9 +206,11 @@ appcircle build start --profileId <uuid> --commitId <uuid> --workflowId <uuid> -
201206

202207
- **No Wait**: The `--no-wait` parameter is useful for automation scenarios where you don't want to wait for build completion. The command returns immediately with task information.
203208

204-
- **Auto Download**: The `--download-logs` and `--download-artifacts` parameters automatically download files after build completion. Use `--path` to specify a custom download location.
209+
- **Parameter Compatibility**: The `--no-wait` flag is incompatible with monitoring modes (`--monitor verbose`, `--monitor steps`, `--monitor summary`). If both are specified, the CLI will display an error and exit. For automation scenarios, use `--no-wait` without any monitoring flags (which defaults to immediate exit like `--monitor none`).
205210

206-
- **Monitoring Preferences**: The `--monitor` parameter allows you to control how build progress is displayed. The default `summary` mode provides real-time build status and duration, while `verbose` mode offers full verbose log streaming, `steps` shows step-by-step progress, and `none` returns only the task ID.
211+
- **Auto Download**: The `--download-logs` and `--download-artifacts` parameters automatically download files after build completion. Use `--path` to specify a custom download location. **Important**: These download options cannot be used with `--no-wait` or `--monitor none` because downloads require waiting for the build to complete. If you try to use them together, the CLI will display an error message with suggestions on how to resolve the conflict.
212+
213+
- **Monitoring Preferences**: The `--monitor` parameter allows you to control how build progress is displayed. The default `summary` mode provides real-time build status and duration, while `verbose` mode offers full verbose log streaming, `steps` shows step-by-step progress, and `none` returns only the task ID. **Important**: The `--monitor` flag must be provided with a valid value (`none`, `summary`, `steps`, or `verbose`). Using `--monitor` without a value or with an invalid value will result in an error.
207214

208215
- **Real-time Logs**: All monitor modes (except `none`) provide real-time log streaming, allowing you to monitor build progress as it happens. The system automatically formats logs and handles step transitions for better readability.
209216

docs/build/view.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,21 @@ appcircle build view [options]
99
## Options
1010

1111
```plaintext
12-
--profileId <uuid> Build profile ID
13-
--profile <string> Build profile name (alternative to --profileId)
14-
--branchId <uuid> Branch ID
15-
--branch <string> Branch name (alternative to --branchId)
16-
--commitId <uuid> Commit ID of your build
17-
--buildId <uuid> Build ID
12+
--profileId <uuid> Build profile ID
13+
--profile <string> Build profile name (alternative to --profileId)
14+
--branchId <uuid> Branch ID
15+
--branch <string> Branch name (alternative to --branchId)
16+
--commitId <uuid> Commit ID of your build
17+
--commitHash <string> Git commit hash (alternative to --commitId)
18+
--buildId <uuid> Build ID
1819
```
20+
21+
## Description
22+
23+
View detailed information about a specific build. You can identify the commit using either:
24+
- Appcircle's commit ID (`--commitId`), or
25+
- Git commit hash (`--commitHash`)
26+
1927
## Options inherited from parent commands
2028

2129
```plaintext
@@ -25,12 +33,15 @@ appcircle build view [options]
2533
## Examples
2634

2735
```bash
28-
# Using IDs
36+
# Using Appcircle commit ID
2937
appcircle build view --profileId 8ad65c77-9ed8-4664-a6e1-4bf7032d33cd --branchId f416f868-5d1a-4464-8ff7-70ddb789aeba --commitId b96329d3-fd56-4030-8073-c13c61d288c4 --buildId 6528b1b9-359c-4589-b29d-c249a2f690ee
3038

31-
# Using names instead of IDs
32-
appcircle build view --profile "Automation Variable" --branch "develop" --commitId b96329d3-fd56-4030-8073-c13c61d288c4 --buildId 6528b1b9-359c-4589-b29d-c249a2f690ee
39+
# Using Git commit hash instead of commit ID
40+
appcircle build view --profile "Automation Variable" --branch "develop" --commitHash a1b2c3d4e5f6 --buildId 6528b1b9-359c-4589-b29d-c249a2f690ee
3341

34-
# Mixed usage (IDs and names)
42+
# Mixed usage (names and commit ID)
3543
appcircle build view --profile "Automation Variable" --branchId f416f868-5d1a-4464-8ff7-70ddb789aeba --commitId b96329d3-fd56-4030-8073-c13c61d288c4 --buildId 6528b1b9-359c-4589-b29d-c249a2f690ee
44+
45+
# Using commit hash with profile and branch names
46+
appcircle build view --profile "My iOS Project" --branch "main" --commitHash a1b2c3d4 --buildId 6528b1b9-359c-4589-b29d-c249a2f690ee
3647
```

docs/signing-identity/certificate/upload.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,19 @@ appcircle signing-identity certificate upload [options]
99
## Options
1010

1111
```plaintext
12-
--path <path> Certificate path
12+
--path <path> Certificate path (required)
1313
14-
--password <string> Certificate password
14+
--password <string> Certificate password (optional - only needed if certificate is password-protected)
15+
```
16+
17+
## Examples
18+
19+
```bash
20+
# Upload a certificate without password
21+
appcircle signing-identity certificate upload --path ./ios_distribution.p12
22+
23+
# Upload a password-protected certificate
24+
appcircle signing-identity certificate upload --path ./ios_distribution.p12 --password "mypassword"
1525
```
1626

1727
## Options inherited from parent commands

docs/testing-distribution/upload.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@ appcircle testing-distribution upload [options]
2020
--help Show help for command
2121
```
2222

23+
## Release Notes
24+
25+
- The `--message` parameter allows you to add release notes for your distribution
26+
- Release notes are supported for both APK and AAB files
27+
- In interactive mode, you can enter multi-line release notes:
28+
- Type your release notes line by line
29+
- Leave two blank lines to finish entering release notes
30+
- You can include line breaks and formatting in your release notes
31+
2332
## Note on File Size Limits
2433

2534
- The maximum allowed file size for uploads is 3 GB

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@appcircle/cli",
3-
"version": "2.7.5",
3+
"version": "2.7.8",
44
"description": "CLI tool for running Appcircle services from the command line",
55
"main": "bin/appcircle.js",
66
"bin": {

src/core/command-runner-utilities.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,25 @@ export const validateParameterErrorFlag = (params: any): ValidationResult => {
5858

5959
/**
6060
* Expands tilde (~) in file paths to home directory
61+
* Only expands ~ at the beginning of the path (e.g., ~/Desktop or ~\Desktop)
6162
* @param filePath Path that may contain tilde
6263
* @returns Expanded path
6364
*/
6465
export const expandTildeInPath = (filePath: string): string => {
6566
if (!filePath) return filePath;
6667

68+
const trimmedPath = filePath.trim();
6769
const homeDir = os.homedir();
68-
if (filePath.includes('~')) {
69-
return filePath.replace(/~/g, homeDir);
70+
71+
// Only expand tilde if it's at the start of the path
72+
if (trimmedPath === '~') {
73+
return homeDir;
74+
}
75+
if (trimmedPath.startsWith('~/') || trimmedPath.startsWith('~\\')) {
76+
return path.join(homeDir, trimmedPath.slice(2));
7077
}
71-
return filePath;
78+
79+
return trimmedPath;
7280
};
7381

7482
/**

0 commit comments

Comments
 (0)