Skip to main content

A CI/CD tool

Project description

justforfunnoreally.dev badge

Bluish

Bluish automates software development and deployment tasks, similar to GitHub Actions, but for local execution or within Docker. It allows you to define, organize, and execute workflows in your own environment without relying on external services.

Features

  • Command-Line Interface: Bluish offers a make-like experience via the blu command for easy task execution (e.g., blu build).
  • Local and Remote Automation: Execute tasks locally, without needing cloud services, or remotely via SSH.
  • Docker Integration: Run workflows in Docker containers for a controlled environment.
  • Simple Configuration: Define workflows in YAML files, following a familiar structure for defining steps.
  • CI/CD Integration: Integrate with GitHub Actions, GitLab CI/CD, and other CI/CD tools for unified local and remote workflows.

Installation

pip install bluish

Usage

Refer to the project wiki for more detailed documentation. Please note that the documentation is still in progress and may be incomplete or not fully reliable.

Define workflows in a YAML file (bluish.yml). Each workflow contains steps executed in sequence. Example:

name: My Local Workflow

steps:
  - name: Clone repository
    uses: git/checkout
    with:
      repository: https://github.com/myuser/myproject.git

  - name: Build Docker image
    run: docker build -t myproject .

  - name: Run tests
    run: docker run --rm myproject pytest

  - name: Cleanup
    run: docker rmi myproject

To run a workflow:

blu <workflow>

The command looks for bluish.yml in the current or .bluish/ directory.

Examples

  • Local CI: Build and test your project without a cloud CI platform.
  • Reproducible Environments: Run code in Docker containers for consistency.
  • Task Automation: Automate repetitive development tasks.

Comparison with GitHub Actions

Feature GitHub Actions Bluish
Execution Environment Cloud Local / Remote / Docker Containers
Privacy Data hosted on GitHub servers No data exposure, or exposure that is tightly controlled
Flexibility Tied to GitHub's CI/CD model Agnostic, adaptable to different CI/CD systems
Internet Requirement Yes No

Bluish is ideal for:

  • Privacy: No data exposed to third-party platforms.
  • Control: Define and modify environments without external limitations.
  • Offline Development: Use workflows without internet.
  • Unified Workflows: Consistent local and CI/CD workflows.

Comparison with nektos/act

nektos/act runs GitHub Actions locally but is tied to GitHub's syntax. Bluish offers more flexibility and is not restricted by GitHub-specific rules, making it more versatile across different CI/CD systems.

Contributing

Contributions are welcome! Open an issue or send a pull request. See the contribution guidelines for more details.

License

Licensed under the MIT License. See the LICENSE file for details.

Contact

For questions or suggestions, open an issue in the repository or contact me on GitHub: luismedel.

Project details


Download files

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

Source Distribution

bluish-0.8.3.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

bluish-0.8.3-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file bluish-0.8.3.tar.gz.

File metadata

  • Download URL: bluish-0.8.3.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for bluish-0.8.3.tar.gz
Algorithm Hash digest
SHA256 92738ddf1ed5f0b7bc9269b3a1a983e5f62f92ae10a6f1f0db7c3cd7f9b74952
MD5 07a7bbf8d20eac4a6d5b66708c6d8465
BLAKE2b-256 64ea1aadbb8c414c3b5698ff93864b24e9b5fd3666ca01b934c2e5712b2fe5f2

See more details on using hashes here.

File details

Details for the file bluish-0.8.3-py3-none-any.whl.

File metadata

  • Download URL: bluish-0.8.3-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for bluish-0.8.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b08a6546c43ac1595940d64e485cad97781e059c26c8a4864a4d9963025940e1
MD5 c23bb27f3ca9500ab8a5a97f01e23f8f
BLAKE2b-256 a3d14145faf3df68af708671e0cfd4bfc720ae7c893ceab2dea2fdaad6b263da

See more details on using hashes here.

Supported by

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