2.git配置和Jenkins拉通

pytest -gitee配置和Jenkins拉通

CICD架构图

图 11

图 12

gitee配置

1、需要自己申请账号

2、创建仓库

1、输入仓库名字,选择仓库类型,点击创建

图 13

2、根据提示进行仓库设置

图 14

3、在本地路径新建一个文件夹test_combat,然后右键git bash here

然后通过git init初始化一个本地仓库
图 15

4、创建一个文件,来做一个简单的测试


echo 'hello git' >>testcase.txt

### 5、如果不知道下一步要做什么操作,先使用git status命令

$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        testcase.txt

nothing added to commit but untracked files present (use "git add" to track)

gavin@LAPTOP-GPDG2OBO MINGW64 /d/git_demo/test_cmbot (master)

###  6、看到提示,需要做add操作,可以通过git add .  添加当前目录的文件到暂存区

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   testcase.txt


gavin@LAPTOP-GPDG2OBO MINGW64 /d/git_demo/test_cmbot (master)

### 7、提交到本地仓库

$ git commit -m 'new testcase'
[master (root-commit) ded8cb4] new testcase
 1 file changed, 1 insertion(+)
 create mode 100644 testcase.txt

### 8、使用git push提交到远程仓库

$ git push
fatal: No configured push destination.
Either specify the URL from the command-line or configure a remote repository using

    git remote add <name> <url>

and then push using the remote name

    git push <name>

###  9、提示没有远程仓库,因为我还没有关联远程仓库

关联远程仓库,使用仓库里面的提示命令即可
git remote add origin git@gitee.com:gavinxiexingfu/test_combat.git

### 10、查看远程仓库

$ git remote -v
origin  git@gitee.com:gavinxiexingfu/test_combat.git (fetch)
origin  git@gitee.com:gavinxiexingfu/test_combat.git (push)

###  11、推送本地仓库文件到远程仓库

$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 226 bytes | 45.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.0]
To gitee.com:gavinxiexingfu/test_combat.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.


刷新远程仓库页面,看到刚才推送成功的文件
图 16

Jenkins新建任务

新建试图,对任务进行管理

图 22

图 23

视图创建成功,进行任务过滤
输入正则表达式,点击保存
图 24

创建一个自由风格的项目:输入任务名称,选择自由疯狂,选择加入试图,点击ok
图 25

限制项目运行的节点,选择自己的标签
图 26

配置源码,复制git仓库ssh的地址,会提示无法连接仓库
图 27

需要用到私钥了

$ ls ~/.ssh
id_rsa id_rsa.pub known_hosts

图 28
~代表用户目录

输入用户名,id,描述,私钥,点击添加
图 29

点击刚才添加的凭证
图 30

点击保存

配置触发器,点击generic webhook trigger,配置token
图 31

复制URL,放到webhooks的钩子设置地方,地址要改成自己的
http://JENKINS_URL/generic-webhook-trigger/invoke

图 32

webhooks配置 网络钩子

远程仓库点击管理,选择webhooks
图 18

点击添加webhooks
图 20

图 33

gitee和Jenkins连通

源码管理,直接查看问题记录

方式一:构建触发器插件:Generic Webhook Trigger

选择触发插件,把地址复制到gitee的webhook中, http://JENKINS_URL,这段更改成内网穿透后的公网地址,输入token,点击保存
图 45

到gitee中设置webhook

图 43

方式二:构建触发器插件:Gitee webhook 触发构建

选择Gitee webhook 触发构建,把地址复制到gitee中,http://192.168.222.128:8080地址记得改成自己的公有地址,选择触发条件,点击保存
图 46

到gitee中设置webhook

图 42

问题记录

  • 1、Error 403 anonymous is missing the Job/Build permission

HTTP ERROR 403 anonymous is missing the Job/Build permission

URI: /gitee-project/test_free_style_demo1
STATUS: 403
MESSAGE: anonymous is missing the Job/Build permission
SERVLET: Stapler

  • 原因:Jenkins不允许没有登录的用户访问

  • 解决;Jenkins授权给任何用户
    图 41
    https://www.cnblogs.com/Dy1an/p/11202544.html

  • 2、git webhook报域名或者IP不存在,请输入包含正确的域名或公有IP的http地址

  • 3、Jenkins源码管理报错;
    无法连接仓库:Command "git ls-remote -h -- git@gitee.com:gavinxiexingfu/test_combat.git HEAD" returned status code 128:
    stdout:
    stderr: git@gitee.com: Permission denied (publickey).
    fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

  • 原因:未知

  • 解决:把ssh地址更换成https地址
    图 44

  • 4 error: failed to push some refs to 'git@gitee.com:******.git'

    • 原因:推送代码,远程仓库被使用了
    • 解决:git pull --rebase origin master
      接着输入git push -u origin master

参考文档:
https://gitee.com/help/articles/4193#article-header0

  • 5.生成allure报告失败

java.lang.NullPointerException
at ru.yandex.qatools.allure.jenkins.AllureReportPublisherDescriptor.getCommandlineInstallation(AllureReportPublisherDescriptor.java:112)
at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.getCommandline(AllureReportPublisher.java:346)
at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.generateReport(AllureReportPublisher.java:303)
at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.perform(AllureReportPublisher.java:231)
at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:99)
at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:69)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE

原因:发现全局工具里面没有安装allure命令
解决:安装allure命令,自动安装

图 71

  • 6 Jenkins获取远程仓库失败

无法连接仓库:Error performing git command: D:\soft\Git\cmd\git.exe ls-remote -h http://192.168.222.128:9001/root/gitlab_combat.git HEAD

图 72

原因;全局工具中我配置了本地的git安装路径
我的master节点是在Linux里面使用docker安装的
而子节点我使用的是Windows,当我把Windows的git安装命令放到路径下面,直接报错了,提示路径不存在,当我使用自动安装方式进行安装,安装成功还是获取仓库失败,百度了大半天,大部分文章都是直接把Linux里面的git路径放到路径中

图 74

我没有在Linux里面安装git,同时我是需要在Windows节点下使用Jenkins,实在没有招了,就来瞎搞,把git安装路径清空,保持默认,然后回到项目拉取仓库的地方,发现没有标红,而且构建成功了

删除已有的git安装

图 73

流水线中终于成功了

图 75

图 77

图 76

posted @ 2021-07-25 22:07  幸福一家  阅读(559)  评论(0编辑  收藏  举报