API for the Screwdriver CD service
- Node v6.0.0 or higher
$ git clone git@github.com:screwdriver-cd/screwdriver.git ./
$ npm install
$ vim ./config/local.yaml # See below for configuration
$ npm start
info: Server running at http://localhost:8080
$ vim ./local.yaml # See below for configuration
$ docker run --rm -it --volume=`pwd`/local.yaml:/config/local.yaml -p 8080 screwdrivercd/screwdriver:stable
info: Server running at http://localhost:8080
This handy feature will bring up an entire Screwdriver instance (ui, api, and log store) locally for you to play with.
Requires:
- Mac OSX 10.10+
- Docker for Mac
- Docker Compose 1.8.1+
$ python <(curl https://raw.githubusercontent.com/screwdriver-cd/screwdriver/master/in-a-box.py)
Screwdriver already defaults most configuration, but you can override defaults using a local.yaml
or environment variables.
Example overriding local.yaml
:
executor:
plugin: k8s
k8s:
host: 127.0.0.1
token: this-is-a-real-token
login:
oauthClientId: totally-real-client-id
oauthClientSecret: another-real-client-secret
Example overriding with environment variables:
$ export K8S_HOST=127.0.0.1
$ export K8S_TOKEN=this-is-a-real-token
$ export SECRET_OAUTH_CLIENT_ID=totally-real-client-id
$ export SECRET_OAUTH_CLIENT_SECRET=another-real-client-secret
All the possible environment variables are defined here.
This API comes preloaded with 7 (seven) resources:
One (1) option for datastores:
- Postgres, MySQL, and Sqlite (
sequelize
)
Two (2) options for executor:
- Kubernetes (
k8s
) - Docker (
docker
)
Two (2) options for SCM:
- Github (
github
) - Bitbucket (
bitbucket
)
npm test
Update .func_config.json
with your own username, github token, access key, and host:
{
"username": "YOUR-GITHUB-USERNAME",
"gitToken": "YOUR-ACCESS-TOKEN",
"accessKey": "YOUR-ACCESS-KEY",
"host": "YOUR-LOCAL-API-HOST"
}
Then run the cucumber tests:
npm run functional
Code licensed under the BSD 3-Clause license. See LICENSE file for terms.