1. Introduction
  2. Notes for Reviewers
  3. CI/CD Fundamentals
  4. 1. Getting Started with the Workflow
  5. 2. Getting Started with GitHub Actions
  6. 3. Programming a Weather Application
  7. 4. Setting up Your Repository
  8. Advanced CI/CD Topics
  9. 5. Comparison of Versioning Solutions
  10. 6. Static Analysis in GitHub Actions
  11. 7. Security Tools
  12. 8. Security and Reproducibility
  13. 9. Continuous Deployment Pipeline
  14. 10. Testing
  15. 11. Dependency Management
  16. 12. Branching Strategies
  17. 13. Caching and Optimization
  18. 14. File Transforms
  19. Debugging and Troubleshooting
  20. 15. Debugging GitHub Actions Workflows
  21. CI/CD Patterns and Best Practices
  22. 16. Workflow Design Patterns
  23. 17. CI/CD Anti-patterns
  24. 18. Code Reviews
  25. 19. Common Code Review Questions
  26. 20. How to Prioritize Things in Your Repo
  27. Practical Command Examples
  28. 21. Git Commands for CI/CD
  29. 22. Common Linux Commands
  30. 23. Additional Linux Commands
  31. 24. Docker Commands
  32. 25. echo in GitHub Actions
  33. 26. Conditional Statements
  34. 27. mkdir and curl Examples
  35. 28. rm, ls, wget, cat, mv Examples
  36. 29. sed Examples
  37. 30. cp Command Examples
  38. 31. chmod Command Examples
  39. 32. Adding Paths to $PATH
  40. Appendix
  41. 33. Considerations for Businesses
  42. 34. The Open-Core Model
  43. 35. Additional Readings
  44. 36. Asides Index
  45. 37. CI/CD Security and Governance
  46. 38. Observability, Monitoring, Logging, and Reporting
  47. 39. Reproducible Builds and SBOMs
  48. 40. Feature Flags and Toggles
  49. 41. Podcast: Complexity and Overcoming Blockers
  50. 42. Agile Embedded: CD in Reverse
  51. 43. CI/CD Introduction and Overview
  52. 44. Local Development, IDE, and Build Tools
  53. 45. Dependabot and Updating Dependencies
  54. 46. Budgeting and Cost Management: Quick Tips
  55. 47. File Path Globs by Category
  56. 48. Communication, Outputs, and Environments
  57. 49. CI/CD Security and Governance
  58. 50. Application Monitoring
  59. 51. Runner Software and Installing Dependencies
  60. 52. Local Development, IDE, and Build Tools
  61. 53. Managing Artifacts, Registries and Environments
  62. 54. Publishing NPM to GitHub Packages
  63. 55. CI/CD Security and Governance
  64. 56. Communication, Outputs, and Environments
  65. 57. Reporting, Code Coverage and SonarCloud
  66. 58. CI/CD Providers and Self-Hosted Runners
  67. 59. Important Terms and Workflow Steps
  68. 60. Workflow Design and Control Flow
  69. 61. Feature Flags and Monitoring
  70. 62. Security and Docker Workflow Notes
  71. 63. Workflow Design, Getting Started, and .gitignore
  72. 64. Local Dev Environment and Codespaces
  73. 65. Unanswered Questions and References
  74. 66. Common Questions
  75. 67. Common GitHub Actions Questions
  76. 68. Common Docker Questions
  77. 69. Common Deployment Questions
  78. 70. Frequent Logging Data Types
  79. 71. CI/CD Introduction and Overview
  80. 72. Enhancing Workflows: Testing, Analysis, and Artifacts
  81. 73. Dependency Management and Supply Chain Security
  82. 74. Deployment, Release, and Monitoring
  83. 75. Optimizing, Maintaining, and Debugging Workflows
  84. Table of Contents

Beginning CI/CD: A Practical Introduction using GitHub Actions

Conditional Statements