- Interactive mode
- Multiple projects
- Multiple Pipelines
- Fail fast
Installation:
gem install ski
Example setup:
-
Create a
.ski/
directory in your project. -
Add a file
your-project.yml
to.ski/
title: Bonumco
description: Hello World
pipelines:
build:
description: Build local docker images
fail-fast: false
interactive: false
target: :local
workdir: .
tasks:
show-all-local-files:
description: Show all local files
command: ls .
show-space-used:
description: Show the whole space
command: du -sch .
get-google-infos:
description: Curl google for header information
command: curl -I www.google.de
check-processes:
description: Check processes running of port 3000
command: lsof -i :3000
check-ruby-version:
description: Check ruby version
command: ruby -v
then:
greet:
description: Wish a happy day
command: echo 'Hey dear, the deployment was successfull. Have a nice day! :)'
catch:
rollback:
description: Rolling back actions
command: echo 'Oooops, something went wrong!'
deployment:
description: Deploy things
interactive: true
fail-fast: true
target: :local
tasks:
deploy-to-production:
description: Deploy to production
command: echo 'Bam bam production!'
then:
greet:
description: Wish a happy day
command: echo 'Hey dear, the deployment was successfull. Have a nice day! :)'
catch:
greet:
description: Something went wrong
command: echo 'Oh man! Something went horribly wrong!'
targets:
local:
ip: 192.168.0.1
username: root
password: :prompt
ssh-key: true
- Run:
ski -P your-project -p build
- Add functionality for remote tasks
- Add functionality for prompts (like configurable 'are you sure' etc)
- Add functionality for variables (:prompts, :my_var etc)
- Make use of pipeline targets in code
- Add functionality for secrets and ssh keys (stored somewhere on a safe place not in your project dir)
- Improve command line (ski run bonumco/deployment or something..)