GitHub Actions Matrix Builds, Caching and Artifacts (with Examples)
Speed up GitHub Actions: matrix builds with include and exclude, dependency caching with setup actions and actions/cache, and uploading and sharing artifacts.
Online Learning Platform
Free tutorials, solved practice problems and interview prep for QA and automation engineers: Python, Playwright, Selenium, SQL, Git and more.
Speed up GitHub Actions: matrix builds with include and exclude, dependency caching with setup actions and actions/cache, and uploading and sharing artifacts.
Configure GitHub Actions safely: env, vars and secrets, GITHUB_TOKEN permissions, environments with reviewers and branch rules, and testing many environments.
Learn GitHub Actions workflow syntax: events, jobs, steps, runners, expressions and contexts, conditions, outputs, concurrency and permissions, with examples.
Secure GitHub repositories: Actions secrets, secret scanning and push protection, Dependabot alerts and updates, CodeQL code scanning and a security checklist.
Set up CODEOWNERS for automatic reviewers, issue templates and YAML issue forms for better bug reports, a pull request template and organisation defaults.
Protect branches on GitHub: classic protection rules vs rulesets, required pull requests, approvals, status checks, force-push and deletion blocks, and tags.
Create and use GitHub personal access tokens: fine-grained vs classic, permissions, using a PAT with Git and the API, tokens in CI, management and fixes.
Understand Git internals: the .git folder, blob, tree, commit and tag objects, hashes, refs and HEAD, how commands map to internals, and packfiles.
Learn Git submodules: add a submodule, .gitmodules, clone with --recurse-submodules, update to newer commits, change code inside, remove, CI and alternatives.
Automate quality with Git hooks: hook types, write a pre-commit hook, share hooks with core.hooksPath and Husky, lint-staged, commitlint and pre-commit.
Use git bisect to find the commit that introduced a bug: binary search, manual good and bad marking, automatic bisect run with tests, skip and best practices.
Use git reflog to recover lost work: read the reflog, undo reset --hard, restore deleted branches, undo bad rebases and amends, and recover dropped stashes.
Take free timed mock tests with answers and explanations.