Tuleap 您所在的位置:网站首页 listent中文翻译 Tuleap

Tuleap

2023-03-22 11:12| 来源: 网络整理| 查看: 265

What it is? Tuleap 核心系统是基于 LAMP 并且架构于 CentOS 之上。如今的开发栈是 AngularJS (v1)、REST 后端(PHP)、基于 NodeJS 的实时推送服务器。Eclipse 基金会使用 Tuleap 取代了 Bugzilla,Tuleap 是一个独特的开源项目管理工具,目前发展势头很好,现在,每个月它会出一个大版本。基于 GPLv2 协议,它提供了一个集中化的平台,在这里,团队可以找到他们所需的所有工具,追踪他们软件项目的生命周期。他们可以找到项目管理(Scrum、看板、瀑布、混合等等)、源码控制(git 和 svn)和代码审查(pull 请求和 gerrit)、持续集成、问题跟踪、wiki 和文档等的支持 The Primary Target

本次预研的目标是什么?

基本掌握Tuleap的使用方法流程。摸清程序架构和运行环境根据程序提供的Rest Api接口,分析出哪些接口能和我们目前Cicd的流程相结合?是否可以和Jenkins集成,如何集成?是否可以通过任务卡片的操作实现与Jenkins的交互,如果可以,是怎样的流程?是否可以把本次Tuleap的接口预研项落地到敏捷管理环节中?如何落地? How to use ?

架构概览

基于LANP(老版本是Apache目前换成了Nginx),目录清晰。

在这里插入图片描述

程序安装

安装起来相对容易一些,参照官方文档就基本没什么问题,建议仔细阅读。

https://docs.tuleap.org/installation-guide/full-installation.html

安装后,能够正常打开访问即可。

插件安装

首先也是要参照官方文档,写的比较详细 :https://docs.tuleap.org/installation-guide/install-plugins.html

其次就是看我的文档,先看一下目前默认安装了哪些插件?

yum list tuleap-*

为了避免再次踩坑,咱直接晒出家底,这是目前我已经配置安装的插件,具体根据自己需求安装。

在这里插入图片描述

安装后的更新插件命令

# On RHEL/CentOS 7 yum install tuleap-plugin-XXX(上述列表插件名) /usr/share/tuleap/tools/utils/php73/run.php --module=nginx systemctl reload nginx systemctl restart tuleap-php-fpm

安装后要在插件管理处,启用一下

在这里插入图片描述

Tuleap SSL Configuration

Nginx 主要配置参考,默认安装 /etc/nginx/conf.d/tuleap.conf

upstream tuleap-apache { server 127.0.0.1:8080; } upstream tuleap-php-fpm { server 127.0.0.1:9000; } upstream tuleap-php-fpm-long-running-request { server 127.0.0.1:9002; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name 172.17.162.164; ssl_certificate /home/cert164.crt; ssl_certificate_key /home/cert164.key; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; # Tweak to your needs ssl_protocols TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # Tweak for file upload and SVN client_max_body_size 256M; include conf.d/tuleap.d/*.conf; } server { listen 80; listen [::]:80; server_name 172.17.162.164; location / { return 301 https://$server_name:443$request_uri; } } Jenkins Integration

集成后我们可以实现哪些CICD功能?

通过Tuleap中Git Repository的代码提交可以自动触发Jenkins的Job Building。

Tuleap -> Jenkins Job索引功能,可以在任务卡片上配置#jobname来实现触发。

持续集成功能比较多,具体参考:https://docs.tuleap.org/user-guide/ci.html#continuous-integration-service-in-tuleap

仔细阅读官方配置文档

https://docs.tuleap.org/user-guide/ci.html#jenkins-configuration

Tuleap与Jenkins集成必须要通过服务端建立SSL通信才可以,文档中的Attention这三项需要留意,避免后续踩坑。

在这里插入图片描述

配置Jenkins服务器的SSL

如果你已经配置过了,那么请直接跳过,如果没配置过,可参考以下文档或者Tuleap的官方文档 https://medium.com/@sportans300/nginx-reverse-proxy-with-https-466daa4da4fc

Nginx SSL 主要配置参考

server{ listen 443 ssl default_server; server_name 172.17.162.163; ssl_certificate /home/server.crt; ssl_certificate_key /home/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # Nginx configuration specific to Jenkins # Note that regex takes precedence, so use of "^~" ensures earlier evaluation location ^~ /jenkins/ { # Convert inbound WAN requests for https://domain.tld/jenkins/ to # local network requests for http://10.0.0.100:8080/jenkins/ proxy_pass https://127.0.0.1:1443/jenkins/; # Rewrite HTTPS requests from WAN to HTTP requests on LAN proxy_redirect http:// https://; # The following settings from https://wiki.jenkins-ci.org/display/JENKINS/Running+Hudson+behind+Nginx sendfile off; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; # This is the maximum upload size client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_temp_file_write_size 64k; # Required for new HTTP-based CLI proxy_http_version 1.1; proxy_request_buffering off; proxy_buffering off; # Required for HTTP-based CLI to work over SSL } }

Jenkins需要安装以下插件

Tuleap-api (这个是依赖项) Tuleap Git Branch Source Tuleap Authentication

Tuleap服务器的SSL证书常规套路配置即可,需要注意的是,需要把证书的扩展信息SubjectAlternativeName中加入IP地址

//查看jks证书命令 keytool -v -list -keystore cert164.jks -alias cert164 -keypass 123456 -storepass 123456 //回显信息 Keystore type: jks Keystore provider: SUN Your keystore contains 1 entry Alias name: cert164 Creation date: Aug 25, 2020 此处省略10万字… Extensions: #1: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: A5 80 CA 69 1C FE 33 34 9E 54 FA 2C 67 D9 E0 63 …i…34.T.,g…c 0010: A4 90 51 06 …Q. ] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.17 Criticality=false SubjectAlternativeName [ IPAddress: 172.17.162.164 ] #4: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: A5 80 CA 69 1C FE 33 34 9E 54 FA 2C 67 D9 E0 63 …i…34.T.,g…c 0010: A4 90 51 06 …Q. ] ] 重点看这块儿,携带扩展信息中需要配置IP字段~ SubjectAlternativeName [ IPAddress: 172.17.162.164 ]

配置好crt和jks证书后,携带Tuleap服务器生成的jks证书重新启动Jenkins

nohup java -jar jenkins.war \ --httpPort=-1 \ --httpsPort=1443 \ --httpsKeyStore=/home/cert164.jks \ --httpsKeyStorePassword=123456 \ --prefix=/jenkins \ > /home/server.log 2>&1 &

测试下Jenkins和Tuleap服务器之间的SSL双向交互是否OK

openssl s_client -connect 172.17.162.164:443 curl -v https://172.17.162.164

交互通了的话,使用上述curl -v命令会看到类似这样的证书和握手信息

--- SSL handshake has read 1435 bytes and written 425 bytes Verification: OK --- New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES256-GCM-SHA384 Session-ID: 3329E99031C29822CDDA223E775C9EF2E5F7B99418B3333A98458D11277797AD Session-ID-ctx: Master-Key: 0D677D6F809D0DF9F1E70FBB2191794A63072A79A6314415643ED4254BEC92110029FFF82B6A8ED905E7D1E079E1EDF7 PSK identity: None PSK identity hint: None SRP username: None Start Time: 1598879871 Timeout : 7200 (sec) Verify return code: 0 (ok) Extended master secret: no --- read:errno=0 [root@master1 etc]# curl -v https://172.17.162.164 * Rebuilt URL to: https://172.17.162.164/ * Trying 172.17.162.164... * TCP_NODELAY set * Connected to 172.17.162.164 (172.17.162.164) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * ALPN, server accepted to use h2 * Server certificate: * subject: C=CN; ST=private; L=Tianjin; O=Tianjin; CN=172.17.162.164 * start date: Aug 25 13:38:09 2020 GMT * expire date: Aug 25 13:38:09 2022 GMT * subjectAltName: host "172.17.162.164" matched cert's IP address! * issuer: C=CN; ST=private; L=Tianjin; O=Tianjin; CN=172.17.162.164 * SSL certificate verify ok.

正常集成后,Jenkins插件中直接配置Tuleap的Url后,会这样显示。

在这里插入图片描述

Congratulations! 看到上述此消息后,Tuleap和Jenkins的集成配置顺利通关。

RestApi Usage

接口演示的SwaggerApi地址

https://172.17.162.164/api/explorer

任务卡片移动接口模拟测试

Step1: Tuleap生成本地访问Token

https://172.17.162.164/api/tokens

在这里插入图片描述

Step2: 移动任务卡片artifacts/20(携带Token),此操作会把任务卡片artifacts=20的项目移动到136的位置上,大概可理解为『Review』->『OnGoing』

https://172.17.162.164/api/artifacts/20

在这里插入图片描述

在这里插入图片描述

Step3: 系统演示

系统演示,调用Api接口前:

在这里插入图片描述

- 系统演示,调用Api接口后:

在这里插入图片描述

**What about the value? **

敏捷看板任务联动Jenkins,开发人员想要完成卡片任务的时候,先经过Jenkins自动编译构建,如果成功则进入评审阶段,如不成功,则自动回退到进行中。

Tuleap中的任务可以任意链接Jenkins的Job,实现在看板管理的任意阶段通过Jenkins触发某些项目代码的构建、测试、部署等操作。

测试人员可提前编写测试脚本,通过Tuleap的Task 直接触发测试脚本运行,通过测试结果来自动判断该任务是否可以通过自动化测试。

To be continue …



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有