Skip to main content

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

Use pipx (or pip!):

pipx 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.

Release files for bluish 0.9.16

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bluish 0.9.16
File Size Uploaded
bluish-0.9.16.tar.gz 33.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bluish 0.9.16
File Interpreter ABI Platform
bluish-0.9.16-py3-none-any.whl Python 3 none any Details

Total release size: 66.7 kB

Release files / bluish-0.9.16.tar.gz

Download URL bluish-0.9.16.tar.gz
Size 33.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ecd1bccfd3931e36ed1fd9b1ff5f8220ad988bc2e3bdb8fb40338e2c7c1a119b
BLAKE2b-256 checksum
How to use checksums
525dd3b3df989a246c2e64b9f50ffb5ebe29cd1c42f537f851f882789dc13e46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release files / bluish-0.9.16-py3-none-any.whl

Download URL bluish-0.9.16-py3-none-any.whl
Size 33.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
da44cafeb42072e7eaee3e83a33388775183aa12b46e5669d45b6b48fe281818
BLAKE2b-256 checksum
How to use checksums
16e246db3590a8284f82c83e825295b05f98b2004ebb7439d611ca21ec74ae76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.8

Release history Release notifications | RSS feed

This release

0.9.16 This release

2 release files

0.9.15

2 release files

0.9.14

2 release files

0.9.13

2 release files

0.9.12

2 release files

0.9.11

2 release files

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page