node package manager

screwdriver-store

Artifact Store

Version Pulls Stars Build Status Open Issues Dependency Status Vulnerabilities License

Pluggable Artifact Store (for logs, shared steps, templates, etc).

This system provides a simple interface for builds to use the existing JWT to write artifacts (logs, test results, etc). By default, it uses a simple in-memory storage (which is destroyed on restart). It can easily be configured to use alternative storage locations like S3.

Usage

Prerequisites

  • Node v6.0.0 or higher

From Source

$ git clone git@github.com:screwdriver-cd/store.git ./
$ npm install
$ vim ./config/local.yaml # See below for configuration
$ npm start
info: Server running at http://localhost

Pre-built Docker image

$ vim ./local.yaml # See below for configuration
$ docker run --rm -it --volume=`pwd`/local.yaml:/config/local.yaml -p 8080 screwdrivercd/store:latest
info: Server running at http://localhost

Configuration

Screwdriver already defaults most configuration, but you can override defaults using a local.yaml or environment variables.

Yaml

Example overriding local.yaml:

strategy:
    plugin: memory
 
httpd:
    port: 8080

Environment

Example overriding with environment variables:

$ export STRATEGY=memory
$ export PORT=8080

All the possible environment variables are defined here.

Storage Strategies

Right now we're using catbox for storage, so we can support any of their plugins (Redis, S3, Memcached, etc.). We have only installed the memory and S3 ones right now.

Testing

$ npm test

License

Code licensed under the BSD 3-Clause license. See LICENSE file for terms.