# Buildkite Dynamic Pipelines Documentation > Buildkite documentation for dynamic pipelines, including runtime step generation, the Buildkite SDK, if_changed conditions, tutorials, and example pipelines. ## Pipelines ### Tutorials - [Using Bazel on Buildkite](https://buildkite.com/docs/pipelines/tutorials/bazel.md): Setting up Bazel builds on Buildkite with installation, workspace configuration, and example pipelines. - [Dynamic pipelines and annotations using Bazel](https://buildkite.com/docs/pipelines/tutorials/dynamic-pipelines-and-annotations-using-bazel.md): Tutorial for creating dynamic pipelines and build annotations using Bazel with a monorepo example project. - [Migrating to YAML steps](https://buildkite.com/docs/pipelines/tutorials/pipeline-upgrade.md): Migrating from the web-based step editor to the YAML Steps editor, including compatibility and bulk migration. - [Using GitHub merge queues](https://buildkite.com/docs/pipelines/tutorials/github-merge-queue.md): Configuring Buildkite to work with GitHub merge queues, including build behavior, conditionals, and environment variables. - [Triggering Pipelines Using GitHub Actions](https://buildkite.com/docs/pipelines/tutorials/github-actions.md): Using the Trigger Buildkite Pipeline GitHub Action to create Buildkite builds from GitHub Actions workflows. - [Attributing AWS agent costs](https://buildkite.com/docs/pipelines/tutorials/attributing-aws-agent-costs.md) ### Agent #### Command-line reference - [pipeline](https://buildkite.com/docs/agent/cli/reference/pipeline.md): CLI reference for buildkite-agent pipeline upload: dynamically adding or replacing build steps from YAML/JSON. ### Configure pipelines - [Defining steps](https://buildkite.com/docs/pipelines/configure/defining-steps.md): How to define pipeline steps in YAML, set up webhooks, configure step defaults, and manage pipeline.yml files. #### Dynamic pipelines - [Overview](https://buildkite.com/docs/pipelines/configure/dynamic-pipelines.md): Generating pipeline steps at runtime using scripts that output YAML/JSON and pipe to buildkite-agent pipeline upload. - [Using if_changed](https://buildkite.com/docs/pipelines/configure/dynamic-pipelines/if-changed.md): Using the if_changed step attribute to skip steps based on Git diff file changes, with glob patterns, monorepo workflows, and comparison strategies. - [Buildkite SDK](https://buildkite.com/docs/pipelines/configure/dynamic-pipelines/sdk.md): Multi-language SDK (JS, Python, Go, Ruby, C#) for programmatically generating dynamic pipeline steps. - [Writing build scripts](https://buildkite.com/docs/pipelines/configure/writing-build-scripts.md): Guidelines for writing shell scripts for builds, including Bash options, debugging, and exit status handling. - [Using conditionals](https://buildkite.com/docs/pipelines/configure/conditionals.md): Using if/unless expressions with C-like syntax to conditionally run steps or filter pipeline builds from webhooks. - [Environment variables](https://buildkite.com/docs/pipelines/configure/environment-variables.md): Complete reference of Buildkite environment variables available in build steps, hooks, and plugins. - [Glob pattern syntax](https://buildkite.com/docs/pipelines/configure/glob-pattern-syntax.md): Syntax reference for glob patterns used in artifact uploads and if_changed step conditions. - [Example pipelines](https://buildkite.com/docs/pipelines/configure/example-pipelines.md): Gallery of example pipelines for various languages, frameworks, build systems, and techniques. ## See also - [Buildkite Pipeline Configuration Documentation](https://buildkite.com/docs/llms-pipeline-configurations.txt): Buildkite documentation for configuring pipelines, including step types, dynamic pipelines, environment variables, workflows, artifacts, and build settings. - [Buildkite Monorepo Documentation](https://buildkite.com/docs/llms-monorepos.txt): Buildkite documentation for building and managing monorepo CI/CD pipelines, including change detection, dynamic pipelines, and best practices.