(λ (x) (create x) '(knowledge))

Mobile Workflow

Managing development on the go · May 1, 2020

In the midst of a move, and faced with a 23 hour drive across nearly the entire Eastern sea board, I get to put my mobile systems to the test! I maintain a home lab, to run build systems for most of my projects, but those systems along with every other bit of my life has been packed away into cardboard boxes. Besides that, how truly impractical would it be to lug heavy desktops and servers in a small car alongside my family?

Obviously that leaves me a little light on resources, specifically an old Nokia N900 and a GPD Pocket. What could be more mobile than computers I can fit in my pocket? Thankfully none of this is very limiting. I have CI/CD setup on my personal APKBUILD repo on gitlab which is connected to a gitlab runner on DigitalOcean, so taking my Alpine work on the road is no big issue. I have all of my repos cloned to my Nokia, so a package bump is easily handled. I even pushed a merge request for a new aport for toAPK from my Nokia a couple of days ago. Honestly if a system runs Linux, and I can get a Emacs, a terminal, and SSH I can do just about anything. Even create this blog post!

The only problem I've found thus far is a limitation with how I've configured my gitlab CI. When looking for build logs on the runner server itself the best I'm able to come up with is a journalctl of the jobs that have been registered with the system.


journalctl -u gitlab-runner

May 01 14:13:45 Gitlab-CI-Runner gitlab-runner[873]: Checking for jobs... received                       job=534853961 repo_url=https://gitlab.com/Durrendal/WS-Alpine-Packages.git runner=LheYdtfQ
May 01 14:13:45 Gitlab-CI-Runner gitlab-runner[873]: Checking for jobs... received                       job=534853961 repo_url=https://gitlab.com/Durrendal/WS-Alpine-Packages.git runner=LheYdtfQ
May 01 14:14:13 Gitlab-CI-Runner gitlab-runner[873]: Job succeeded                                       duration=28.301175392s job=534853961 project=13270553 runner=LheYdtfQ
May 01 14:14:13 Gitlab-CI-Runner gitlab-runner[873]: Job succeeded                                       duration=28.301175392s job=534853961 project=13270553 runner=LheYdtfQ
May 01 14:14:15 Gitlab-CI-Runner gitlab-runner[873]: Checking for jobs... received                       job=534853962 repo_url=https://gitlab.com/Durrendal/WS-Alpine-Packages.git runner=LheYdtfQ
May 01 14:14:15 Gitlab-CI-Runner gitlab-runner[873]: Checking for jobs... received                       job=534853962 repo_url=https://gitlab.com/Durrendal/WS-Alpine-Packages.git runner=LheYdtfQ
May 01 14:14:46 Gitlab-CI-Runner gitlab-runner[873]: Job succeeded                                       duration=31.570838683s job=534853962 project=13270553 runner=LheYdtfQ
May 01 14:14:46 Gitlab-CI-Runner gitlab-runner[873]: Job succeeded                                       duration=31.570838683s job=534853962 project=13270553 runner=LheYdtfQ
May 01 14:14:47 Gitlab-CI-Runner gitlab-runner[873]: Checking for jobs... received                       job=534853963 repo_url=https://gitlab.com/Durrendal/WS-Alpine-Packages.git runner=LheYdtfQ
May 01 14:14:47 Gitlab-CI-Runner gitlab-runner[873]: Checking for jobs... received                       job=534853963 repo_url=https://gitlab.com/Durrendal/WS-Alpine-Packages.git runner=LheYdtfQ
 

The resulting log snippet is at least enough to tell wether or not a build suceeded or failed, but it doesn't actually explain what happened or why. Impractical, but at the same time if I'm building packages on the go, especially on an old Nokia, I really only need to see what's going on inside of the runner itself. It would be amazing to get the actual abuild log out of the runner as a plain text file, that actually is provided through Gitlab itself, I would really just need to curl the file down for viewing. There's likely a way to grab the job info from the runner server and then craft a curl call with it. Perhaps that's the project I'll start while we're driving up to Maine.

Aside from the CI/CD having the Nokia means I have a full keyboard and can literally write whatever I need with it. Thanks to the PostmarketOS project I have the tiniest possible Linux computer, and I absolutely adore it! I just can't get it to build docker containers, it just falters whenever I try. Fortunately the GPD Pocket has a solid x86_64 processor in it, and blows the Nokia out of the water, while still only being a 7 inch laptop. All in all I would say my mobile setup is just as comfy as sitting at a desk, just a lot smaller. Being able to build my own solutions to my self inflicted problems is the key to that comfort.

For those curious about what all of that must look like, here's a sneak peak into the tiny little Nokia itself.

Nokia Scrot 1 Nokia Scrot 2 Nokia Scrot 3

You can even see the silly typos I make as I hash out my paragraphs on the tiny Nokia keyboard. Thank goodness for aspell!

Bio

(defparameter *Will_Sinatra* '((Age . 31) (Occupation . DevOps Engineer) (FOSS-Dev . true) (Locale . Maine) (Languages . ("Lisp" "Fennel" "Lua" "Go" "Nim")) (Certs . ("LFCS"))))

"Very little indeed is needed to live a happy life." - Aurelius