Skip to main content

Python for DevOps: CI/CD for Python Projects

This repo contains the code for the CI/CD section of my Python for DevOps course.

It packages a small command-line tool, check-urls, that checks one or more URLs and prints their HTTP status.

Workflow

workflow-overview

What we will implement in this repository

  • Implement the project (code files)
  • Add a simple GHA workflow and make sure it runs until completion
  • Add linting (ruff) and format checks (black)
  • Add typing (mypy) and security checks (bandit)
  • Add test automation
  • Build our Python project
  • Publish the project to both TestPyPI and PyPI when a new release is published

Installation

Install the package from PyPI:

pip install simple-http-checker-PedroLima

Install from TestPyPI:

pip install --index-url https://test.pypi.org/simple/ simple-http-checker-PedroLima

For local development, clone the repository and install it in editable mode:

git clone <repo-url>
cd python-devops-cicd-project
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Usage

Check a single URL:

check-urls https://httpbin.org/status/200

Check multiple URLs:

check-urls https://httpbin.org/status/200 https://httpbin.org/status/404 https://httpbin.org/status/500

Set a custom timeout in seconds:

check-urls https://httpbin.org/delay/2 --timeout 5

Enable verbose logging:

check-urls https://httpbin.org/status/200 --verbose

Example output:

--- Results ---
https://httpbin.org/status/200             -> 200 OK
https://httpbin.org/status/404             -> 404 NOT FOUND
https://httpbin.org/status/500             -> 500 INTERNAL SERVER ERROR

Development

Install development dependencies:

pip install -e ".[dev]"

Run linting, formatting, typing, security checks, and tests:

ruff check .
black --check .
mypy src/
bandit -c pyproject.toml -r .
pytest

Package Info

  • Package name: simple-http-checker-PedroLima
  • CLI command: check-urls
  • Python version: >=3.9

Download files

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

Source Distribution

simple_http_checker_pedrolima-1.2.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file simple_http_checker_pedrolima-1.2.0.tar.gz.

File metadata

File hashes

Hashes for simple_http_checker_pedrolima-1.2.0.tar.gz
Algorithm Hash digest
SHA256 35ba25536c9773ee824303c82c54acc93f6ff18618784007b369ada629b3c92e
MD5 25fcf0034caa25135f8aea4fe80eb142
BLAKE2b-256 f642ed82f7cd846c1c0a8b28acf6648f2dd8e0a9e16ce818d675073d1c7d02ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_http_checker_pedrolima-1.2.0.tar.gz:

Publisher: publish.yaml on PedroBizachi/python-devops-cicd-project

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simple_http_checker_pedrolima-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_http_checker_pedrolima-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97a2862a0dc0a9d767e593243aedea9fcbc8284d61c508741498be49269667b4
MD5 d2e0eaa5804e4c1e6bc287b9324e4046
BLAKE2b-256 8dab18b1de986dedaffb34da8be348c2b5d78fbd619299a0a1a02b0d04b3503f

See more details on using hashes here.

Provenance

The following attestation bundles were made for simple_http_checker_pedrolima-1.2.0-py3-none-any.whl:

Publisher: publish.yaml on PedroBizachi/python-devops-cicd-project

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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