YAML configuration file support for Codeship.
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.)
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 >
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:
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)
Adding custom sections, other than the default ones, to your
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.
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
$ 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.
This project is brought to you by Painless Software, a best-practice consultancy in software development. Less pain, more fun.