运维相关 · 2022年12月1日 0

git submodule在drone自动构建的处理方法

最近把一个项目里的部分库通过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服务的私钥文本