A CI/CD tool
Project description
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 theblucommand 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.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bluish-0.9.16.tar.gz.
File metadata
- Download URL: bluish-0.9.16.tar.gz
- Upload date:
- Size: 33.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecd1bccfd3931e36ed1fd9b1ff5f8220ad988bc2e3bdb8fb40338e2c7c1a119b
|
|
| MD5 |
0ada2abb408cd2198131c734b9683abb
|
|
| BLAKE2b-256 |
525dd3b3df989a246c2e64b9f50ffb5ebe29cd1c42f537f851f882789dc13e46
|
File details
Details for the file bluish-0.9.16-py3-none-any.whl.
File metadata
- Download URL: bluish-0.9.16-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da44cafeb42072e7eaee3e83a33388775183aa12b46e5669d45b6b48fe281818
|
|
| MD5 |
835f8f3265d4609654e574790ae20997
|
|
| BLAKE2b-256 |
16e246db3590a8284f82c83e825295b05f98b2004ebb7439d611ca21ec74ae76
|