m-reda / Pipeline
Programming Languages
Projects that are alternatives of or similar to Pipeline
Features
- Node-based tasks
- Ready to use units
- Easy to defined new units
- Remote build trigger
- Scheduled builds
- Real-time build logs
- Elegant user interface
- Responsive UI
Video
Operating system
Linux
and macOS
are supported, for windows you can use docker.
Installation (Pre-release)
Note: this release is non-production ready.
Docker
$ docker run -d --name pipeline -p 8080:80 mreda/pipeline
wget
$ wget https://github.com/m-reda/pipeline/releases/download/0.1/pipeline-linux.zip
$ unzip pipeline.zip && cd pipeline
$ PORT=8080 ./pipeline
Download
- v0.1-alpha
Built-in Units
- Filesystem
- Copy
- Move
- Remove
- Make file
- Make directory
- Git
- Init
- Add
- Commit
- Push
- Clone
- Checkout
- Merge
- Add remote
- Pull
- FTP
- List contents
- Make directory
- Remove directory
- Upload file
- Remove file
- Rename
- General
- Run command
- Send email
- Sleep x seconds
- Request URL
- SSH Command
- Zip / unzip
Add New Unit
-
Create new directory under data/units
./data/units/[unit-id]
-
Create unit definition file
data/units/[unit-id]/unit.js
{
"ID": "fs_copy",
"Name": "FS Copy",
"Group": "filesystem",
"Version ": "0.0.1",
"Creator": "Mahmoud Reda",
"Command": "bin:/builtin fs copy {source} {destination}",
"Inputs": {
"source": "Source",
"destination": "Destination"
},
"Outputs": {
"destination": "Destination"
},
"Setting": {
"flag": {"Name": "Flag Name", "Type": "text", "Value": ""}
}
}
- The inputs keys must match the names in the command:
{
"Command": "bin:/filesystem delete {file_path}",
"Inputs": {
"file_path": "File Path"
}
}
-
Command can be global or prefixed with
unit:
orbin:
-
bin:
equals ./data/units/bin -
unit:
equals ./data/units/[unit-id]
-
-
The setting values will passed to the unit command as flags.
-
Unit directory can contain custom scripts.
-
Each output should be printed in a separate line staring with output's key:
output1:sometext
output2:/path/to/file
output3:{"key":"value"}
TODO
- [ ] Authentication
- [ ] Concurrent Builds
- [ ] Using Database
- [ ] Upload unit
Custom Build
You can customize the build setting from Makefile under release
command, and rebuild using:
$ make release
the new build will be under bin
directory, or you can build new docker image using:
$ make docker
Community
Contributions, questions, and comments are welcomed and encouraged.
The Node Editor
I'm using my library Linker.
Dependencies
mux / websocket / cron / cli / ftp / go.uuid / testify
License
This code is distributed under the MIT license found in the LICENSE file.