# Buildkite Pipeline Configuration Documentation > Buildkite documentation for configuring pipelines, including step types, dynamic pipelines, environment variables, workflows, artifacts, and build settings. ## Pipelines ### Configure pipelines - [Overview](https://buildkite.com/docs/pipelines/configure.md): Overview of pipeline configuration concepts: what pipelines are, step types, and links to key configuration topics. - [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. #### Step types - [Overview](https://buildkite.com/docs/pipelines/configure/step-types.md): Index of available step types: command, wait, block, input, trigger, and group steps. - [Command step](https://buildkite.com/docs/pipelines/configure/step-types/command-step.md): Reference for command steps: running shell commands, all attributes, plugins, matrix, soft_fail, and agent targeting. - [Wait step](https://buildkite.com/docs/pipelines/configure/step-types/wait-step.md): Reference for wait steps that pause builds until all previous steps complete, with continue_on_failure option. - [Block step](https://buildkite.com/docs/pipelines/configure/step-types/block-step.md): Reference for block steps that pause builds for manual approval, with optional text and select input fields. - [Input step](https://buildkite.com/docs/pipelines/configure/step-types/input-step.md): Reference for input steps that collect user information using text and select fields without creating implicit dependencies. - [Trigger step](https://buildkite.com/docs/pipelines/configure/step-types/trigger-step.md): Reference for trigger steps that create builds on other pipelines, with permissions, async mode, and attribute details. - [Group step](https://buildkite.com/docs/pipelines/configure/step-types/group-step.md): Reference for group steps that display sub-steps as a single logical group on the build page. #### 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. - [Annotations](https://buildkite.com/docs/pipelines/configure/annotations.md) - [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. - [Depends on](https://buildkite.com/docs/pipelines/configure/depends-on.md): Managing step execution order with implicit dependencies (wait/block) and explicit dependencies (depends_on). - [Environment variables](https://buildkite.com/docs/pipelines/configure/environment-variables.md): Complete reference of Buildkite environment variables available in build steps, hooks, and plugins. - [Skipping builds](https://buildkite.com/docs/pipelines/configure/skipping.md): Skipping or canceling intermediate builds, and skipping builds using commit messages or the API. - [Canceling builds](https://buildkite.com/docs/pipelines/configure/canceling-builds.md) - [Retry](https://buildkite.com/docs/pipelines/configure/retry.md): Configuring automatic and manual retry for command step jobs, including exit status, signal, signal_reason conditions, retry limits, and retry behavior. - [Soft fail](https://buildkite.com/docs/pipelines/configure/soft-fail.md) - [Build artifacts](https://buildkite.com/docs/pipelines/configure/artifacts.md): Uploading, downloading, and managing build artifacts using step attributes, CLI commands, and the API. - [Build timeouts](https://buildkite.com/docs/pipelines/configure/build-timeouts.md): Configuring command step timeouts and scheduled job expiration at step, pipeline, and organization levels. - [Pipeline tags](https://buildkite.com/docs/pipelines/configure/tags.md): Tagging pipelines with emoji and text labels for filtering and searching on the dashboard. - [Build retention](https://buildkite.com/docs/pipelines/configure/build-retention.md): Build data retention periods by plan tier and the lifecycle of build data removal. - [Public pipelines](https://buildkite.com/docs/pipelines/configure/public-pipelines.md): Making pipelines publicly visible for open-source projects, providing read-only access to builds and logs. - [Using build meta-data](https://buildkite.com/docs/pipelines/configure/build-meta-data.md): Storing and retrieving key-value metadata across build steps using the buildkite-agent meta-data command. - [Managing log output](https://buildkite.com/docs/pipelines/configure/managing-log-output.md): Formatting build log output with collapsible groups, ANSI colors, redaction, and log limits. - [Links and images in log output](https://buildkite.com/docs/pipelines/configure/links-and-images-in-log-output.md): Embedding clickable links and inline images in build logs using ANSI escape codes. - [Notify](https://buildkite.com/docs/pipelines/configure/notify.md): Configuring build notifications for Slack, email, GitHub statuses, PagerDuty, webhooks, and Basecamp. - [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. #### Workflows - [Job priority](https://buildkite.com/docs/pipelines/configure/workflows/job-priority.md): Setting job priority values to control dispatch order, including per-step and pipeline-wide priority. - [Controlling concurrency](https://buildkite.com/docs/pipelines/configure/workflows/controlling-concurrency.md): Using concurrency limits and concurrency groups to serialize deployments or limit parallel job execution. - [Build matrix](https://buildkite.com/docs/pipelines/configure/workflows/build-matrix.md): Expanding a single step template into multiple jobs using matrix element arrays with adjustments. - [Branch configuration](https://buildkite.com/docs/pipelines/configure/workflows/branch-configuration.md): Filtering builds and steps by branch patterns at the pipeline, step, and pull request levels. - [Scheduled builds](https://buildkite.com/docs/pipelines/configure/workflows/scheduled-builds.md): Creating cron-based build schedules with predefined intervals or custom crontab syntax. - [Archive and delete](https://buildkite.com/docs/pipelines/configure/workflows/archiving-and-deleting-pipelines.md): How to archive pipelines to preserve history or permanently delete them and their build data. ## See also - [Buildkite Dynamic Pipelines Documentation](https://buildkite.com/docs/llms-dynamic-pipelines.txt): Buildkite documentation for dynamic pipelines, including runtime step generation, the Buildkite SDK, if_changed conditions, tutorials, and example pipelines. - [Buildkite Pipelines Documentation](https://buildkite.com/docs/llms-pipelines.txt): Buildkite documentation for Buildkite Pipelines, covering getting started, architecture, configuration, best practices, and API integration. - [Buildkite Best Practices Documentation](https://buildkite.com/docs/llms-best-practices.txt): Buildkite documentation for CI/CD best practices, covering pipeline design and structure, agent management, Docker-based builds, parallelization, monorepos, dependency management, secrets, infrastructure as code, caching, monitoring, and security controls.