Skip to main content

Python continuous integration (CI) support tools.

Project description

Introduction

Python continuous integration (CI) support tools.

To install: pip install isee

Documentation here.

  1. Introduction
  2. Goal
  3. Workflow
  4. Results and Logs
  5. Versioning
  6. Skip CI
  7. Hosting
  8. How to setup CI
  9. Useful resources

Goal

The goal of CI is to automate code formatting, validation, deployment and publishing of packages.

Workflow

A CI pipeline is triggered when new code is pushed to a remote repository. Every CI pipeline does at least:

  1. Code formatting
    • Apply automated linting on source code
    • Push back the formatted code to the remote repository
  2. Code validation
    • Testing (unit tests, integration tests, doctests)
    • Docstring validation (only for frameworks)
  3. Deployment to an integration environment for applications / Publishing for frameworks -- (only on master and only if the Validation step succeeded)
    • Semi-automated versioning (see the Versioning section) + Tag the repository with the new generated version number
    • Packaging
    • Deployment / Publishing

Results and Logs

You can see your CI pipeline's result and logs:

  • From your GitLab project page → CI/CD → Pipelines
  • From your GitHub project page → Actions → Continuous Integration

Versioning

Versioning is semi-automatically resolved: if you want the major or minor part to be bumped, you only have to add [bump major] or [bump minor] to your commit message on master (versioning is not applied to other branches).

Example, the current version number is 1.0.5. If you commit with the following message:

Added some new stuff.

the new version number will be 1.0.6. But if you commit with the following message:

Added some great new stuff! [bump minor]

the new version number will be 1.1.0. Finally, if you commit with the following message:

Added some extraordinary new stuff!!! [bump major]

the new version number will be 2.0.0.

Skip CI

You can prevent the CI pipeline from being triggered by adding [skip ci] to your commit message. Example:

Updated the README file. [skip ci]

Be careful! If you skip the CI process, any new code will not be validated and no new version will be deployed/published. So, think twice before using it.

Hosting

CI pipelines for GitHub public repositories are run on GitHub-hosted runners. See the GitHub documentation for more details

How to setup CI

This "How to" section applies to python package projects only. If you want to setup CI to an application project or another programing language, you will have to modify the CI pipeline definition according to your needs.

For a GitHub repository

  1. Add this ci.yml file to the github/workflow/ directory (create the directory if it doesn't exist) into your local repository. Note that wads does it for you by running the following command from the project's root directory (documentation here):
 populate . --root-url=GITHUB_ROOT_URL

Note that you can specify the root directory (in case you're not in the root directory), root url (in case the directory is not already associated to a git repo), and have many other parametrization choices.

Fear not: populate will not create or modify the ci.yml file (or any other file) if there is one already.

  1. In the ci.yml file, replace #PROJECT_NAME# with the project name (must be the exact same name as the main module of the project, not needed if you ran the populate tool because it did it for you) and modify the pipeline workflow to suit the project's needs. Documentation here.
  2. Add secrets PYPI_USERNAME and PYPI_PASSWORD with your PYPI credentials to the remote repository. Documentation here.
  3. If you want the project's documentation to be published, configure the project's Github Pages for the project by selecting the /docs folder. Documentation here.
  4. Push your code and see the execution of the new Continuous Integration workflow. Documentation here. Consider using wads to automatically validate your code locally, commit and push by running the following command (documentation here):
pack check-in 'Your commit message.'

Useful resources

troubleshooting tests

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

isee-0.1.35.tar.gz (11.3 kB view details)

Uploaded Source

File details

Details for the file isee-0.1.35.tar.gz.

File metadata

  • Download URL: isee-0.1.35.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.14

File hashes

Hashes for isee-0.1.35.tar.gz
Algorithm Hash digest
SHA256 0fc90b5fa544f0c89f123aad2fb758392a484dac5c521f8cfbf991b2d758380e
MD5 8f613aa75ddc905724096a951d46a61b
BLAKE2b-256 684af1040d29f6a06fad71f4e66866015cbcf76a0db39996e2c628ca8f0f05a6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page