• 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:softGitcmdgit.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

  • 相关阅读:
    友盟—安卓巴士【Android开发原创教程大赛】
    iOS开发视频教程下载/iphone开发视频教程下载
    发一个Android开发的外包项目。欢迎外包团队来骚扰
    安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域
    安卓巴士精选Android开发教程
    做了一个系列的Android开发教程列表
    深刻理解C#的传值调用和传引用调用
    《CLR Via C# 第3版》笔记之(四) 类中字段的默认赋值
    《CLR Via C# 第3版》笔记之(七) const和readonly
    《CLR Via C# 第3版》笔记之(十二) 事件
  • 原文地址:https://www.cnblogs.com/xiehuangzhijia/p/15059206.html
Copyright © 2020-2023  润新知