记忆一隅

使用Coding的构建(持续集成CI)功能实现coding仓库和github的同步

2020-04-11 · 2 min read
Gridea

今天想用coding和github进行国内国外的双线部署,虽然最后因为证书没有实现,但是在这个过程中发现使用构建功能进行仓库同步体验很不错,这里我用gridea发布博客文章之后,内容推送到coding仓库的master分支后,触发同步,就会自动同步到github。
能够解决的问题:

  1. 国内访问github速度过慢的问题,先同步到coding,再利用coding的服务器往github同步,速度更快。
  2. 使用gridea发布文章内容后,可以将内容自动同步到oss,cos,uss等网络存储上。

coding的持续集成使用的是Jenkinsfile实现的pipeline,可以根据自己的需要定制功能,这里我写一写coding和github同步的方法。

  • 在项目中选择构建
  • 点击新建构建配置
  • 设置使用静态的Jenkinsfile配置后保存
  • 编写实现脚本

    这里我给出实现coding与github同步的脚本内容,使用时需要将用户名token仓库名进行对应更改后保存即可:
pipeline {
  agent any
  stages {
    stage('检出') {
      steps {
        checkout([
          $class: 'GitSCM',
          branches: [[name: env.GIT_BUILD_REF]],
          userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]
        ])
      }
    }
    stage('推送部署') {
      steps {
        echo '正在推送文件...'
        sh 'git fetch https://用户名:token@github.com/用户名/仓库名.git'
        sh 'git push -f https://用户名:token@github.com/用户名/仓库名.git HEAD:master'
        echo '已完成文件推送.'
      }
    }
  }
}
  • 默认情况是代码推送到master分支时触发,在以上内容编写保存完成后,可以进行一次仓库同步或者手动触发一次构建,测试功能是否正常。如果需要同步到其他地方,则需要对脚本进行修改。