Harden CI/CD workflows by (1) pinning external actions/tool versions, (2) minimizing opaque third-party action wrappers when the underlying steps are small and deterministic, and (3) scoping dependency installation to the right workflow (local dev vs CI).
Apply these rules:
make dev) when they are broadly needed. If a dependency is specialized/soon-to-change, keep it in CI where it’s required.Example pattern:
- name: Lock Go version
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Install CI-only test dependency
run: |
make dev
pip install kong-pdk