Skip to content

lpreterite/drone-plugin-git-sync

Repository files navigation

drone-plugin-git-sync

Docker Automated build

同步代码至另一个项目的drone插件,主要操作:拉取指定仓库后拷贝代码至相应目录并提交推送。

Usage

Execute from the working directory:

MSYS_NO_PATHCONV=1 docker run --rm \
    -e PLUGIN_GIT_USERNAME="packy-tang" \
    -e PLUGIN_GIT_PASSWORD="******" \
    -e PLUGIN_GIT_CONFIG='{"name": "packy-tang", "email": "xxx@xxx.com"}' \
    -e PLUGIN_REPOSITORY='{"url":"https://github.com/lpreterite/drone-plugin-git-sync.git", "branch":"master"}' \
    -e PLUGIN_COPY=dist:public2,dist/index.html:resources/views/index.php \
    -v $(pwd):$(pwd) \
    -w $(pwd) \
  lpreterite/drone-plugin-git-sync

The setting in drone plugin:

kind: pipeline
name: default

setps:
    - name: git-sync
      image: lpreterite/drone-plugin-git-sync
      settings:
          overwrite: "true"
          copy:
              - "dist:public"
          repository:
              url: https://github.com/lpreterite/vue-tinymce.git
              branch: master
          git_config:
              name: "Packy-tang"
              email: "lpreterite@126.com"
          git_username:
              from_secret: username
          git_password:
              from_secret: password

Use ssh and set ssh_key:

kind: pipeline
name: default

setps:
    - name: git-sync
      image: lpreterite/drone-plugin-git-sync
      settings:
          overwrite: "true"
          copy:
              - "dist:public"
          repository:
              url: ssh://github.com/lpreterite/vue-tinymce.git
              branch: master
          git_config:
              name: "Packy-tang"
              email: "lpreterite@126.com"
          git_ssh_key: 
              from_secret: ssh_key

Use ssh:

kind: pipeline
name: default

setps:
    - name: git-sync
      image: lpreterite/drone-plugin-git-sync
      volumes:
          - name: sshkeys
            path: /ssh/keys/
      settings:
          overwrite: "true"
          copy:
              - "dist:public"
          repository:
              url: ssh://github.com/lpreterite/vue-tinymce.git
              branch: master
          git_config:
              name: "Packy-tang"
              email: "lpreterite@126.com"
          git_ssh: /ssh/keys/id_rsa

volumes:
    - name: sshkeys
      host:
          path: /ssh/keys/

Options

env yml
PLUGIN_DEBUG debug boolean ,默认为false ,开启后能打印调试用信息。
PLUGIN_CWD cwd string, 仓库下载处理目录,默认为./tmp/
PLUGIN_OVERWRITE overwrite boolean, 拷贝文件时是否复写文件,默认为"true"
PLUGIN_REPOSITORY repository json, 仓库信息,默认为{"url":"[Repository Url]", "branch":"master", "commit_label": "update by drone"}
PLUGIN_COPY copy array, 拷贝文件的设置,设置方式为:"[source path]:[target path]"
PLUGIN_GIT_CONFIG git_config json, git 设置,目前只支持设置nameemail,接受格式:{ name: '[yourname]', email:'[yourname@mail.com]' }
PLUGIN_GIT_USERNAME git_auth_username string, 仓库授权的账户,用于 http 方式 push 仓库时使用
PLUGIN_GIT_PASSWORD git_auth_password string, 仓库授权的密码,用于 http 方式 push 仓库时使用
PLUGIN_GIT_SSH git_ssh string, 仓库授权私钥地址,用于 ssh 方式 push 仓库时使用
PLUGIN_GIT_SSH_KEY git_ssh_key string, 仓库授权私址,用于 ssh 方式 push 仓库时使用。
PLUGIN_GIT_CLONE_DEPTH git_clone_depth number,默认值为1, 拉取仓库时保留历史数目,默认设置1,用于加快仓库拉取。

Build

docker build -t lpreterite/drone-plugin-git-sync .

from_secret作用的参数需要在 drone 版面下找到SETTINGS->Secrets进行添加

About

同步代码至另一个项目的`drone`插件

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published