-
Notifications
You must be signed in to change notification settings - Fork 1
/
action.yml
157 lines (157 loc) · 6.17 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: Build Package
description: |
A Github action that builds an ecbuild/CMake-based project, optionally pulling in its dependencies, running tests and
collecting code coverage.
inputs:
workspace:
description: The location of currently checked out source repository.
required: true
default: ${{ github.workspace }}
repository:
description:
The currently checked out source repository name. Repository names should follow the standard Github
`owner/name@ref` format. `@ref` is optional, takes precedence over `sha` input.
required: true
default: ${{ github.repository }}
sha:
description: The currently checked out source repository commit SHA.
required: true
default: ${{ github.sha }}
cmake:
description: Whether to use CMake for build configuration, instead of ecbuild.
required: true
default: "false"
ecbundle:
description: Whether to use ecbundle for building bundles.
required: true
default: "false"
cmake_options:
description:
"The 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."
required: false
ctest_options:
description:
"The 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."
required: false
self_build:
description: Whether to build from currently checked out repository or not.
required: true
default: "true"
self_test:
description: Whether to run tests from currently checked out repository or not.
required: true
default: "true"
self_coverage:
description:
Whether 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.
required: true
default: "false"
dependencies:
description:
The 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`.
required: false
dependency_branch:
description:
The 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.
required: true
default: ${{ github.ref }}
dependency_cmake_options:
description:
'The 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.'
required: false
force_build:
description:
Whether to always build dependencies from latest repository states or not. Otherwise, the action will
first try to download a build artifact if it exists.
required: true
default: "false"
cache_suffix:
description:
A string which will be appended to the cache key. To invalidate the build cache, simply change its
value.
required: false
recreate_cache:
description: Whether to skip restoring builds from cache and recreate them instead.
required: true
default: "false"
save_cache:
description: Whether to save builds to cache and upload build artifacts.
required: true
default: "true"
os:
description: Current OS platform.
required: true
default: ${{ matrix.os }}
compiler:
description: Current compiler family.
required: false
default: ${{ matrix.compiler }}
compiler_cc:
description: Current C compiler alias.
required: false
default: ${{ matrix.compiler_cc }}
compiler_cxx:
description: Current C++ compiler alias.
required: false
default: ${{ matrix.compiler_cxx }}
compiler_fc:
description: Current Fortran compiler alias.
required: false
default: ${{ matrix.compiler_fc }}
toolchain_file:
description: Path to toolchan file.
required: false
default: ${{ matrix.toolchain_file }}
github_token:
description: Github access token, with `repo` and `actions:read` scopes.
required: true
default: ${{ github.token }}
install_dir:
description:
Directory where the dependencies and current package will be installed. Each dependency will be
installed in its own subdirectory.
required: true
default: ${{ runner.temp }}/install
download_dir:
description: Directory where the dependency repositories and artifacts will be downloaded.
required: true
default: ${{ runner.temp }}/download
parallelism_factor:
description: Number of threads build job will utilise on the runner.
required: false
default: "2"
cpack_generator:
description: >
Select which package type to create, options: `deb, rpm`. If selected, the currently checked out repository will be packaged.
required: false
cpack_options:
description: List of options for cpack, use the same form as for `cmake_options`.
required: false
outputs:
bin_paths:
description: Binary paths of all installed packages, delimited by colons (:).
include_path:
description: Include paths of all installed packages, delimited by colons (:).
install_path:
description: Install paths of all installed packages, delimited by colons (:).
lib_path:
description: Library paths of all installed packages, delimited by colons (:).
coverage_file:
description: Absolute path to code coverage file, if collected.
package_path:
description: Absolute path to generated package.
runs:
using: node16
main: dist/index.js