Delivering Software Securely: Techniques for Building a Resilient and Secure Code Pipeline