GitHub Actions for Lazy Developers (Like Me): How I Stopped Writing YAML and Let ChatGPT Do the Work

GitHub Actions for Lazy Developers (Like Me): How I Stopped Writing YAML and Let ChatGPT Do the Work
Photo by Praveen Thirumurugan / Unsplash

Because automation should save time, not cost you your weekend.

“So What Can GitHub Actions Actually Do For Me?”

GitHub Actions is a free (within limits) automation engine built into GitHub. It can run whenever you:

  • Push or pull code
  • Open a PR
  • Create a release
  • Star your own repo by accident at 2 AM

What can it do?

  • Test your code
  • Lint it with tools like ruff
  • Type-check with pyright or ty
  • Build Docker images
  • Deploy your app or static site
  • Sync to S3
  • Tweet, email, or message you if things break
  • Run on Linux, Mac, or Windows
  • Run across Python/Ruby/Node/Go/Java versions
  • Even respond to comments (yes, like a bot)

What it can’t do:

  • Write bug-free code
  • Give you free unlimited compute (limits below)
  • Replace real deployment tools for complex systems (but it gets close)
  • Replace hugging your rubber duck

“Is It Actually Free?”

Yes — within reason. For public repos:

  • Free unlimited minutes.
  • Up to 20 concurrent jobs.
  • Storage limits on artifacts/logs (500 MB by default, more available).

For private repos:

Screenshot by me

Want to test 5 Python versions on 3 OSs with every push? You’ll hit limits fast. Be smart.

The Real Magic?

Letting ChatGPT Write Your GitHub Actions

You don’t need to memorize YAML. You do need to learn how to prompt well.

Here’s a killer template:

You are a DevOps assistant. I want a GitHub Actions workflow for a Python project.

Requirements:
- Runs on push and PR
- Tests with pytest
- Uses Python 3.11
- Installs with `uv pip install -r requirements.txt`
- Uses `ruff` for linting
- Uses `ty` for type-checking
- Caches dependencies
- Runs on Linux and Mac
- Fails fast on errors

Output only valid YAML.

Then just paste it into .github/workflows/main.yml.

Boom. Instant workflow.

What I Use in Every Project

Here’s a no-nonsense GitHub Actions template you’ll actually want to reuse:

name: CI

on: [push, pull_request]

jobs:
  test:

    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
        python-version: [3.10, 3.11]

    runs-on: ${{ matrix.os }}

    steps:

      - uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}

      - name: Install uv
        run: |
          curl -LsSf https://astral.sh/uv/install.sh | sh

      - name: Install deps with uv
        run: |
          uv pip install -r requirements.txt

      - name: Run ruff
        run: |
          uv pip install ruff
          ruff check .

      - name: Run ty
        run: |
          uv pip install ty
          ty check .

      - name: Run tests
        run: |
          uv pip install pytest
          pytest

And yes, this caches automatically because uv uses system-level pip cache.

If you want explicit caching:

- uses: actions/cache@v4
  with:
    path: ~/.cache/uv
    key: ${{ runner.os }}-uv-${{ hashFiles('**/requirements.txt') }}

Pro-Level Tricks You’ll Thank Me For

1. Fail Fast

Let broken steps stop the pipeline early.

continue-on-error: false

2. Matrix Builds

Test all combinations once. But beware — they multiply fast.

3. Don’t Lint & Type-Check Every Time

Split your jobs:

jobs:
  lint:
    ...
  typecheck:
    ...
  test:
    ...

Now if ruff fails, you don’t waste time running tests.

4. Cache Smart

Use actions/cache@v4 and match pip or uv cache dirs. Save minutes per run.

5. Secrets Are… Secret

Use GitHub repo secrets to store API keys, passwords, or Docker tokens.

Access with:

${{ secrets.MY_SECRET }}

What To Automate Next

  • Auto-tag on merge to main
  • Create releases on tag push
  • Auto-update changelog
  • Auto-deploy static sites (S3, Vercel, Cloudflare)
  • Deploy Python apps to Heroku, Fly.io, Railway, etc.
  • Notify you on Telegram when tests fail
  • Post coverage to Codecov or SonarCloud

Yes, you can do all that with GitHub Actions — and ChatGPT can write 95% of the boilerplate for you.

Summary (AKA the Lazy Dev Manifesto)

  • You don’t need to be a CI/CD expert to get 80% of the benefits.
  • Use GitHub Actions + ChatGPT = DevOps cheat code.
  • Test. Lint. Typecheck. Cache. Deploy. Sleep better.
  • The time you spend setting it up? Paid back in hours saved on broken builds, missing tests, and forgotten deploys.