我们以二进制和源代码的形式为客户提供开源库修复程序。根据GPL,我们应该提供编译脚本和对源代码的修改
构建脚本逻辑:安装所需的包,克隆git存储库,应用补丁并构建它。客户应该能够在干净的Ubuntu映像上执行同样的操作。
如何实现使用我们的脚本/源并运行它的验证过程
每次验证生成时,我是否应该使用VM并恢复状态
我应该使用一些docker图像还是其他图像。
如果您有可用的docker,您可以使用linux映像和构建脚本。假设您已经有了一个工作的基本映像,您可以使用docker run
运行构建脚本,例如
docker run -i --rm --entrypoint /bin/sh mycontainer < myscript
其中mycontainer
是容器名称,myscript
是构建脚本(用于安装依赖项并构建应用程序(的路径,并且指定--rm
在退出后清理实例。在本例中,脚本是通过stdin
提供的,但您可以将它包含在容器中并直接运行它。
如果您使用github或gitlab CI,您可以将自动构建添加到管道作业中,以便在git提交时自动运行它(例如,每次更新master分支时(。如果已经配置了docker映像,则只需要向CI系统添加一个作业。