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

Beginning CI/CD: A Practical Introduction using GitHub Actions

echo in GitHub Actions