Managing the Artifacts Unzip Service

Package

Artifacts Unzip Service is a service that unzips the build artifacts uploaded as a zip.
It’s required to use the Zip Artifacts feature.
Like the other services, Artifacts Unzip Service is shipped as a Docker image.

docker run -d screwdrivercd/artifacts-unzip-service:latest

This images are tagged for their version (eg. v1.2.3) as well as a floating latest. Most installations should be using the fixed version tags.

Configuration

Queue

Configure some settings for setting up the Queue.

Key Default Description
REDIS_HOST - Redis host
REDIS_PORT - Redis port
REDIS_PASSWORD - Redis password
REDIS_TLS_ENABLED false Redis tls enabled. Specify false if tls is not used. If you use tls, need to set the tls option of ioredis.
REDIS_DB_NUMBER 0 Redis db number
REDIS_QUEUE_PREFIX ’’ Redis queue prefix
# config/local.yaml
queue:
  redisConnection:
    host: 127.0.0.1
    port: 6379
    options:
      password: REDIS PASSWORD
      tls: false
    database: 0
  prefix: ''

MultiWorker

Configure some settings for setting up the MultiWorker.

Key Default Description
WORKER_MIN_TASK_PROCESSORS 1 The minimum number of workers to spawn under this multiWorker.
WORKER_MAX_TASK_PROCESSORS 10 The maximum number of workers to spawn under this multiWorker.
WORKER_CHECK_TIMEOUT 1000 How often to check if the event loop is blocked (in ms)
WORKER_MAX_EVENT_LOOP_DELAY 10 How long the event loop has to be delayed before considering it blocked (in ms)
# config/local.yaml
unzip-service:
  minTaskProcessors: 1
  maxTaskProcessors: 10
  checkTimeout: 1000
  maxEventLoopDelay: 10

You need to see the MultiWorker page for more information.

Health Check

Configure some settings for setting up health check endpoint.

You can get the last check time of event loop blocked or not by calling GET /last-emitted endpoint. You can change the check interval by setting WORKER_CHECK_TIMEOUT.

Key Default Description
PORT 80 Port to listen on
HOST 0.0.0.0 Host to listen on (set to localhost to only accept connections from this machine)
URI http://localhost:80 Externally routable URI (usually your load balancer or CNAME)
# config/local.yaml
httpd:
    port: 80
    host: 0.0.0.0
    uri: https://localhost