Gitlab工件管理器

gitlab-art的Python项目详细描述


art-跨项目Gitlab工件依赖性

{cd1>从不同的存储库中提取一个

快速启动

  1. 创建Gitlab私有令牌并将其保存在art配置中:

    art configure https://gitlab.example.com/ 'as1!df2@gh3#jk4$'
  2. 使用所需工件的定义创建artifacts.yml

    ^{pr2}$ 在
  3. 运行art update自动确定最新版本和作业编号 将它们保存到artifacts.lock.yml。提交两个文件 到版本控制系统。在

  4. 运行art download将所需的工件提取到本地缓存,然后 art install将它们安装到项目目录中。在

锁文件

artifacts.lock.yml在概念上与Ruby的Gemfile.lock相似:它 允许锁定精确的修订和作业,同时仍然进行语义跟踪 标记或分支,并允许在需要时进行轻松更新。以下是好的 应遵循以下做法:

  • 在编辑artifacts.yml之后始终运行art update。在
  • 始终将两个文件提交到版本控制。在
  • 不要自动运行art update,除非您喜欢破坏构建。在

持续集成

将以下命令添加到.gitlab-ci.yml

before_script:-sudo pip install https://github.com/kosma/art-art configure <url> <token>-art download-art installcache:paths:-.art-cache/

文件位置

art使用appdirs存储配置 和缓存文件。在CI环境下运行时,默认缓存目录为 自动设置为.art-cache,以便可以跨作业保留它。在

缺陷和限制

  • Gitlab的$CI_BUILD_TOKEN基础设施不支持访问工件, 所以必须使用私有令牌。这是非常不幸和愚蠢的。 这可能会在将来的Gitlab版本中得到修复(如果我对它们进行足够的bug的话)。在
  • 不支持多个Gitlab实例(支持起来也很重要)。在
  • 错误处理是非常基本的:任何不重要的异常都只是传播 直到Python转储堆栈跟踪。在
  • 日志记录可以改进。在
  • 未检查artifacts.yml文件的格式,几乎没有文档记录。在
  • 一些不重要的用例可能会发生破坏。在
  • 与其他构建系统一样,安全性依赖于对开发人员的信任 别做傻事。尤其是,没有对路径进行消毒;有足够的 独创性很可能会逃脱构建目录并造成严重破坏。在
  • 没有uninstall命令。如果您更改了工件版本并需要 有一个干净的记录,强烈建议运行git clean -dfx(注意, 但是:对您的工作副本所做的任何本地更改都将在没有警告的情况下丢失)。在
  • 对于这个问题可能有更干净的解决方案,比如使用某种 跨语言包管理器;但是,我没有找到任何可以满足的 我的需要。在

许可

art是开源软件;请参阅COPYING以获得乐趣。如果 许可证困扰着你,我很乐意在阳光下的任何事情上重新获得许可证。在

作者

art是由Kosma Moczek<;kosma@kosma.pl>;编写的,值得庆幸的是,修正了错误 由无数的好人贡献。请参阅git log以获取完整的作者信息。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何处理CannotCreateTransactionException   安卓如何通过TensorFlowEnferenceInterface提供布尔占位符。JAVA   java是一个系统。出来默认情况下println线程安全?   java关于同步的重要性   java非法启动表达式/尚未对编码充满信心欢迎帮助   安卓为什么XML和Java中的ImageView测量不同?   Android乘以双精度整数[java]   java如何将下一个数组项设置为变量的新值?   java编译ikvmc pwswiftcoreXXXX。jar作为clr。动态链接库   java测试没有单元测试调用的私有方法   在java中如何划分重复的正则表达式模式?   java活动不刷新onCreate()中的布局   Java用户输入nextLine()不等待输入   oracle11g用java编写ORACLE BLOB文件   mysql如何在Java程序中使用Hibernate?   java ADF从托管bean调用有界taskflow