Ski
A automation framework made for portability
Installation:
gem install ski
Example setup:
Create a
.ski/directory in your project.Add a file
your-project.ymlto.ski/
title: Your Project
description: Hello World
pipelines:
- pipeline:
id: build
description: Build local docker images
fail-fast: true
target: :local
tasks:
- task:
name: Show all local files
command: ls .
- task:
name: Space used
command: du -sch .
- task:
name: Ping google exactly one time
command: ping google.de -t 1
- task:
name: Check processes running of port 3000
command: lsof -i :3000
- task:
name: Check ruby version
command: ruby -v
on-success:
tasks:
- task:
name: Wish a happy day
command: echo 'Hey dear, the deployment was successfull. Have a nice day! :)'
on-error:
tasks:
- task:
name: Build App server
command: echo 'Hello World'
- pipeline:
id: deploy
description: Build local docker images
fail-fast: true
target: :local
tasks:
- task:
name: Deploy to prod
command: echo 'Deploy to prod'
on-success:
tasks:
- task:
name: Build App server
command: echo 'Hello World'
on-error:
tasks:
- task:
name: Build App server
command: echo 'Hello World'
targets:
- target:
name: local
ip: 192.168.0.1
username: root
password: :prompt
ssh-key: true
- Run:
ski -P your-project -p build
Todo
- 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)