Setting Up Python CI/CD with GitHub Actions and Nox

In my ongoing journey to improve my Python development workflow, I’ve discovered the power of combining Nox with GitHub Actions. After setting up Nox to automate my local development tasks, I realized I was still manually running these commands every time I wanted to push code. That’s when I thought: “Why not automate this entire process in the cloud?” This week, I’ll show you exactly how to build upon the Nox setup we covered previously and create a complete CI/CD pipeline using GitHub Actions. By the end of this tutorial, your Python projects will automatically run formatting, linting, and testing on every commit - no more manual work! ...

August 30, 2025 · Caleb Aguirre-Leon

Nox Tutorial

In my pursuit to improve as a software engineer, I discovered tools like Black and Ruff that helped me write pythonic code following PEP 8 best practices. While linter and formatter commands are easy to remember, testing commands can become painfully cumbersome. For example, in one of my current projects, testing requires this command: coverage run -m unittest discover -s "tests" -p "*_test.py" Followed by: coverage report --fail-under=100 #generates coverage report coverage html #creates HTML for coverage report Just typing those commands makes my fingers hurt! And that’s before dealing with virtual environment setup and dependencies. This is where Nox comes in. ...

August 22, 2025 · Caleb Aguirre-Leon

How to Turn a Shell Script into an Apple App

Recently I downloaded Balatro on my Macbook Pro and I wanted to play mods on it, but to play mods on it I had to run a shell script. I didn’t want to navigate to the directory on my terminal and run the script every time I wanted to play, so I decided to turn the command that I had to run into an Apple app. This is how I did it. ...

August 12, 2025 · Caleb Aguirre-Leon