Skip to main content

Setup Openlane Action

The theopenlane/setup-openlane GitHub Action installs and configures the Openlane CLI in GitHub Actions workflows, so jobs can call openlane without scripting the download and setup themselves.

How it works​

The action downloads the requested version of the Openlane CLI, installs it on the runner, and adds the binary to PATH so subsequent workflow steps can invoke openlane directly. When you supply a token input, it also configures the CLI to authenticate with the Openlane API.

Getting Started​

Here is how to use the action in your GitHub workflow.

Example usage​

name: CI

on:
push:
branches:
- main

jobs:
prepare:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Openlane CLI
uses: theopenlane/setup-[email protected]
with:
version: 'v0.45.10'
token: ${{ secrets.OPENLANE_TOKEN }}

- name: Verify installation
run: |
openlane version
note

Replace v0.0.1 with the appropriate version tag of the action you wish to use

Inputs​

InputRequired?Description
versionYesThe version of the Openlane CLI to install (e.g., latest, v1.2.3).
tokenNoAPI or personal access token for the Openlane CLI if authentication is required.
add_to_pathNoWhether to add the CLI to the system PATH (default: true).

Best practices​

When using the theopenlane/setup-openlane action, consider these best practices:

  • Pin the action version rather than @main to avoid surprises when breaking changes are introduced
  • Pin the openlane CLI version input to a specific version for reproducible builds
  • Use renovate to keep both the action and CLI versions up to date automatically
  • Use secrets for tokens (e.g., secrets.OPENLANE_API_TOKEN) so you don't expose credentials in logs
  • Verify the CLI by running openlane version or a small smoke command to confirm it's correctly installed. openlane version does not require authentication, so it is a good test command.

Compatibility & Requirements​

  • Runs on GitHub Actions runners (e.g., ubuntu-latest, macos-latest)
  • If you use self-hosted runners, ensure they meet any OS / architecture requirements of the CLI