ecmwf-actions/Build Package

A Github action that builds an ecbuild/CMake-based project, optionally pulling in its dependencies, running tests and collecting code coverage.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
Runtime
Deprecated runtime
namedescriptionrequireddefault
workspaceThe location of currently checked out source repository.yes${{ github.workspace }}
repositoryThe currently checked out source repository name. Repository names should follow the standard Github `name:owner/name/subdir@ref` format. `@ref`, name (in case there are multiple packages in the repository) and subdir are optional, `@ref` takes precedence over `sha` input.yes${{ github.repository }}
shaThe currently checked out source repository commit SHA.yes${{ github.sha }}
cmakeWhether to use CMake for build configuration, instead of ecbuild.yesfalse
ecbundleWhether to use ecbundle for building bundles.yesfalse
cmake_optionsThe list of ecbuild/CMake options to be passed during the current repository build configuration phase. Use the form of `-DCMAKE_VAR=1 -DCMAKE_ANOTHER_VAR=0` to define multiple options. If left empty, the repository will be configured with default options only.no
ctest_optionsThe list of ctest options to be passed to the test command for the current repository. Use the form of `-R <include-regex> -E <exclude-regex>` to define multiple options. If left empty, the repository will be tested with default options only.no
self_buildWhether to build from currently checked out repository or not.yestrue
self_testWhether to run tests from currently checked out repository or not.yestrue
self_coverageWhether to collect code coverage from currently checked out repository or not. Note that `test` input must be set to true for this to work. Currently supported only on Ubuntu 20.04 platform and for GNU 10 compiler.yesfalse
dependenciesThe list of dependency repositories to build from, in correct order. Repository names should follow the standard Github `owner/name` format. To specify different branch name per repository, use `owner/name@branch_name` format. To specify specific tag name per repository, use `owner/name@refs/tags/tag_name` format. To specify a commit hash per repository, use `owner/name@hash`. Optionally, you can specify a package name (in case of monorepos) and subdirectory to build from, in the form of `name:owner/repo/subdir@ref`.no
dependency_branchThe default branch (or tag) name for dependency repositories. Will be ignored if the branch (or tag) name is specified per repository, see `dependencies` input. To specify specific tag name, use `refs/tags/tag_name` format.yes${{ github.ref }}
dependency_cmake_optionsThe list of ecbuild/CMake options to be passed during the dependency build configuration phase. Use the form of `owner/name: "-DCMAKE_VAR=1"` to define options for the package or its dependencies. If the package is not listed, it will be configured with default options only.no
force_buildWhether to always build dependencies from latest repository states or not. Otherwise, the action will first try to download a build artifact if it exists.yesfalse
cache_suffixA string which will be appended to the cache key. To invalidate the build cache, simply change its value.no
recreate_cacheWhether to skip restoring builds from cache and recreate them instead.yesfalse
save_cacheWhether to save builds to cache and upload build artifacts.yestrue
osCurrent OS platform.yes${{ matrix.os }}
compilerCurrent compiler family.no${{ matrix.compiler }}
compiler_ccCurrent C compiler alias.no${{ matrix.compiler_cc }}
compiler_cxxCurrent C++ compiler alias.no${{ matrix.compiler_cxx }}
compiler_fcCurrent Fortran compiler alias.no${{ matrix.compiler_fc }}
toolchain_filePath to toolchan file.no${{ matrix.toolchain_file }}
github_tokenGithub access token, with `repo` and `actions:read` scopes.yes${{ github.token }}
install_dirDirectory where the dependencies and current package will be installed. Each dependency will be installed in its own subdirectory.yes${{ runner.temp }}/install
download_dirDirectory where the dependency repositories and artifacts will be downloaded.yes${{ runner.temp }}/download
parallelism_factorNumber of threads build job will utilise on the runner.no2
cpack_generatorSelect which package type to create, options: `deb, rpm`. If selected, the currently checked out repository will be packaged. no
cpack_optionsList of options for cpack, use the same form as for `cmake_options`.no
namedescription
bin_pathsBinary paths of all installed packages, delimited by colons (:).
include_pathInclude paths of all installed packages, delimited by colons (:).
install_pathInstall paths of all installed packages, delimited by colons (:).
lib_pathLibrary paths of all installed packages, delimited by colons (:).
coverage_fileAbsolute path to code coverage file, if collected.
package_pathAbsolute path to generated package.