同步代码至另一个项目的drone
插件,主要操作:拉取指定仓库后拷贝代码至相应目录并提交推送。
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": "[email protected]"}' \
-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: "[email protected]"
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: "[email protected]"
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: "[email protected]"
git_ssh: /ssh/keys/id_rsa
volumes:
- name: sshkeys
host:
path: /ssh/keys/
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 设置,目前只支持设置name 和email ,接受格式:{ name: '[yourname]', email:'[[email protected]]' } |
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,用于加快仓库拉取。 |
docker build -t lpreterite/drone-plugin-git-sync .
from_secret
作用的参数需要在 drone 版面下找到SETTINGS->Secrets
进行添加