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第三方库


热门话题
postgresql是Hibernate在EclipseLink中用于映射java的PostgresUUIDType模拟。util。UUID到Postgres的“UUID”类型   java如何连接到opensuse上的mysql localhost?   项目反应器(或RxJava2)的java执行器序列调用   JavaSpring控制器保留旧值   在Java中创建悬空指针   java SpringBootApplication scanBasePackages未读取子包   java C++文件头文件如果包含私有成员变量声明,它怎么能被看作类的“接口”呢?   java如何报告面板更改为父容器?   如果运行时打印错误,java将停止程序   将Java Spring应用部署到heroku时,json时区指示器“”无效   java如何使用spring的分层架构,并且仍然遵循面向对象的结构?   java从简单表达式中获取null   java使用正则表达式从字符串中提取ip地址   java如何设置一些属性而不是xml元素   java为什么按钮不反映Action的NAME属性?   java在调用Spring引导API时遇到404错误   java如何将大型参数从一个jsp传递到另一个jsp?   java JPanel paintComponent()不会在JFrame中绘制