Usually this would consists of uploading board gerbers to OSH Park and getting payment sorted out. However, this time I was greeted with error: "I can't find a drills file". Mind you, this was expected since I really didn't have a drill file, but unfortunately this wasn't a warning I could skip. So I contacted support.
I really didn't expect any quick answer since I raised ticket on December 31st after 16h PST. Surprisingly I got the solution almost immediately. It wasn't possible to upload design without drills but Dan (yep, Laen doesn't handle support any more) suggested a file with drill locations all falling outside of board. Their filtering process would then remove those as invalid and my drill-less board would be ready for manufacturing.
While this solution was acceptable for one-off job, it got me thinking whether there was something a bit more elegant and less error-prone if I create some bigger board in the future. To solve it properly I had to have a drill file without any drills. To the Excellon specification!
With a bit of testing, I got to the minimum of content that OSH Park parser would still consider a valid drill file. It is essentially just defining one drill tool, selecting it for work and then finishing script without ever drilling a hole:
Empty drill file is available for download.