1. Resources
  2. /
  3. Plugins
  4. /
  5. nx-set-shas-buildkite-plugin

Nx Set SHAs Buildkite Plugin Build status

A Buildkite plugin that fetches and sets base and head SHAs for more efficient Nx monorepo builds.

This plugin queries the Buildkite API for the last successful commit on either the current branch or, for PR builds, the base branch of the repository and sets the environment variables NX_BASE and NX_HEAD accordingly.

These two variables are used by the nx affected command to allow Nx to run only the targets affected by the current (i.e., HEAD) commit.

Examples

The plugin requires a Buildkite API access token with GraphQL scope. You can set the token with the GRAPHQL_API_TOKEN environment variable or with the plugin’s api-token parameter.

In this example, the token is obtained using the Secrets plugin, which reads it from Buildkite secrets:

steps:
  - label: ":nx: Run the Nx build"
    command: npx nx affected -t lint build test
    plugins:
      - nx-set-shas#v0.1.0
      - secrets:
          variables:
            GRAPHQL_API_TOKEN: GRAPHQL_API_TOKEN

Here, the token is read from the plugin’s api-token parameter, having been set with an environment variable — for example, using a post-checkout lifecycle hook:

steps:
  - label: ":nx: Run the Nx build"
    command: npx nx affected -t lint build test
    plugins:
      - nx-set-shas#v0.1.0:
          api-token: $MY_GRAPHQL_API_TOKEN

To learn more about working with secrets in Buildkite pipelines, see Managing pipeline secrets.

License

MIT (see LICENSE)

The plugins listed on this webpage are provided for informational purposes only. They have not undergone any formal security review or assessment. While we strive to provide useful resources, we cannot guarantee the safety, reliability, or integrity of these plugins. Users are strongly advised to conduct their own security evaluations before downloading, installing, or using any plugin. By using these plugins, you acknowledge and accept any risks associated with their use. We disclaim any liability for any harm or damages arising from the use of the plugins listed.

Start turning complexity into an advantage

Create an account to get started with a 30-day free trial. No credit card required.

Buildkite Pipelines

Platform

  1. Pipelines
  2. Public pipelines
  3. Test Engine
  4. Package Registries
  5. Mobile Delivery Cloud
  6. Pricing

Hosting options

  1. Self-hosted agents
  2. Mac hosted agents
  3. Linux hosted agents

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Example pipelines
  5. Plugins
  6. Webinars
  7. Case studies
  8. Events
  9. Migration Services
  10. Comparisons

Company

  1. About
  2. Careers
  3. Press
  4. Brand assets
  5. Contact

Solutions

  1. Replace Jenkins
  2. Workflows for AI/ML
  3. Testing at scale
  4. Monorepo mojo
  5. Bazel orchestration

Legal

  1. Terms of Service
  2. Acceptable Use Policy
  3. Privacy Policy
  4. Subprocessors
  5. Service Level Agreement

Support

  1. System status
  2. Forum
© Buildkite Pty Ltd 2025