There are two primary flows: the pull request flow and the deployment flow.
The deployment flow occurs on a daily basis. The PR flow happens whenever someone creates a new Pull Request. PRs can be created by contributors or by an automated tool updater that runs on a schedule.
Repository secrets are used to protect certain credentials, but also as repository-dependent parameters for the CI.
| Secret | Description |
|---|---|
MAIN_BRANCH | The main branch for OpenLane. Format: main |
| Secret | Description |
|---|---|
DOCKER_IMAGE | The name of the resulting Docker image (minus the tag). In our case, we use efabless/openlane. |
TOOL_DOCKER_IMAGE | The name of the resulting Docker images for tools (minus the tag). In our case, we use efabless/openlane-tools. |
DOCKERHUB_USER | A username for a user that has push access to the organization that owns DOCKER_IMAGE on Docker Hub. In our case, that's an Efabless Employee with push access. |
DOCKERHUB_PASSWORD | The password/token for the given username that has push access to the organization that owns DOCKER_IMAGE on Docker Hub. |
LOG_UPLOAD_INFO | Currently unused: Information on a cloud platform to upload buckets to, in the format platform:bucket:encoded_credentials, where platform can be gcp/aws/etc, bucket is the bucket name, and encoded_credentials are simply the relevant credentials encoded in base64. It's a bit convoluted, but it makes it so different CI users can switch the platform out by changing a single secret. Currently, only the Google Cloud Platform is supported. Support for other platforms can be added to upload_log_tarballs.py. If this secret is not specified, the logs will not be uploaded. |
| Secret | Description |
|---|---|
FORK_NAME | A fork to push branches for tool updates to. Format bot-account/OpenLane |
MY_TOKEN | A token for the bot account that owns the fork. |