Jenkins Shared Library for the Trusted Firmware Open CI.
This repository contains the Jenkins Shared Library for the Trusted Firmware Open CI project, providing reusable pipeline steps, helper functions, and common CI/CD workflows that are shared across Trusted Firmware project CIs.
From any Jenkins pipeline script (e.g. a Jenkinsfile), import the trusted-firmware library using:
@Library('trusted-firmware@main') _
This project uses the Gradle build system (through a checked-in Gradle wrapper); if you're new to Gradle, start with Running Gradle Tasks for a high-level introduction. The wrapper downloads Gradle and the locked project dependencies, including Groovy, Jenkins Pipeline Unit, JUnit, CodeNarc, and JaCoCo.
Prerequisites:
Run the complete build and validation pipeline from the repository root with:
./gradlew build
The repository provides a Devbox configuration which sets up a reproducible development environment with all of the mandatory and optional development dependencies.
Run the complete build and validation pipeline via the Devbox environment with:
devbox run -- ./gradlew build
The repository provides a Dev Container configuration which also sets up a reproducible development environment, through Devbox.
Run the complete build and validation pipeline via the Dev Container CLI with:
devcontainer up devcontainer exec -- ./gradlew build
This project follows Conventional Commits.
Prefer to use short, imperative subjects that describe a single change, e.g.:
feat: add foo widgetfix: handle empty bar inputchore: update baz dependencyKeep commits focused enough that a reviewer can understand each one on its own. If a larger change has several parts, split it into a logical sequence where each commit builds on the previous one.
In the commit body, describe the behavior change in greater detail, and mention any dependency or CI-impacting changes.
When you add or update a Gradle dependency, regenerate the lockfiles and dependency verification metadata with:
./gradlew dependencies \ --write-locks --write-verification-metadata sha256,pgp --export-keys
See Verifying Dependencies for guidance on how to work with Gradle verification metadata.
This project is licensed under the terms of the MIT license; see ./LICENSE.md.