Learn semantic-release & Conventional Commits from the ground up to production readiness: pre-requisites & environment setup, history & why to use semantic release, core concepts & main architecture, conventional commits & commit message standard, Git Flow branching strategy, semantic release basic setup, GitHub Actions workflow basics, staging vs production release flow, commit analyzer & release rules, linting & build automation, semantic release dry run & verification, branch-based release conditions, GitHub Actions security best practices, protected branches & PR policies, audit changelog & release notes, multi-branch release strategy, custom release plugins & extensions, migrating an existing repo to conventional commits, release monitoring & post-release checks, GitOps and release automation, organization standards & training, scaling release automation in teams, up to production hardening & best practices with 23 episodes in total.
Laying the foundation for release automation: Git skills, CI/CD basics, and familiarity with Node.js as the semantic-release runtime. Then installing Node.js, VS Code with the GitHub extension, and GitHub CLI so the environment is ready to write Conventional Commits from day one.

Examining the problems of manual release: deciding versions, writing changelogs, publishing, and tagging that are prone to error. Then how Conventional Commits turn commit history into machine-analyzable data, and why semantic-release beats ad-hoc semver scripts.

Understanding SemVer rules, how the commit analyzer determines the release type, and the pipeline flow from lint, build, dry run, through to release. Then dissecting the nine plugin pipeline steps along with the roles of semantic-release's core plugins.

Mastering the commit format of type, scope, and subject along with ten commonly used types. Including how to mark a breaking change so that a major release is detected, complete with examples of correct and incorrect commits.

Understanding the Git Flow branching strategy and its adaptation to two branches: staging as the release candidate with an rc suffix, and main as the stable release. Including a branch lifecycle diagram and the order of git commands from feature to release.

Installing semantic-release along with its core plugins, then putting together release.config.cjs with the main and staging rc branches. Including custom commit analyzer rules for mapping commit types to release types and the package.json configuration alternative.

Creating a GitHub Actions workflow with push, pull request, and workflow_dispatch triggers. Then separating the ci job for lint and build from the release job that only runs on main and staging, plus managing secrets such as GITHUB_TOKEN and NPM_TOKEN.

Dissecting the two-track release flow: staging as the home of release candidates ending in rc and main as the stable branch without a suffix. Including a comparison of dry run versus actual release and a workflow that serves both tracks at once.

Taking apart the commit analyzer, the semantic-release brain that turns every commit message into a version decision. Including the default angular preset mapping, customizing release rules and parserOpts, and the rule evaluation order that determines the final result.

Building separate lint and build pipelines as a quality gate before release. Wiring status checks into pull request validation and applying stage gates so that only code that passes lint and build is allowed to be merged into the main branches.
