Skip to content

Storage

Storage configuration contains info about remote storage which will be used for files transfer operations. For example, for tests artifacts transfer between Emcee workers and CLI client.

Storage feature is required for Android platform only

Artifactory#

Artifactory setup (including deploy via containers) was tested on Artifactory version 7.63.11. If you want to use different version of the Artifactory be aware that other versions might require additional configurations in Docker/Kubernetes files. See Artifactory documentation and Artifactory release notes.

storage:
  type: artifactory
  baseUrl: http://localhost:8081/artifactory/
  repository: some-repository
  user: user_name
  password: user_password
  connectionTimeout: 30
  readTimeout: 600
  writeTimeout: 600
Parameter Description Default value
baseUrl Address of deployed Artifactory
user User for Artifactory. Omit if there is no authorization in Artifactory ""
password Password for Artifactory. Omit if there is no authorization in Artifactory ""
repository Repository to put files in Artifactory
connectionTimeout Client timeout to get first byte from Artifactory response 30
readTimeout Timeout for downloading files from Artifactory 600
writeTimeout Timeout for uploading files to Artifactory 600

Setup Artifactory#

Artifactory instance should be accessible from both client and worker which in turn runs inside docker container

You need:

  • create a new repository with Generic type and a name of your choice. Use this repository name as repository for Artifactory storage in emceeplan. The emcee-transport folder will then be created in it for Emcee to operate

  • create new or use an existing Artifactory user, or enable anonymous access in the settings. The user, including anonymous, must have read, write and delete rights

New repository might be created using panel Administration - Repositories - Add repository - Local repository

Anonymous access might be enabled using panel Administration - User management - Settings.

If you enable authorization in Artifactory, then set up a username and password for both the Emcee client and the workers

  • The Emcee client uses Artifactory for uploading apk files and downloading test artifacts
  • The Emcee worker uses Artifactory for downloading apk files and uploading test artifacts

Configured Artifactory image#

For demonstration purposes we provide a Docker image with a preconfigured Artifactory.

You can use this image instead of the standard OSS Artifactory image. You can deploy and start to use this Artifactory without additional configuration. Just use the username, password and repository in the Emcee configurations for the worker and client.

However, we do not recommend use this image in production because you should understand how to configure Artifactory and configure it according to your needs.

Here is preconfigured Artifactory image:

avitotech/emcee-artifactory:1.0.0

Credentials:

  • username: emcee_user
  • password: Emcee_password1
  • repository: emcee-transport

Also, in this image default admin user is available.

Important, do not use any Docker volume for this image because it will override previous configuration.

Example of the image run:

docker run --name artifactory -d -p 8081:8081 -p 8082:8082 avitotech/emcee-artifactory:1.0.0

Example of the storage configuration in the Emcee cli config:

#...
storage:
    type: artifactory
    baseUrl: http://your-artifactory-url:8081/artifactory/
    repository: emcee-transport
    user: "emcee_user"
    password: "Emcee_password1"