Skip to main content

Artemis Custom Runner

A custom runner enables you to validate your code by running builds, tests, and benchmarks on your local machine. The Artemis Tools Bundle provides an unified way to download and use the Artemis Runner in a secure and isolated environment, allowing you to run code outside the platform safely and efficiently.

Video: How to set up Custom Runner

Accessing Runner Setup

There are two ways to access the custom runner setup:

Method 1: Via Runners Section

  1. Navigate to the Runners section in the main navigation
  2. Click on "Set up a custom runner" to begin configuration

Runners Section

Method 2: Via Project Settings

  1. Navigate to your project's Settings tab in the top navigation
  2. Go to the Build section in the left sidebar
  3. Look for the "Set up a custom runner" section in the Build Settings

This method allows you to set up a custom runner directly from your project's build configuration.

Runners Section

Setup Methods

Quickstart

The quickstart method provides OS-specific installation commands for immediate setup:

  1. Choose your operating system (Linux/macOS or Windows)
  2. Copy and execute the provided command in your terminal

Step-by-step Installation

Step-by-step Installation Detailed step-by-step installation process with terminal commands

For a more detailed setup process, follow these steps:

Prerequisites

  • 1GB of free disk space (plus enough space for your project repository and dependencies)
  • Internet connection for initial setup
  • Python 3.11 with virtual environment support
  • pip package manager

1. Download Artemis Tools

Download the compressed folder using the provided curl command:

curl -L --digest -u 'Artemis_User:Artemis_Custom_Runner_2025' \
'https://files.artemis.turintech.ai/tools-bundle/artemis-tools-latest.tar.gz' \
-o artemis-tools-latest.tar.gz

2. Extract Files

Extract the custom runner files from the compressed folder:

tar -xzf artemis-tools-latest.tar.gz
cd artemis-tools

3. Create Virtual Environment

Create a new virtual environment and install the custom runner Python packages:

python3.11 -m venv .venv
source .venv/bin/activate
pip install --find-links wheels/ artemis-runner

4. Start the Custom Runner

Launch the runner with your credentials:

artemis-runner

You will be prompted to enter your account credentials and name your runner for identification on the platform. You can save these details in a .env.credentials file to avoid entering them each time.

How the Custom Runner Works

Custom Runner Architecture Architecture diagram showing the communication between Artemis Server and your local machine

The custom runner operates through a secure REST API communication:

  1. Command Triggered: User runs a validation command on the Artemis web platform
  2. Runner Receives Command: Your local runner picks up the command from the channel
  3. Repository Copied Locally: Runner clones your repository to a temporary folder
  4. Command Executed on Local Copy: Runner executes the command on the local copy
  5. Logs Sent Back: Real-time logs stream back to Artemis server

Configuration Options

Environment Variables

Configure your runner by creating a .env.credentials file:

ARTEMIS_USERNAME="<your artemis email address>"
ARTEMIS_PASSWORD="<your artemis password>"
ARTEMIS_RUNNER_NAME="<your runner name>"
ARTEMIS_ENVIRONMENT="production"

Custom Environment Support

For on-premise deployments, set up a .env.custom file with required microservice configurations:

  • THANOS (Authentication service)
  • THOR (Task orchestration)
  • FALCON (Code analysis)
  • VISION (UI backend)
  • LOKI (Logging service)

SSL Configuration

Configure SSL certificate verification:

export ARTEMIS_SSL_VERIFY=true    # Use system CA certificates
export ARTEMIS_SSL_VERIFY=false # Disable SSL verification
export ARTEMIS_SSL_VERIFY=/path/to/ca/certificates.pem # Custom CA certificates

Usage Tips

  • Ensure your runner has adequate disk space for project dependencies
  • Keep your virtual environment activated when running the custom runner
  • Save credentials in .env.credentials for convenience
  • Monitor the runner logs to troubleshoot any connection issues
  • Use meaningful runner names to identify them in the platform

Advanced Usage

This section covers advanced usage scenarios for the Artemis runner, including isolated installation and resource management.

Isolated Installation with pipx

When your project uses a different Python version than the one required by the Artemis runner (Python 3.11), you can use pipx to install the runner in an isolated environment. This prevents any conflicts between your project's Python dependencies and the runner's requirements.

Installing pipx

pipx is a tool for installing and running Python applications in isolated environments. It's available on PyPI and various package managers. For this guide, we'll use the PyPI installation method:

pip install --user pipx

Installing the Artemis Runner with pipx

  1. Download the zip file from the downloads page
  2. Extract the zip file
  3. Install the runner using pipx:
cd artemis-tools
pipx install --pip-args "--find-links $PWD/wheels" --python=3.11 artemis-runner

Running the Isolated Runner

After installation, you can start the Artemis runner from any directory without activating any virtual environment:

artemis-runner --runner-name <your runner name>
Benefits of pipx Installation
  • Isolates the runner's Python 3.11 environment from your project
  • Prevents dependency conflicts
  • Allows you to run the runner from any directory
  • Makes it easier to manage multiple Python versions on your system

Resource Management

Limiting RAM Usage

You can control the amount of RAM available to your evaluations using the ARTEMIS_RAM_LIMIT_MB environment variable. This is particularly useful when running evaluations on systems with limited resources or when you need to ensure consistent resource usage across different environments.

# Set RAM limit to 4GB (4096MB)
export ARTEMIS_RAM_LIMIT_MB=4096
artemis-runner --runner-name <your runner name>
note

The RAM limit is specified in megabytes (MB). For example:

  • 1GB = 1024MB
  • 2GB = 2048MB
  • 4GB = 4096MB
  • 8GB = 8192MB
warning

Setting the RAM limit too low may cause your evaluations to fail if they require more memory than allocated. Monitor your evaluations' memory usage to determine appropriate limits.

Proxy Configuration

If you're experiencing connection issues in a corporate environment with a proxy, try configuring no_proxy to allow direct connections to your Artemis deployment.

Environment Variables

  • no_proxy/NO_PROXY: Comma-separated list of hosts to bypass proxy

Troubleshooting Connection Issues

For SaaS Artemis (artemis.turintech.ai)

If you're having connection problems, try adding artemis.turintech.ai to your no_proxy:

export no_proxy=localhost,127.0.0.1,artemis.turintech.ai
artemis-runner --runner-name my-runner

Why this helps: Direct connections to Artemis can be faster and more reliable than going through corporate proxy.

For On-premise Artemis

If you're having connection problems with internal deployments, try adding your Artemis deployment to no_proxy:

# For domain-based deployment
export no_proxy=localhost,127.0.0.1,artemis.internal.company.com

# For IP-based deployment
export no_proxy=localhost,127.0.0.1,192.168.41.1

# Run with custom environment
artemis-runner --environment=custom --runner-name my-runner

Testing Connectivity

Before starting the runner, verify connectivity:

# Test direct connection (with no_proxy)
curl -v https://artemis.turintech.ai

# Test internal deployment
curl -v https://artemis.internal.company.com

Troubleshooting

If you encounter connection issues:

  1. Verify no_proxy is set correctly:

    echo $no_proxy
  2. Check if proxy is blocking Artemis:

    • SSL certificate errors may indicate proxy SSL inspection
    • Connection timeouts may indicate proxy blocking

Next Steps

Once your custom runner is configured and running, you can:

Troubleshooting

If you encounter connection issues:

  1. Verify your credentials in .env.credentials
  2. Check your internet connection
  3. Ensure Python 3.11 is properly installed
  4. Confirm the runner name is unique on your account
  5. Review SSL certificate configuration if using HTTPS