CI/CD#01。詹金斯(Jenkins):手动克隆python github repo并运行pytest。
#python #cicd #pytest #jenkins

手册,在本文的上下文中,意味着我们必须在jenkins UI上单击某些内容才能使构建启动。

我在Ubuntu 22.10上安装了Jenkins 2.388 LTS。安装过程非常简单,我在本文的最后一部分中包括安装说明。

成功安装和运行后,我们可以在http://<machine-ip-address><machine-name>:8080上访问Jenkins前端。就我而言,从Windows 10,http://hp-pavilion-15:8080/或Ubuntu 22.10上安装了Jenkins,http://localhost:8080

像往常一样,我在获得第一个项目之前已经失败了几次。我正在记录我在这篇文章中学到的知识,所以这绝不是教程。我打算在我继续前进时写更多,所以这就是为什么 ci/cd#01 在标题中。

我要回到这个帖子的https://github.com/behai-nguyen/app-demo.git回购。我们将设置一个Jenkins项目,以执行引言中概述的四(4)个步骤。让我们开始吧。

¶使用Admin用户名和密码作为安装的一部分登录詹金斯。单击仪表板位于左上角的上角;然后单击+新项目

â·下一页:

  • 输入项目名称app_demo-此名称与项目的目录名称匹配。 (事后看来,回购的名称应该是app_demo而不是app-demo!)
  • 然后选择第一个选项Freestyle project
  • 最后,单击OK按钮以移至配置页面。

配置页面:

  • 一般下,输入对Description的有意义的东西,例如: 尝试jenkins on app-demo repo。
  • 源代码管理
    • 选择Git。然后,
    • 对于存储库URL ,请输入https://github.com/behai-nguyen/app-demo.git。由于这是公共回购,任何人都可以克隆它,我们不需要任何凭据就可以访问它。
    • 对于分支指定符('任何Any'),请输入*/main-因为我们对此仓库的主要分支感兴趣。
  • 向下滚动,在下构建步骤下,下拉添加构建步骤,然后选择Execute shell。输入以下内容:
    			pyenv_home = $ workspace/venv
    			#删除以前构建的Virtualenv
    			如果[-d $ pyenv_home];然后
    			RM -RF $ pyenv_home
    			fi
    			#创建Virtualenv并安装必要的软件包
    			virtualenv $ pyenv_home
    			。 $ pyenv_home/bin/activate
    			$ pyenv_home/bin/pip安装-e。
    			$ pyenv_home/bin/pytest
    			

    该脚本首先删除现有的虚拟环境;创建一个新的;激活它;然后编辑安装所有必需的软件包;最后,运行Pytest

    请注意,由于脚本的工作原理,它可以根据项目中的包含多少个软件包来使用大量数据。

  • 最后,单击Save按钮以移至项目页面。左上角的面包屑现在应该显示Dashboard > app_demo >

下面仪表板,第四个(第四个)是▷ Build Now。单击▷ Build Now构建!

有了一点运气,它应该成功构建,屏幕应该看起来像:

055-01.png

构建历史记录的下面,在#1之前有一个绿色滴答,这表明这种构建已成功。如果发生故障,则是红色X。无论哪种情况,单击#1,都将转到“构建详细信息”屏幕,然后在左侧,单击Console Output将显示构建的完整日志,这非常丰富。关于失败,我能够使用这些信息来摆脱问题。

- 让我们看一下磁盘上发生的情况。詹金斯的工作目录是
/var/lib/jenkins/workspace/

055-02.png

app_demo可以在列表的顶部看到,它是詹金斯在构建过程中创建的。它准备使用Python开发环境。让我们去吧,激活虚拟环境:

$ cd /var/lib/jenkins/workspace/app_demo/
$ source venv/bin/activate

成功激活了虚拟环境:

055-03.png

让我们运行Pytest。所有测试都应该通过:

$ venv/bin/pytest

055-04.png

所有测试都应该如此。停用虚拟环境:

$ deactivate

教程参考

  1. Jenkins and Python.
  2. YouTube: How Do I Run a Python Script From Jenkins Pipeline?

詹金斯安装

我尝试在我的Ubuntu 22.10上安装Jenkins三(3)次,一切都顺利进行。但是所有人都没有开始。我使用的最后一个安装说明是来自此链接https://community.jenkins.io/t/ubuntu-20-04-initial-jenkins-startup-failure/1419-马克·怀特先生的答案 - 詹金斯治理委员会。

基本上,一个接一个地运行这些命令:

$ sudo apt-get install openjdk-11-jdk-headless
$ curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
$ echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
$ sudo apt-get update
$ sudo apt-get install jenkins

,但它仍然无法启动。我忘记了我已经为Apache2设置了端口8080 。我释放了端口 8080 ,然后用:
开始詹金斯

$ systemctl start jenkins.service

,它从没有问题开始。我猜前两个装置也成功了。但现在没关系。

成功安装后,我们需要进行一些初始配置。我刚刚遵循了这篇Digitalocean文章How To Install Jenkins on Ubuntu 22.04的指示。

我们可以在http://<machine-ip-address><machine-name>:8080访问Jenkins的前端。就我而言,从Windows 10,http://hp-pavilion-15:8080/或Ubuntu 22.10上安装了Jenkins,http://localhost:8080

€â€

我喜欢詹金斯,这是有道理的。我曾在构建服务器和单元测试服务器是两台VMware机器的环境中工作。构建过程是使用Windows PowerShell脚本编写的,它还从内部安装的源代码管理软件中获取源代码。詹金斯(Jenkins)提供了相同的功能,但过程似乎更简单。希望您发现信息有用。感谢您的阅读并一如既往地保持安全。