Pluggable Artifact Store (for logs, shared steps, templates, etc).
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
config
hooks
lib
plugins
test
.dockerignore
.editorconfig
.eslintignore
.eslintrc.yaml
.gitignore
.npmignore
CONTRIBUTING.md
Dockerfile
Dockerfile.local
LICENSE
README.md
index.js
package.json
screwdriver.yaml

README.md

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 v8.9.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 only installed the memory and S3 ones for now.

Testing

$ npm test

License

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