Please spend 20 minutes automating/systematizing some action that you perform repetitively.
Here are a few ideas:
- Create a
bin/deploy script to handle any tasks that you always perform before/after deploys. (One post-deploy task I like to include: open production in my browser to make sure I didn’t just hose it somehow.)
- Create an alias for shell commands that you type frequently (git commands are good candidates). Here are my zsh aliases for more inspiration.
- You know that thing you do all the time that makes you think “there has to be a better way”? Dig into that and see if you’re right.
- Find a way to save yourself some keystrokes.
In general: find something you do at least a few times a week and see if you can make it more pleasant. Think of it as sanding down the rough edges in your development environment.
I think you’ll find this one quite satisfying. When I automate an annoying task, I get a little burst of dopamine each time I use my new, improved method to accomplish it. One-time effort; continuous payoff.
Great challenge, but was a complete loss for me today.
There’s one thing I want to poke at since months: Our deployment process for a specific customer. Our only connection is via TeamViewer and whenever we deploy somehting I have to transfer (the correct) migration files there and the run a deployment script.
I tried to find a way to automate that file-transfer, but it was not possible. You can start TeamViewer by command line but don’t do anything afterwards. You can also try to open a VPN, but that requires configuration of the company firewall I guess - didn’t work at least.
A new idea I have now is to have a script which packs all the migration files needed for a specific release into a ZIP-file so I have only to transfer one file. The deployment-script on customer site will then extract it.
Maybe that release-deployment-script could also create some kind of confluence page-entry with documentation about the release. Maybe that can also fit into a VSTS automation-chain…
So on the pro side: I at least developed some ideas where to go from here. That’s something.
I had to give up. I may have tried to automate the wrong task. It’s possible, but requires a lot more work than 20 minutes.
For me I looked at automating the process of applying our teams agreed upon code formatter (black ) into our CI pipeline, as currently this process is manual (most everyone on the team has set up their editors to run the formatter, but the process of ensuring it’s applied to the entire codebase on any change is still manual).
Got most of the way there, modified our Jenkins job to run the formatter on a build, and if any change results from that formatting, then it commits & tries to push. Ran into a blocker though with our build server not having permissions to push changes to a repo (just clone permissions). Still worthwhile practice of some of the tooling, and it’s a good starting point for something I’ll be able to follow up on later in the future).
Today I set up LetsEncrypt to automatically renew my SSL certificate since I’ve been manually running Certbot renew every three months and it continues to be just not quite annoying enough to automate. But now, it is automated! Party!