Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ pipeline {
}
environment {
NPM_AUTH_TOKEN = credentials('Appcircle-CLI-NPM-Cred')
GITHUB_PAT = credentials('ozer-github-pat')
GITHUB_PAT = credentials('appcircle-cli-gh-repo-fg-pat')
}
stages {
stage('PR Validation') {
Expand Down Expand Up @@ -230,7 +230,10 @@ pipeline {

stage('Publish') {
when {
expression { params.PUBLISH == true }
anyOf {
expression { params.PUBLISH == true }
buildingTag()
}
}
steps {
sh '''#!/bin/bash
Expand Down
13 changes: 10 additions & 3 deletions docs/build/start.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,15 @@ appcircle build start [options]
--configurationId <uuid> Configuration ID
--configuration <string> Configuration name (alternative to --configurationId)
--no-wait Don't wait for build completion, return immediately with task info
Note: Incompatible with monitoring modes (--monitor) and download options
--download-logs Automatically download build logs after completion
Note: Cannot be used with --no-wait or --monitor none
--download-artifacts Automatically download build artifacts after completion
Note: Cannot be used with --no-wait or --monitor none
--path <string> Download path for logs and artifacts (default: ~/Downloads)
--monitor <mode> Build monitoring preference: none, summary (default), steps, or verbose
--monitor [mode] Build monitoring preference: none, summary (default), steps, or verbose
Valid values: none | summary | steps | verbose
Note: Incompatible with --no-wait. Must be specified with a valid value.
```

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

- **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.

- **Auto Download**: The `--download-logs` and `--download-artifacts` parameters automatically download files after build completion. Use `--path` to specify a custom download location.
- **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`).

- **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.
- **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.

- **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.

- **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.

Expand Down
31 changes: 21 additions & 10 deletions docs/build/view.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,21 @@ appcircle build view [options]
## Options

```plaintext
--profileId <uuid> Build profile ID
--profile <string> Build profile name (alternative to --profileId)
--branchId <uuid> Branch ID
--branch <string> Branch name (alternative to --branchId)
--commitId <uuid> Commit ID of your build
--buildId <uuid> Build ID
--profileId <uuid> Build profile ID
--profile <string> Build profile name (alternative to --profileId)
--branchId <uuid> Branch ID
--branch <string> Branch name (alternative to --branchId)
--commitId <uuid> Commit ID of your build
--commitHash <string> Git commit hash (alternative to --commitId)
--buildId <uuid> Build ID
```

## Description

View detailed information about a specific build. You can identify the commit using either:
- Appcircle's commit ID (`--commitId`), or
- Git commit hash (`--commitHash`)

## Options inherited from parent commands

```plaintext
Expand All @@ -25,12 +33,15 @@ appcircle build view [options]
## Examples

```bash
# Using IDs
# Using Appcircle commit ID
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

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

# Mixed usage (IDs and names)
# Mixed usage (names and commit ID)
appcircle build view --profile "Automation Variable" --branchId f416f868-5d1a-4464-8ff7-70ddb789aeba --commitId b96329d3-fd56-4030-8073-c13c61d288c4 --buildId 6528b1b9-359c-4589-b29d-c249a2f690ee

# Using commit hash with profile and branch names
appcircle build view --profile "My iOS Project" --branch "main" --commitHash a1b2c3d4 --buildId 6528b1b9-359c-4589-b29d-c249a2f690ee
```
14 changes: 12 additions & 2 deletions docs/signing-identity/certificate/upload.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,19 @@ appcircle signing-identity certificate upload [options]
## Options

```plaintext
--path <path> Certificate path
--path <path> Certificate path (required)

--password <string> Certificate password
--password <string> Certificate password (optional - only needed if certificate is password-protected)
```

## Examples

```bash
# Upload a certificate without password
appcircle signing-identity certificate upload --path ./ios_distribution.p12

# Upload a password-protected certificate
appcircle signing-identity certificate upload --path ./ios_distribution.p12 --password "mypassword"
```

## Options inherited from parent commands
Expand Down
9 changes: 9 additions & 0 deletions docs/testing-distribution/upload.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,15 @@ appcircle testing-distribution upload [options]
--help Show help for command
```

## Release Notes

- The `--message` parameter allows you to add release notes for your distribution
- Release notes are supported for both APK and AAB files
- In interactive mode, you can enter multi-line release notes:
- Type your release notes line by line
- Leave two blank lines to finish entering release notes
- You can include line breaks and formatting in your release notes

## Note on File Size Limits

- The maximum allowed file size for uploads is 3 GB
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@appcircle/cli",
"version": "2.7.5",
"version": "2.7.8",
"description": "CLI tool for running Appcircle services from the command line",
"main": "bin/appcircle.js",
"bin": {
Expand Down
14 changes: 11 additions & 3 deletions src/core/command-runner-utilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,17 +58,25 @@ export const validateParameterErrorFlag = (params: any): ValidationResult => {

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

const trimmedPath = filePath.trim();
const homeDir = os.homedir();
if (filePath.includes('~')) {
return filePath.replace(/~/g, homeDir);

// Only expand tilde if it's at the start of the path
if (trimmedPath === '~') {
return homeDir;
}
if (trimmedPath.startsWith('~/') || trimmedPath.startsWith('~\\')) {
return path.join(homeDir, trimmedPath.slice(2));
}
return filePath;

return trimmedPath;
};

/**
Expand Down
Loading