[elbe-devel] [PATCH v2 3/8] finetuning: add artifact and rm_artifact command to project-finetuning

Manuel Traut manut at linutronix.de
Wed Dec 5 10:53:34 CET 2018


On 09:54 Wed 05 Dec     , Torben Hohn wrote:
> make it possible to add files generated in project finetuning or
> normal target files to the list of build artifacts, that get downloaded
> when the elbe build copletes.

while trying this,

	<artifact>/boot/*</artifact>

i found out, that this is not working as expected.

a) wildcards should be supported
b) appending the artifacts to targetfs.images is wrong. Not every artifact is an
    image, see elbepack/db.py

                images = set(ep.targetfs.images or [])
                for img in images:
                    _update_project_file(
                        s, p.builddir, img,
                        "application/octet-stream", "Image")

   IMHO we should allow specifying or guessing?? a filetype and add the artifact
    to the project not to the targetfs

c) examples/arm64-qemu-virt.xml could be updated to extract the kernel from the
    RFS

> Signed-off-by: Torben Hohn <torben.hohn at linutronix.de>
> ---
>  elbepack/finetuning.py | 35 +++++++++++++++++++++++++++++++++++
>  schema/dbsfed.xsd      | 23 +++++++++++++++++++++++
>  2 files changed, 58 insertions(+)
> 
> diff --git a/elbepack/finetuning.py b/elbepack/finetuning.py
> index 9fc0a2eb..e2ad0c8c 100644
> --- a/elbepack/finetuning.py
> +++ b/elbepack/finetuning.py
> @@ -490,6 +490,41 @@ class ProjCmdAction(FinetuningAction):
>  FinetuningAction.register(ProjCmdAction)
>  
>  
> +class ArtifactAction(FinetuningAction):
> +
> +    tag = 'artifact'
> +
> +    def __init__(self, node):
> +        FinetuningAction.__init__(self, node)
> +
> +    def execute(self, _log, _buildenv, target):
> +        target.images.append('target' + self.node.et.text)
> +
> +    def execute_prj(self, _log, _buildenv, target, _builddir):
> +        target.images.append(self.node.et.text)
> +
> +
> +FinetuningAction.register(ArtifactAction)
> +
> +
> +class RmArtifactAction(FinetuningAction):
> +
> +    tag = 'rm_artifact'
> +
> +    def __init__(self, node):
> +        FinetuningAction.__init__(self, node)
> +
> +    def execute(self, _log, _buildenv, _target):
> +        raise NotImplementedError("<rm_artifact> may only be "
> +                                  "used in <project-finetuning>")
> +
> +    def execute_prj(self, _log, _buildenv, target, _builddir):
> +        target.images.remove(self.node.et.text)
> +
> +
> +FinetuningAction.register(ArtifactAction)
> +
> +
>  def do_finetuning(xml, log, buildenv, target):
>  
>      if not xml.has('target/finetuning'):
> diff --git a/schema/dbsfed.xsd b/schema/dbsfed.xsd
> index 145d427a..55b1bb6d 100644
> --- a/schema/dbsfed.xsd
> +++ b/schema/dbsfed.xsd
> @@ -1847,6 +1847,14 @@
>            </documentation>
>          </annotation>
>        </element>
> +      <element name="artifact" type="rfs:string" minOccurs="0">
> +        <annotation>
> +          <documentation>
> +	    make the named file an artifact. The path is relative to the
> +	    target root.
> +          </documentation>
> +        </annotation>
> +      </element>
>      </choice>
>    </group>
>  
> @@ -1884,6 +1892,21 @@
>            </documentation>
>          </annotation>
>        </element>
> +      <element name="artifact" type="rfs:string" minOccurs="0">
> +        <annotation>
> +          <documentation>
> +	    Make the named file an artifact. The path is relative
> +	    to the project directory.
> +          </documentation>
> +        </annotation>
> +      </element>
> +      <element name="rm_artifact" type="rfs:string" minOccurs="0">
> +        <annotation>
> +          <documentation>
> +	    Remove a project artifact from the list of artifacts.
> +          </documentation>
> +        </annotation>
> +      </element>
>      </choice>
>    </group>
>  
> -- 
> 2.11.0
> 
> 
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel



More information about the elbe-devel mailing list