9elements/Compile open firmware solution

Compile a selected firmware solution like coreboot, EDKII, OpenBMC and more

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 1, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: 9elements/firmware-action@fda5f656e6d2e70c6aa85b1740cd01b5d0ffb1e9 # v0.19.6

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
versionVersion 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. nov0.19.6
configPath to the JSON configuration file. yes
targetThe firmware recipe to build. Use ID from JSON configuration file. yes
recursiveBuild target recursively, with all of its dependencies. nofalse
pruneRemove 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. nofalse
debugRun the action with increased verbosity. nofalse
compileCompile the action from source instead of downloading pre-compiled binary from releases. nofalse
enable-cacheAutomatically 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. nofalse
auto-download-artifactsAutomatically 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 nofalse
auto-upload-artifactsAutomatically 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 nofalse
auto-upload-artifacts-if-no-files-foundSee 'if-no-files-found' at https://github.com/actions/upload-artifact warn
auto-upload-artifacts-retention-daysSee 'retention-days' at https://github.com/actions/upload-artifact 0
auto-upload-artifacts-compression-levelSee 'compression-level' at https://github.com/actions/upload-artifact 6
auto-upload-artifacts-overwriteSee 'overwrite' at https://github.com/actions/upload-artifact false
namedescription
artifact-nameName of the artifact which will be uploaded to GitHub
artifact-idGitHub ID of an Artifact, can be used by the REST API
artifact-urlURL 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-digestSHA-256 digest of an Artifact