Updated New Script

This Script is faster, more powerful, and easier to implement.

Appsurify Script Installation


Index

  • Installation Instructions

    • Requirements

    • Support OS / Python

    • Installation Command

  • Repository Push / Git2TestBrain (git2appsurify)

    • Possible params

    • Usage Examples

  • Repository Checkout

    • Possible Params

    • Usage Examples

Installation Instructions


Requirements

Python 3.7+

Support OS / Python

OS
Python
Support

Linux

3.7

🟢

Linux

3.8

🟢

Linux

3.11

🟢

MacOS

3.7

🟢

MacOS

3.8

🟢

MacOS

3.11

🟢

Windows

3.7

🟢

Windows

3.8

🟢

Windows

3.11

🟢

Installation Command

pip install appsurify-testbrain-cli

or

poetry add appsurify-testbrain-cli

Note: Use -U or --upgrade for force upgrade to last version

Docker image "appsurify-testbrain-cli"

Latest Version

docker pull appsurifyinc/appsurify-testbrain-cli

Specify version

docker pull appsurifyinc/appsurify-testbrain-cli:2023.10.24

Repository Push | Git2Testbrain (git2appsurify)


This module is used to push changes in the repository to the Testbrain server for further analysis and testing optimization.

This module can be used as an independent command in the OS or as a subcommand of the main CLI application "testbrain"

Alias #1

testbrain repository push --help

Alias #2

git2testbrain push --help

Alias #3

testbrain git2testbrain push --help

Parameters

Required
Parameter
Default
Env
Description

Yes

--server

TESTBRAIN_SERVER

Enter your Testbrain server instance url.

Yes

--token

TESTBRAIN_TOKEN

Enter your testbrain server instance token or API Key. Located in top-right hand corner of user-interface under user profile.

Yes

--project

TESTBRAIN_PROJECT

Enter your Testbrain projet name.

No

--work-dir

current dir

TESTBRAIN_WORK_DIR

Enter the testbrain script working directory. If not specified, the current working directory will be used.

No

--repo name

TESTBRAIN_REPO_NAME

Define repository name. If not specified, it will be automatically taken from the GitRepository repository.

No

--repo-dir

current dir

TESTBRAIN_REPO_DIR

Enter the git repository directory. If not specified, the current working directory will be used.

No

--branch

current

TESTBRAIN_BRANCH

Enter the explicit branch to process commits. If not specified, use current active branch.

No

--start / --commit

latest (HEAD)

TESTBRAIN_START_COMMIT

Enter the commit that should be starter. If not specified, it will be used 'latest' commit.

No

--number

1

TESTBRAIN_NUMBER_OF_COMMITS

Enter the number of commits to process.

No (unavailable)

--blame

false

Add blame information.

No

--minimize

false

Suppress commit changes information. [default; (False)]

No

--pr-mode

false

TESTBRAIN_PR_MODE

Activate PR mode

No

-l, --loglevel

INFO

Possible fatalities: DEBUG/INFO/WARNING/ERROR

No

--logfile

stderr

Saves logs to file

No

--quiet

fales

Quiet mode...every time exit with 0

Usage Examples

Push to Testbrain server only one last commit from current branch:

git2testbrain --server https://demo.appsurify.com --token ************************************************************** --project DEMO

Or

git2testbrain push --server https://demo.appsurify.com --token ************************************************************** --project DEMO

Push to Testbrain server last 100 commits started from specify commit into specify branch:

git2testbrain --server https://demo.appsurify.com --token ************************************************************** --project DEMO --branch main --start latest --number 100

If need more process information - change logging level:

git2testbrain --server https://demo.appsurify.com --token ************************************************************** --project DEMO --branch main --start latest --number 100 --loglevel DEBUG

Add log file with full or relative path:

git2testbrain --server https://demo.appsurify.com --token ************************************************************** --project DEMO --branch main --start latest --number 100 --loglevel INFO --logfile ./git2testbrain.log

If any crash errors script will create crash dump file into {WORK_DIR}/.crashdumps/

git2testbrain --server https://demo.appsurify.com --token ************************************************************** --project DEMO

You can see this message:

2023-11-05 21:16:03 INFO     testbrain.repository.cli push [repository/cli.py:184] Running...
2023-11-05 21:16:03 DEBUG    testbrain.terminal.process Process.__init__ [terminal/process.py:22] Set up execution working dir ...
Dumped crash report to <path_to_work_dir>/.crashdumps/git2testbrain-2023-10-23-11-27-39.dump

Docker version usage

$(pwd) - git repository path

docker run --rm -it \
-v $(pwd)/:/data \
appsurifyinc/appsurify-testbrain-cli git2testbrain --server https://demo.appsurify.com --token ************************************************************** --project DEMO

CI example (github actions)

.github/workflows/testbrain-git2testbrain.yml

name: "Testbrain"

on:
    workflow_dispatch:
    pull_request:
        branches:
            - "main"
            - "development"
    push:
        branches:
            - "main"
            - "releases/*.*.*"
            - "development"

jobs:
    push-changes:
        name: "Push changes to server"
        runs-on: ubuntu-latest
        permissions:
            contents: write
            pull-requests: write
            checks: write
        steps:
            - name: "Checkout repository"
              uses: actions/checkout@v4
              with:
                  fetch-depth: 0
            - name: "Extract branch name"
              shell: bash
              run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
              id: extract_branch
            - name: "Push"
              uses: addnab/docker-run-action@v3
              with:
                  image: appsurifyinc/appsurify-testbrain-cli:latest
                  options: -v ${{ github.workspace }}:/data -e TESTBRAIN_PR_MODE=${{ github.event_name == 'pull_request' }}
                  run: |
                      git2testbrain push --server ${{ vars.TESTBRAIN_SERVER }} --token ${{ secrets.TESTBRAIN_TOKEN }} --project ${{ vars.TESTBRAIN_PROJECT }} --branch ${{ steps.extract_branch.outputs.branch }} --start ${{ github.sha }} --number ${{ vars.TESTBRAIN_NUMBER_OF_COMMITS }} -l DEBUG
            - name: "Upload crash dumps"
              uses: actions/upload-artifact@v3
              if: failure()
              with:
                  name: "crashdumps"
                  path: ${{ github.workspace }}/.crashdumps/
                  retention-days: 1

Repository Checkout


This module is used to checkout branches during the execution of CI pipelines or manually. Cloning is not provided.

Alias #1

testbrain repository checkout --help

Alias #2

git2testbrain checkout --help

Alias #3

testbrain git2testbrain checkout --help

Parameters

Required
Parameter
Default
Env
Description

No

--repo-dir

current dir

TESTBRAIN_REPO_DIR

Enter the git repository directory. If not specified, the current working directly will be used.

No

--branch

current

TESTBRAIN_BRANCH

Enter the explicit branch to process commits. If not specified, use current active branch.

No

--commit

latest (HEAD)

TESTBRAIN_START_COMMIT

Enter the commit that should be starter. If not specified, it will be used 'latest' commit.

No

--pr-mode

False

TESTBRAIN_PR_MODE

Activate PR mode

No

--work-dir

current dir

TEST_WORK_DIR

Enter the testbrain script working directory, the current working directory will be used.

No

-l, --loglevel

INFO

Possible Fatalities: DEBUG/INFO/WARNING/ERROR

No

--logfile

stderr

Save logs to file

No

--quiet

false

Quiet mode...every time exit with 0

Usage Examples:

Checkout using Testbrain CLI

git2testbrain checkout --branch main -l INFO

Or

git2testbrain checkout --branch main --commit 75ec2f061868c33306963a27d5164211553c049b --pr-mode -l INFO

Or

git2testbrain checkout --branch main --commit 676c581 --pr-mode -l INFO

Docker version usage

$(pwd) - git repository path

docker run --rm -it \
-v $(pwd)/:/data \
appsurifyinc/appsurify-testbrain-cli git2testbrain checkout --branch main --commit 676c581 --pr-mode -l INFO

Last updated