This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
SquidDev's profile picture

howl.ci - Build automation for ComputerCraft

Started by SquidDev, 04 November 2016 - 11:19 AM
SquidDev #1
Posted 04 November 2016 - 12:19 PM
howl.ci - Build automation for ComputerCraft

About a year ago someone posted on the Howl issue tracker a suggestion to implement a "continuous integration" service for ComputerCraft. For those who don't know, continuous integration is a away of automating the "building" of your code. Whenever you push a commit your code is compiled, tested and maybe deployed.

So, 389 days later I present to you: howl.ci:



What?
Builds are executed by Travis using a special emulator called the howl.ci runner. This outputs a log file detailing actions taken during the build. The howl.ci interface then scrapes this log file and extracts useful information such as terminal output, build status and log messages and displays it to you. You can then step through the build to see the state at any point.

You can do whatever you want during this build, any code which runs in game will run on howl.ci (unless it uses peripherals, I'm working on that). howl.ci also allows testing against multiple versions of ComputerCraft, with or without CCTweaks, on normal, advanced or pocket computers. This would take a significant period of time normally, thanks to Travis and howl.ci your tests complete within a couple of minutes of your commit.

Let's see an example then!
The Howl build system uses howl.ci to build itself, ensuring that all code is valid. You can view the latest builds

It is also possible to display log files from arbitrary URLs, such as this one.

I wanna use this!
We've created a useful guide on how to get set up with how.ci.

More Images
Spoiler

One last thing
howl.ci is on GitHub. Please post any feature request or bugs there! I'm always on the lookout for improvements!

Many thanks to 1lann for writing Mimic, whose code I have based the terminal renderer on.

Please note that howl.ci does not execute any of your code: that is done by Travis. howl.ci is just an emulator and a fancy web interface to view the result. Travis offer a free service so please don't abuse it.

Whilst howl.ci was suggested in the Howl issue tracker, and shares it's name you don't actually have to use it. Any code will run fine. You don't even have to use it as a continuous integration service: you could just use it to display your program executing: a sort of interactive RecGif.
Edited on 04 November 2016 - 11:27 AM
InternetUnexplorer #2
Posted 05 November 2016 - 12:32 AM
10/10. Fantastic. Will be using this to test and mass deploy waffle vending machine firmware updates.
Edited on 04 November 2016 - 11:33 PM
Admicos #3
Posted 06 November 2016 - 09:57 PM
Well, this is the first time i actually wrote tests and it seems pretty useful. Thank you for making this!
Edited on 06 November 2016 - 09:08 PM
KingofGamesYami #4
Posted 06 November 2016 - 11:26 PM
I've finished my dark style for this, let me know if there's anything that needs changed.
SquidDev #5
Posted 07 November 2016 - 11:33 PM
I've just released another version of howl.ci improving the documentation slightly. Hopefully this clarifies a few questions people had :)/>.

10/10. Fantastic. Will be using this to test and mass deploy waffle vending machine firmware updates.
Can you mass deploy waffles to my house? Great, I hope you find it useful :)/>.

Well, this is the first time i actually wrote tests and it seems pretty useful. Thank you for making this!
Thanks, glad it useful. Tests are really very helpful, if only writing them wasn't such a pain.

I've finished my dark style for this, let me know if there's anything that needs changed.
It is looking good! However, some of the text on the playback toolbar is kinda hard to read.
Edited on 07 November 2016 - 10:50 PM
KingofGamesYami #6
Posted 09 November 2016 - 12:59 AM
Right, I fixed the playback toolbar. It looks much better now.
Gumball #7
Posted 24 December 2016 - 08:35 AM
You should edit the color scheme for the emulator. The color API docs have hexadecimal formats for each individual color, shouldn't be difficult to change at all.
SquidDev #8
Posted 24 December 2016 - 12:01 PM
You should edit the color scheme for the emulator. The color API docs have hexadecimal formats for each individual color, shouldn't be difficult to change at all.
What do you mean? I'm pretty sure the emulator's colours are the same as used by CC.
Bomb Bloke #9
Posted 24 December 2016 - 12:32 PM
And um it wouldn't surprise me if the wiki values aren't 100% accurate. Dan's tweaked the ones CC uses at least a couple of times since I started using the mod.
SquidDev #10
Posted 24 December 2016 - 12:54 PM
And um it wouldn't surprise me if the wiki values aren't 100% accurate. Dan's tweaked the ones CC uses at least a couple of times since I started using the mod.
I just compared them with the mod's colours and they look correct. I seem to remember there was a beta where black backgrounds and foregrounds were the same colour, though cannot remember if that feature was kept or not.
Bomb Bloke #11
Posted 24 December 2016 - 01:11 PM
In current builds they are indeed the same colour.