Skip to content
/ integra Public

[Draft] Tool for multiplatform deployment

License

Notifications You must be signed in to change notification settings

kolyat/integra

Repository files navigation

Integra

[DRAFT]

Tool for multiplatform deployment of test packages, which supports:

  • Windows
  • Android
  • *nix systems: macOS, Raspberry Pi OS, Debian-like systems, and others
  • Samsung Tizen (SSSP)
  • LG webOS: production-ready or debug packages
  • web deployment in Docker container

Requirements

Operating system

Windows 7 or higher.

Tools

  1. Android SDK platform tools or scrcpy in order to get ADB.
  2. webOS CLI.

Keeping passwords

Use Set password feature to keep all necessary credentials.

Settings

config.yaml

fileserver_url: URL to a server where test packages are stored.

username: username to access file server (do not forget to set up password with setpwd utility).

download_dir: local directory for storing test packages.

ptypes: package types

editions: package editions

devices.yaml

name: name of a device.

cleanup: perform clean-up procedure (uninstall previous version of a test package, remove residual data, clean deployment directory, etc.).

ptype: type of package (e.g., win64, arm).

edition: package's edition.

remote: local or remote deployment (for browser version only).

host: target host.

port: target port.

cport: port of Docker container (for browser version only).

username: username on a target host.

upload_dir: deployment directory.

description: description of a target.

bundletool

Prepare bundletool in order to deploy Android aab packages.

See /utils/bundletool/README for details.

Preparing platforms

Windows

  1. Create C:\swap
  2. Run cmd as administrator
  3. Execute the following:
    powershell Set-ExecutionPolicy -ExecutionPolicy Unrestricted
    powershell Enable-PSRemoting
    sc \\localhost config winrm start= auto
    netsh firewall set icmpsetting 8
    netsh firewall set portopening TCP 5985 ENABLE
    netsh firewall set portopening TCP 5986 ENABLE
    winrm quickconfig /quiet && winrm set winrm/config/client/auth @{Basic="true"} && winrm set winrm/config/service/auth @{Basic="true"} && winrm set winrm/config/service @{AllowUnencrypted="true"}
    winrm enumerate winrm/config/listener
    

Android

  1. Enable developer options.
  2. Switch on USB debugging.
  3. Enable Install via USB.
  4. Disable adb authorization timeout.
  5. Switch off Verify apps over USB.
  6. Enable wireless debugging or run adb tcpip 5555.

macOS

  1. Go to System preferences->Sharing.
  2. Enable Remote Login.
  3. Allow access for an account that's going to be used.

Raspberry Pi OS

  1. Go to Preferences->Raspberry Pi Configuration.
  2. Switch to Interfaces tab.
  3. Enable SSH.

Ubuntu

  1. Install and start openssh-server.
  2. Enable PasswordAuthentication in /etc/ssh/sshd_config.
  3. Execute sudo systemctl restart ssh

Tizen

  1. Make sure that target host is available by SMB and does not require authentication.
  2. URL launcher of target device is configured properly.

webOS

  1. Make sure that target host is available by SMB and does not require authentication.
  2. SI Server settings of target device are configured properly.

For debug packages:

  1. Enable Developer mode on target device.
  2. Register device with ares-setup-device.
  3. Get SSH key from device with ares-novacom --device target_device --getkey.
  4. Update device (add passphrase and key path) with ares-setup-device.

Browser version

  1. Prepare target host with Ubuntu (see Ubuntu section).
  2. Install Docker engine.
  3. Get nginx image: sudo docker image pull nginx.
  4. Set up Docker daemon.