Linux服务器Ubuntu上搭建Jenkins+Pytest+Gitee+Allure自动化

2023-05-16

一.安装Jenkins和Java

Jenkins 是一个开源自动化服务器,它可以自动执行软件持续集成和交付中涉及的重复性技术任务。Jenkins 易于安装且基于 Java,此外,可以使用 Web 界面轻松配置。

在Ubuntu Server 22.04 LTS 64bit上安装Jenkins

安装依赖

首先通过在终端中运行以下命令,确保所有系统包都是最新的.

sudo apt update     # 刷新软件包目录
sudo apt upgrade    # 升级软件包
sudo apt install software-properties-common apt-transport-https wget ca-certificates gnupg2 ubuntu-keyring           # 安装依赖

安装 Java

sudo apt install default-jre     # 安装OpenJDK,该命令将安装Java运行时环境(JRE)。这将允许你运行几乎所有的Java软件。
sudo apt install default-jdk     # 安装JDK
sudo update-alternatives --config java     # 验证安装
java -version     # 验证安装

*也可以选择自己需要的版本去进行安装

javac     # 查看可安装的jdk版本
sudo apt install openjdk-11-jdk-headless  # 我这边选择11的版本进行安装

环境配置

sudo vim /etc/profile   # 打开终端窗口进行添加环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile    # 环境变量配置好后使其生效

jenkins配置

运行以下命令将 Jenkins 存储库添加到您的 Ubuntu 系统:

echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list

导入 GPG 密钥:

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

启用存储库后使用以下命令安装最新版本的 Jenkins:

sudo apt update      # 列出所有可更新的软件清单命令
sudo apt install jenkins     # 安装jenkins

启动并使用以下命令验证状态:

sudo systemctl enable jenkins     # 设置自启动, 启用 Jenkins(在系统启动时自动启动)
sudo systemctl start jenkins      # 启动Jenkins
sudo systemctl status jenkins     # 查看Jenkins状态

配置防火墙

在服务器管理后台配置防火墙8080

通过端口启用连接8080

sudo ufw allow 8080      # 打开端口8080
sudo ufw allow OpenSSH   # 允许SSH连接 启用
sudo ufw enable          # 启用防火墙
sudo ufw status          # 显示所有已启用的规则,包括允许和拒绝的端口以及来自特定 IP 地址的流量

访问Jenkins Web 界面

打开系统上的 Web 浏览器并在地址栏中输入服务器的 IP,您将获得默认的 Jenkins 页面:

http://your-server-ip-address:8080

使用以下命令查找Jenkins管理员密码:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

二.安装Git

Git 分布式版本控制系统对于现代软件开发至关重要。它可以创建文件和目录的备份版本,使我们可以跟踪更改并随时恢复到以前的阶段。

将软件项目的文件都保存在 GitHub、GitLab 和 Bitbucket 等 Git 存储库中,有助于促进软件开发项目的共享和协作。这篇指南讲解如何在 Ubuntu 20.04 上安装和配置 Git。

使用Apt安装Git

Git软件包包含在Ubuntu的默认存储库中,可以使用apt软件包管理器进行安装。

sudo apt update
sudo apt install git

查看安装版本

git --version

配置全局名称和邮箱

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

查看全局名称和邮箱

git config --list

生成ssh-keygen

cd ~/ && ssh-keygen -t rsa -C "你的邮箱"

第一个是生成路径,第二个是密码,第三个是确认密码,不设置密码一路回车即可。

查看

cd ~/.ssh
ls

将公钥文件(id_rsa.pub)内容复制到Gitee里的ssh密钥管理中就可以了。

三.安装Python

安装依赖

sudo apt update
sudo apt list --upgradable     #列出当前可用的更新
sudo apt upgrade     #上一步提示有可更新的项目则执行更新

安装 GCC 编译器

使用apt软件包管理器进行安装

sudo apt install gcc     #安装 GCC 编译器
gcc -v     # 检查安装是否成功,若显示出 GCC 版本则成功

安装其他依赖

sudo apt update     # 刷新软件包目录
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev     # 安装依赖

编译与安装

通过 wget下载安装Python

也可以在 Python 官网下载界面下载 Python 的源代码

sudo wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz
# 下载其他版本只需替换版本号数字我这里下载 Python 3.9.16

解压并进入该目录进行配置

tar -xf Python-3.9.16.tar.xz     # 解压
cd Python-3.9.16/     # 进入该目录

配置

sudo ./configure --enable-optimizations --with-lto --enable-shared      # 检查依赖与配置编译

配置项含义,更多配置项的信息可以请参阅 Python 官方文档。

--enable-optimizations:用 PROFILE_TASK 启用以配置文件主导的优化(PGO)
--with-lto:在编译过程中启用链接时间优化(LTO)
--enable-shared:启用共享 Python 库 libpython 的编译

编译

编译耗时较长,可以使用 -j 选项指定参与编译的 CPU 核心数,我的机器为 4 核 CPU:

sudo make -j 4     # 编译,-j 后面的数字为参与编译的CPU核心数,根据个人机器配置调整

安装二进制文件

sudo make altinstall

链接动态库

$ whereis libpython3.9.so.1.0     # 找到 libpython 的位置
libpython3.9.so.1: /usr/local/lib/libpython3.9.so.1.0
# 在 /usr/lib/ 下创建 libpython 的符号链接
$ sudo ln -s /usr/local/lib/libpython3.9.so.1.0 /usr/lib/

使用 Python 3.9

完成安装后,Python 3.9 会与系统原有的 Python 3.10 共存。由于 Ubuntu 系统、安装的其他软件等很可能会依赖于系统原有的 3.10,所以不要移除原有 Python 环境,也不要对 python3 等命令进行修改。

命令行使用

直接在命令行使用 python3.9 命令即可调用新安装的解释器:

$ python3.9     # 在命令行使用 Python 交互式解释器
$ which python3.9     # 查看该命令所在位置
/usr/local/bin/python3.9

使用 Python 3.9 的 pip 的命令为 pip3.9

$ pip3.9 -V     # 查看 pip3.9 版本

四.下载自动化项目依赖

更新pip3

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26     # 下载
tar -zxvf setuptools-19.6.tar.gz     # 解压
# 编译、安装
 cd setuptools-19.6/
 # 更新pip3
 pip3 install --upgrade pip

下载依赖

将程序requirements.txt打包上传到服务器并执行命令安装依赖

pip3 install -r requirements.txt

遇到安装不了的依赖可以进行手动安装

pip3 install 依赖包名==依赖版本号

卸载不需要的依赖

pip3 uninstall 依赖包名

五.安装Allure

Allure是一款轻量级并且非常灵活的开源测试报告框架。

Allure下载安装

allure下载地址(选择合适的下载):

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

使用命令下载(会下载在当前路径):

curl -O https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.20.1/allure-commandline-2.20.1.tgz

解压

tar -zxvf allure-commandline-2.20.1.tgz 

配置软链

cd allure-2.20.1/bin  # 进入解压后的文件夹
 pwd # 获取绝对路径/home/ubuntu/allure-2.20.1/bin
 sudo ln -s /home/ubuntu/allure-2.20.1/bin/allure /usr/bin/allure  #配置软链

配置环境变量

vim /etc/profile
# 在PATH后追加以下内容,保存
:$PATH:/home/ubuntu/allure-2.20.1/bin     # 在bin目录下输入pwd查看/home/ubuntu/allure-2.20.1/bin
source /etc/profile     # 使环境变量生效

验证安装是否成功

allure --version

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux服务器Ubuntu上搭建Jenkins+Pytest+Gitee+Allure自动化 的相关文章

  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • 如何在 Jenkins 构建之前自动合并 Git 分支?

    如何在 Jenkins 构建之前自动合并 Git 分支 我有 2 个版本 一个用于分支master和一个用于生产 我想做 Git 合并origin master当我进行生产构建时 Jenkins 上最新的 Git 插件支持这一点 刚刚设置C
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • NUMA 在虚拟内存中是如何表示的?

    有许多资源 https en wikipedia org wiki Non uniform memory access从硬件角度描述NUMA的架构性能影响 http practical tech com infrastructure num
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • 执行Jenkinsfile时如何获取管道配置字段“脚本路径”?

    如何从 Jenkinsfile groovy 获取 Jenkins 中管道配置字段 脚本路径 的内容 在此示例中 我想在执行 Jenkinsfile 本身时获取字符串 Apps mq logger Jenkinsfile 您可以通过这种方式
  • PyQt5 - 无法使用 QVideoWidget 播放视频

    from PyQt5 QtWidgets import from PyQt5 QtMultimedia import from PyQt5 QtMultimediaWidgets import from PyQt5 QtCore impor
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • GET 错误:ModuleNotFoundError:没有名为“api”的模块

    当我尝试运行 pytest 命令时出现错误 错误是当我在 docker 上运行应用程序时 当我在本地执行时 它可以工作 还有另一个好奇心 swagger 和 de requests 工作正常 只是测试文件不行 我已经尝试过 python m
  • 有人可以解释一下 Postgresql 角色、Postgresql 用户和 Linux 用户之间的关系吗?

    我正在尝试在 Ubuntu 14 服务器上设置 Postgres 9 3 此时我感到非常沮丧 我以前使用过 MySQL 所以我对一般数据库概念以及客户端 服务器模型等很满意 我从两个用户开始 root 和 sam 我 作为 sam 我使用
  • 当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)

    我需要做的是结合用户按下打印来执行 python 程序 脚本 并且在该程序退出之前不要让打印作业假脱机 原因是打印驱动程序不是开源的 我需要更改用户设置 在本例中是部门 ID 和密码 通常是每个用户 但因为这是一个信息亭 具有相同帐户的不同
  • 限制 Imagemagick 使用的空间和内存

    我在 Rails 应用程序上使用 Imagemagick 使用 rmagick 但我的服务器 Ubuntu 不是很大 当我启动转换进程时 Imagemagick 占据了我的服务器 30GB HDD 的所有位置 内存 我想限制内存和 tmp
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • Puppet 3 文件递归速度非常慢

    我在 Amazon Linux 2012 09 上使用 Puppet 3 我的清单之一设置并重新配置了一些目录 其中一项任务只是将文件夹所有者和组递归更改为另一个用户 然而 这需要 60 秒以上才能完成 并且目录中几乎没有任何内容 终端中的
  • uWSGI 皇帝权限被拒绝,除非 root

    我尝试使用二进制文件本身的标志 uid www data gid www data 并将其设置在我的配置中 uid www data gid www data 但套接字总是由我正在使用的帐户生成 因此我从 nginx 收到权限被拒绝的错误

随机推荐