At Build 2016, Microsoft announced that the Windows Store app submission API was coming out in preview. Being a continuous deployment freak, this was music to my ears. Even if you’re not into CI/CD, not having to deal with clicking a gazillion times on a website (that can be slow and unresponsive), should be something to look forward too. Previously I tackled this using fastlanium, a Selenium powered tool I made to not deal with that anymore. While fastlanium served me very well, maintaining it quickly rendered it as annoying as using the website itself.
Out with the old, in with the new. I applied for the preview, received information and got things going. Initially I wanted to create a PowerShell tool to help me upload builds but I got stuck trying to upload assets (app packages) to Azure’s blob storage. Luckily, the people at Microsoft were really helpful in providing me with the information I needed and I decided to move to a console app (figures).
Being used to good CLI tools, I had to adhere to high standards myself. Luckily (and contrary to popular belief), C# has great libraries to help you build those. I am proud to introduce
ober, which is the Dutch word for ‘waiter’. Given that the tool will serve your packages to the Store, I figured I should give it a name that suits the purpose.
Right now, the only working command is
deploy. I tentatively added
show, the idea is that list will show you all the submissions for both releases and flights, show will list the details of a submission. This will be handy to do some troubleshooting when needed. Currently the API does not allow to commit changes and review them, instead, it immediately submits the app for review. This can make things a bit scary for some people, I spoke to the team and they do plan to split that step in two, so stay tuned.
I build the project using AppVeyor which is setup to automatically deploy to GitGub Releases and chocolatey when pushing to the master branch. The chocolatey package is currently under review, I’ll add the badge to the README once it’s approved.
[embedGitHubReadme owner=”JanJoris” repo=”ober”]