Skip to content

Github Action for lightning-fast build caching with Buildless

License

Notifications You must be signed in to change notification settings

buildless/setup

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Action: Setup Buildless

Latest Release CI Security Rating Reliability Rating

This repository provides a GitHub Action to setup Buildless within your workflows. Supported features:

  • Buildless CLI: Install and authorize the Buildless CLI
  • Buildless Agent: Install and run the near-caching Buildless Agent

Usage

Full documentation here

Install the latest Buildless CLI, add it to the PATH, and run the agent

  - name: "Setup: Buildless"
    uses: buildless/[email protected]

Install the latest Buildless CLI, add it to the PATH, without the agent:

  - name: "Setup: Buildless"
    uses: buildless/[email protected]
    with:
      agent: false  # you really should use the agent tho

Authorization

The CLI and Agent will both automatically use BUILDLESS_APIKEY, if present, to authorize cache traffic and cloud backhaul. If no authorization material is present, only local caching is enabled.

Sign up for a Buildless Cloud account to obtain an API key. It's free to start.

Options

The full suite of available options are below.

Option Type Default Description
version string latest Version to install; defaults to latest
os string (Current) OS to target; defaults to current platform
arch string (Current) Arch to target; defaults to current platform
agent boolean true Install and start the Buildless Agent
apikey string ${{ env.BUILDLESS_APIKEY }} Explicitly set an API key
token string ${{ env.GITHUB_TOKEN }} GitHub token to use for fetching assets
export_path boolean true Whether to install Buildless onto the PATH

Options for os (support varies)

  • darwin, mac, macos
  • windows, win32
  • linux

Options for arch (support varies)

  • amd64, x64, x86_64
  • arm64, aarch64

Full configuration sample with defaults

  - name: "Setup: Buildless"
    uses: buildless/setup@v1
    with:
      version: latest
      os: linux
      arch: amd64
      agent: true
      apikey: ${{ env.BUILDLESS_API_KEY || secrets.BUILDLESS_API_KEY }}
      token: ${{ env.GITHUB_TOKEN }}
      export_path: true

What is Buildless?

Buildless is a build caching system which works with most build tools. If you have a build tool that supports remote caching, Buildless can probably plug right in, and it makes development fast and fun.

Supported language ecosystems and toolchains include:

  • Gradle, Maven, JVM (Kotlin, Java, Groovy, Scala, et al)
  • Bazel (supports gRPC build cache APIs)
  • C, C++, Swift, Rust, etc (C-like toolchains, via tools like sccache)
  • JavaScript, TypeScript, CSS, etc (with tools like turborepo)