前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Working Hours 插件的第一阶段更新

Working Hours 插件的第一阶段更新

作者头像
LinuxSuRen
发布2019-11-26 14:35:00
1.5K0
发布2019-11-26 14:35:00
举报
文章被收录于专栏:JenkinsJenkins
Working Hour Plugin 提供了一个界面,用于设置允许的构建日期和时间。在配置 Working Hour 之外运行的作业将保留到下一个允许的构建时间为止。

在 Google Summer of Code 的第一个代码阶段,我一直在从事 Working Hours Project 项目,该项目还有待于改善可用性。

当我们想设计一个具有大量可以使用自定义库的 UI 时,React 似乎比经典的 Jelly 页面更受青睐,尤其是日期选择器之类的开源组件。

但是,我们目前正致力于将 React 和 Jenkins 集成在一起,这是一个挑战。

第一阶段的成就

在第一个代码阶段,我们专注于 UI 改进,我们取得了以下主要改进:

  • 一个独立的 Web 应用程序,可以将其集成。
  • 滑块,用于选择时间范围。
  • 设置排除日期时间的更多字段。
  • 用于选择排除日期的预设。
  • Jenkins 样式界面

我们如何将 React 集成到 Jenkins 中

可以在这里找到集成的解决方案文档

最初,我们发现 BlueOcean 是在 Jenkins 中使用 React 的一个很好的例子,但是对于使用插件进行通用开发来说,它并不是一个好的选择。因此,我们需要找到另一种集成方式。

这是进行集成的步骤:

  • 在你 jelly 文件中的挂载点,通常是具有唯一 ID 的元素。
  • 编写您的 React Application,但需要将安装点设置为您在上面设置的 ID。
  • 将构建后的插件复制到 webapp 目录。
  • 在你的 jelly 文件中,使用 script 标签引入
代码语言:javascript
复制
<script type="text/javascript"
        src="${resURL}/plugin/working-hours/js/main.js"></script>
  • 使用 React 之后,传统的请求将不再可用,处理请求的另一种方法是使用 stapler。您可以定义如下的过程函数[source, java]
代码语言:javascript
复制
public HttpResponse doDynamic(StaplerRequest request) {
        if (config == null) {
            config = ExtensionList.lookup(WorkingHoursPlugin.class).get(0);
        }
        String restOfPath = request.getRestOfPath();
        String[] pathTokens = restOfPath.split("/");
        List<String> params = new ArrayList<>();
        switch (params.get(0)) {
            case "list-excluded-dates":
                return listExcludedDate(request);
            case "set-excluded-dates":
                return setExcludedDates(request);
            case "list-time-ranges":
                return listTimeRanges(request);
            case "set-time-ranges":
                return setTimeRanges(request);
        }
    }

运行我们的应用程序

如果您想看一下我们的插件,可以查看 working-hours-plugin 的仓库。只需阅读 README 文件,即可运行 working-hours-plugin 的副本。

截图

当前的插件外观有点简单,插件使用起来有些不便。比如说如果我们要输入排除的日期,它将是一个恒定格式的字符串,例如 15/9/2019,但是新的用户界面选择了 React,因此我们可以使用日期选择器进行改进。

当前插件

新版时间范围选择器

新版排除日期

帮助链接

如果您有任何疑问或建议,我们很高兴收到您的来信。下面列出了几个有用的链接:

  • Develop Repo
  • Main Repo
  • Design Doc
  • Doc for React Integration Solution
  • Gitter Chat
  • Slides for Phase 1 Demo
  • Video Recording for Phase 1
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Jenkins 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一阶段的成就
  • 我们如何将 React 集成到 Jenkins 中
  • 运行我们的应用程序
  • 截图
  • 当前插件
  • 新版时间范围选择器
  • 新版排除日期
  • 帮助链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档