Interactive, web based Gradle task runner.
#gradle #dropwizard #websockets #d3js #bacon.js
With my in-laws entertaining the kids I finally have a bit of time to play with pet projects. This is a project that I've been thinking about for a while. My original idea was to create a super simple ci-server solely executing specific tasks using a Gradle wrapper.
So far it's able to fork a Gradle process with a custom init script. This init script will in turn open a server socket, wait for the backend to connect and then use the connection to stream various events to the backend which in turn is able to process and stream these events to the web interface over web sockets.
Check out the source code then run the following command that'll download Gradle, build the project and start it up (gotta love Gradle wrapper!).
git clone git@github.com:kimble/gradle-web-runner.git
cd gradle-web-runner
./gradlew run
Then navigate to http://localhost:8080/ in your web browser.
Btw, I use Chrome during development so no guaranties regarding other browsers.
As this is just a summer pet projects I'll probably never get around to do half of these things.
- Abort running build
- Re-run
- Visualize task dependencies
- Visualize how tasks run in parallel
- Filter / search test reports
- Move test reports into a dedicated page
- Replace js dependencies with webjars
- Fetch estimates before forking the build (so the first tasks can get a progress bar)
- Windows support (use ./gradlew.bat instead of ./gradlew and so on..)