kind: pipeline # 定义一个管道
type: docker # 当前管道的类型
name: build # 当前管道的名称

steps: # 定义管道的执行步骤
  # - name: build-project # 步骤名称
  #   image: node:18-bullseye # 当前步骤使用的镜像
  #   volumes:
  #     - name: node_modules
  #       path: /drone/src/node_modules
  #   commands: # 当前步骤执行的命令
  #     - pwd
  #     - npm config set registry https://registry.npm.taobao.org
  #     - npm i

  - name: build-image
    image: plugins/docker
    depends_on: [clone]
    settings:
      username:
        from_secret: docker_username
      password:
        from_secret: docker_passwd
      dockerfile: Dockerfile
      mirror: https://fpswa5tm.mirror.aliyuncs.com
      registry: https://git.liliyamol.cn:8081
      repo: git.liliyamol.cn:8081/mol/rss-server
      auto_tag: true

---
kind: pipeline # 定义一个管道
type: docker # 当前管道的类型
name: deploy # 当前管道的名称

depends_on:
  - build

clone:
  disable: true

steps:
  - name: deploy-project
    image: appleboy/drone-ssh
    settings:
      host:
        from_secret: host
      username:
        from_secret: server_username # 使用secrets
      key:
        from_secret: server_key
      port: 22
      command_timeout: 2m
      secrets: [docker_username, docker_passwd]
      script:
        - echo ==-----==开始部署==-----==
        - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWD git.liliyamol.cn:8081
        - docker pull git.liliyamol.cn:8081/mol/rss-server:latest
        - list=$(docker ps -a | grep rss_server* | awk '{print $1}')
        - test "$list" = "" && echo "none rss_server containers running" || docker stop $list && docker container rm $list
        # 过滤出dockerImages的id, 删除none镜像
        - docker run -d -e PYTHONUNBUFFERED=0 --name=rss_server git.liliyamol.cn:8081/mol/rss-server:latest
        - docker rmi $(docker images | grep "none" | awk '{print $3}')
        - echo ==-----==部署成功==-----==
