9elements/Compile open firmware solution
Compile a selected firmware solution like coreboot, EDKII, OpenBMC and more
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 1, 2026
- License
- MIT
Pinned Snippet
uses: 9elements/firmware-action@fda5f656e6d2e70c6aa85b1740cd01b5d0ffb1e9 # v0.19.6tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| version | Version of firmware-action to use. If not specified, latest release will be used. Must be a tag if 'compile' is false, must be a branch is 'compile' is true. | no | v0.19.6 |
| config | Path to the JSON configuration file. | yes | — |
| target | The firmware recipe to build. Use ID from JSON configuration file. | yes | — |
| recursive | Build target recursively, with all of its dependencies. | no | false |
| prune | Remove Dagger container and its volumes after each module (only in recursive mode). Enable this when building complex firmware stack in single job recursively and you are running out of disk space. | no | false |
| debug | Run the action with increased verbosity. | no | false |
| compile | Compile the action from source instead of downloading pre-compiled binary from releases. | no | false |
| enable-cache | Automatically cache the '.firmware-action' directory along with all existing output directories. Firmware-action can automatically cache the produced files, by iterating over all 'output_dir' entries in the confirmation file. These files, if exists, can be cached. Because firmware-action has multiple methods of detecting changes in the sources, it can then rebuild the files if needed. But it there was no change, it can greatly speed up the CI run. | no | false |
| auto-download-artifacts | Automatically download all artifacts for the current workflow run. There is no easy convenient way to download all required artifacts, so firmware-action offers the option to just automatically download all available artifacts. This does not mean that they will be used during the build, but it means that you do not need to handle the downloading of artifacts yourself. Internally a actions/download-artifact@v8 is used | no | false |
| auto-upload-artifacts | Automatically upload all artifacts.inputs.auto-upload-artifacts-if-no-files-found Firmware action can automatically upload the artifacts for the current target (upload the 'output_dir' directory), so that you don't have it. Combined with the option 'auto-download-artifacts' firmware-action should be able to built entire firmware stack in CI even if it is split into multiple jobs and even if there are multiple matrix builds running in parallel. Internally a actions/upload-artifact@v7 is used | no | false |
| auto-upload-artifacts-if-no-files-found | See 'if-no-files-found' at https://github.com/actions/upload-artifact | — | warn |
| auto-upload-artifacts-retention-days | See 'retention-days' at https://github.com/actions/upload-artifact | — | 0 |
| auto-upload-artifacts-compression-level | See 'compression-level' at https://github.com/actions/upload-artifact | — | 6 |
| auto-upload-artifacts-overwrite | See 'overwrite' at https://github.com/actions/upload-artifact | — | false |
Outputs
| name | description |
|---|---|
| artifact-name | Name of the artifact which will be uploaded to GitHub |
| artifact-id | GitHub ID of an Artifact, can be used by the REST API |
| artifact-url | URL to download an Artifact. Can be used in many scenarios such as linking to artifacts in issues or pull requests. Users must be logged-in in order for this URL to work. This URL is valid as long as the artifact has not expired or the artifact, run or repository have not been deleted. |
| artifact-digest | SHA-256 digest of an Artifact |