Coder Social home page Coder Social logo

codeship-yaml's Introduction

Codeship-YAML Latest version on PyPI

Build status Code health Monthly downloads from PyPI Software license Gitter chat room

YAML configuration file support for Codeship.

Syntax Compatibility
Travis CI Build status
Shippable Build status

Background

Many continuous integration services support YAML configuration files in order to support the infrastructure as code paradigm. Codeship, though one of the most appealing platforms, is missing this feature. You have to add commands regarding setup, testing and deployment in your Codeship project settings. This has various disadvantages, but even though users are complaining Codeship is not planning to address the issue on its traditional build server infrastructure. (Only Codeship's new Docker-based infrastructure will finally make you more happy.)

Usage

Create a codeship.yml file in your repository at root level. The syntax is inspired by Travis CI and Shippable, though only limited features are supported. Example:

install:
  - pip install flake8
before_script:
  - touch codeship-yaml-was-here
script:
  - flake8
after_success:
  - echo "Now we can deploy"

To make Codeship read and interpret your codeship.yml file, and execute the commands in it add the following lines in the Setup Commands text box at Codeship > Select Project... > (your project), Project Settings > Test Settings.

pip install codeship-yaml
codeship-yaml

This will make codeship-yaml execute the commands you specified in the default sections in the following section order:

  1. install
  2. before_script
  3. script
  4. after_success

More Control

If you want more control over which sections are executed you can specify the requested section as a parameter. For example, you could add the following commands into the below-mentioned text boxes of your Codeship project:

Project Settings > Test Settings > Setup Commands

pip install codeship-yaml
codeship-yaml install

Project Settings > Test Settings > Test Commands

codeship-yaml before_script script

Project Settings > Deployment > (branch name)

codeship-yaml after_success

Adding custom sections, other than the default ones, to your codeship.yml file is possible but discouraged (to avoid losing similarity with other build platforms). If you want an additional section, which is established on other platforms already, please consider placing a pull request.

Contribute

For development we use tox, which handles both static code analysis and tests for all supported Python versions. tox is automatically installed for the test runs and will work out-of-the-box when you run the tests through setup.py. Unfortunately, you'll have to install virtualenv though:

$ pip install virtualenv

After making your code changes don't forget to add tests, and simply run:

$ python setup.py test

When you place a pull request all tests are run on the build server infrastructure of Codeship, Travis CI and Shippable again. Please check if they all pass to ensure the syntax stays compatible across different build infrastructures.

Credits

This project is brought to you by Painless Software, a best-practice consultancy in software development. Less pain, more fun.

codeship-yaml's People

Contributors

bittner avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.