zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/xiehuangzhijia/p/15059206.html
Copyright © 2011-2022 走看看