continue-on-error marks the job as failure, which skips downstream needs: jobs. The if: always() condition ensures build jobs run regardless of lint/test outcome.