A CLI tool for managing and triggering workflows across multiple CI/CD platforms (GitHub Actions, Jenkins, GitLab CI).
- Multi-Platform Support: GitHub Actions, Jenkins, GitLab CI
- Secure Configuration: Environment variables and OS keyring integration
- Profile Management: Separate configs for dev, staging, production
- Real-Time Log Streaming: Follow workflow execution with colored output
- Config Validation: Catch errors before running workflows
- Simple CLI: Easy-to-use commands with helpful error messages
# Initialize configuration
uniflow init
# List available workflows
uniflow workflows
# Trigger a workflow
uniflow trigger deploy.yml --input environment=prod
# Stream logs in real-time
uniflow logs deploy.yml --follow
# Check workflow status
uniflow status deploy.yml# Clone the repository
git clone https://github.com/ignorant05/uniflow.git
cd uniflow
# Build and install
make build
sudo mv uniflow /usr/local/bin/
# Verify installation
uniflow --versioncurl -fsSL https://raw.githubusercontent.com/ignorant05/uniflow/main/install.sh | sh#NOTE: Please verify the install.sh script before proceeding with this installation method.
- Go 1.24.4 or higher (or docker if you prefer)
- Git
- GitHub personal access token (for GitHub Actions)
- GitLab personal access token
- Jenkins API token
uniflow initThis creates ~/.uniflow/config.yaml with default settings.
## For github
export GITHUB_TOKEN="ghp_your_token_here"
## For jenkins
export JENKINS_URL="http://your-jenkins-instance:8080"
export JENKINS_USERNAME="your-username"
export JENKINS_TOKEN="your-api-token-here"
## For gitlab
export GITLAB_TOKEN="your-api-token-here"Or add to your shell profile (~/.bashrc, ~/.zshrc):
echo 'export GITHUB_TOKEN="ghp_your_token_here"' >> ~/.bashrc (or `~/.zshrc`)
source ~/.bashrc (or `~/.zshrc`)uniflow config set profiles.default.github.default_repo "ignorant05/Uniflow"# Listing all configuration for a profile (default)
uniflow config list
# This is needed to validate config
uniflow config validateuniflow trigger deploy.yml --input environment=dev- Installation Guide - Detailed setup instructions
- Configuration Guide - Complete config reference
- Commands Reference - All commands with examples
- GitHub Actions Guide - GitHub-specific setup
- Contributing Guide - How to contribute
# Trigger deployment
uniflow trigger deploy.yml --input environment=production
# Follow logs in real-time
uniflow logs deploy.yml --follow # Show status of all workflows
uniflow status
# Show detailed status for specific workflow
uniflow status deploy.yml --limit 10 --verbose# Find failed run
uniflow status deploy.yml
# View logs of specific run
uniflow logs --run-id 123456 --tail 100# Deploy to staging
uniflow trigger deploy.yml --profile staging --input env=staging
# Deploy to production
uniflow trigger deploy.yml --profile prod --input env=productionBasic configuration file (~/.uniflow/config.yaml):
default_platform: github
version: "1.0"
profiles:
default:
github:
token: ${GITHUB_TOKEN}
default_repo: owner/repo
base_url: https://api.github.com
jenkins:
url: https://jenkins.company.com
username: admin
token: ${JENKINS_TOKEN}See Configuration Guide for complete reference.
| Command | Description | Example |
|---|---|---|
init |
Initialize configuration | uniflow init |
config |
Manage configuration | uniflow config list |
workflows |
List available workflows | uniflow workflows |
trigger |
Trigger a workflow | uniflow trigger deploy.yml |
status |
Check workflow status | uniflow status deploy.yml |
logs |
View workflow logs | uniflow logs deploy.yml --follow |
See Commands Reference for detailed commands documentation.
uniflow logs deploy.yml --follow - Color-coded output (errors in red, success in green)
- Timestamps for each line
- Live updates every 3 seconds
- Graceful Ctrl+C handling
# Development environment
uniflow trigger deploy.yml --profile dev
# Production environment
uniflow trigger deploy.yml --profile produniflow status deploy.ymlShows:
- Run number and status
- Success/failure conclusion
- Triggered time
- Direct link to run
We welcome contributions! Please see our Contributing Guide for details.
# Fork and clone
git clone https://github.com/ignorant05/uniflow.git
cd uniflow
# Install dependencies
make install
# Run tests (don't forget to export your access tokens)
make test
# Build
make buildError: "config file not found"
# Solution: Initialize first
uniflow initError: "GitHub token is required"
# Solution: Set environment variable
export GITHUB_TOKEN="ghp_your_token"Error: "workflow not found"
# Solution: Check available workflows
uniflow workflowsSee Installation Guide for more troubleshooting.
Current Version: 0.2.0
Supported Platforms:
- ✅ GitHub Actions (Full support)
- ✅ Jenkins (Full support)
- ✅ GitLab CI (Full support)
This project is licensed under the MIT License.
- Built with Cobra for CLI
- Configuration powered by Viper
- GitHub API via go-github
- Jenkins API via gojenkins
- Gitlab API via client-go
- Colored output using fatih/color
- GitHub Issues: Report bugs
- Discussions: Ask questions
- Email: oussamabaccara05@gmail.com
- Discord: pebble
If you find this project useful, please consider giving it a star!
As for contributions, see the contribution guidelines
Made by ignorant05