Reducing CI/CD overhead
I found that running CI/CD Github Actions was adding significant overhead to the development workflow of a project that I am managing.
To reduce this overhead, I changed the trigger condition in .ci.yml to only run when a specific label is added to the PR:
name: CI
on:
pull_request:
types: [labeled, unlabeled, synchronize]
pull_request_target:
types: [opened, reopened, edited, synchronize, ready_for_review, labeled, unlabeled]
branches: [ master ]
push:
branches: [ master ]
This means reduces a costly and troublesome barrier to creating a PR and allows also for more iterative development. Thus my instructions to a collaborator are as follows:
- Open a PR as soon as possible, but keep it in Draft mode until you have enough to show for your efforts.
- Change the PR to Ready (i.e. not Draft) when you have finished the main work, even if you haven’t completed writing the tests.
- Don’t worry about the CI/CD checks, those will be triggered manually, just make sure the tests and formatting pass in your local dev environment.
- When the PR is ready for review I will check out your branch and run the CI/CD
Published on 07 Nov 2025
all tags
100daysofcode activerecord ai android annoyances api apt arch array artix atom az3w backend bash blog browser bug callback career ci-cd cli cloud code coding config configuration cp crud cryptography css csv database db demo design development devops django docker email erp feelsgood filter fugitive gif gist git github gmail gnome gnome pomodoro grep hebrew http ide isbn-fetcher iso javascript job search js kanban kindle koans learning linkedin linux logger manjaro map markdown microservices mobi mtp neovim nodejs nvchad packages panda pastbin patch portfolio post postgres pytest python rails reduce refactoring reflections rest routes rspec ruby salesforce script scripting security sed shell sql string_replacement study tasks tdd terminal testing tmux ttd version_control vim vim sort walkthrough webdev workflow xorg zsh