最近把一个项目里的部分库通过git子模块的方式进行维护,然后在使用drone自动构建的时候踩了不少坑,在这里做个记录
steps:
- name: submodules
image: alpine/git
environment:
SSH_PRIVATE_KEY:
from_secret: ssh_key
commands:
- sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
- 'which ssh-agent || ( apk update && apk --no-cache add openssh-client)'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" > deploy.key
- chmod 0600 deploy.key
- ssh-add deploy.key
- mkdir -p ~/.ssh
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- git submodule update --init --recursive
我使用的是gitea,其它的应该是差不多的意思,这里的ssh_key是你个人访问git服务的私钥文本