【问题标题】:Drone CI does not see secret variables when using drone-email plugin使用无人机电子邮件插件时,无人机 CI 看不到秘密变量
【发布时间】:2017-09-20 02:46:41
【问题描述】:

我使用drone-ci (0.8.0-rc.5) 作为CI 工具和drone-email 插件用于发送电子邮件。如果构建成功或失败,我想发送通知。我使用 Gmail SMTP 服务器发送电子邮件。

我的 .drone.yml 文件:

notify:
  image: drillster/drone-email
  host: ${EMAIL_HOST}
  port: ${EMAIL_PORT}
  username: ${EMAIL_USERNAME}
  password: ${EMAIL_PASSWORD}
  from: test@test.com
  recipients: [ user@test.com ]

Secrets 的配置如下图所示: 构建完成后,我收到以下异常:

time="2017-09-20T02:14:10Z" level=error msg="Error while dialing SMTP server: dial tcp :587: getsockopt: connection refused" dial tcp :587: getsockopt: connection refused

当我在 yml 文件中硬编码值时,通知会起作用。所以我想知道我在秘密方面做错了什么或如何解决这种情况?

【问题讨论】:

    标签: docker drone.io


    【解决方案1】:

    您使用的语法 ${secret} 在无人机 0.6 中已弃用,并替换为以下语法:

    pipeline:
      notify:
        image: drillster/drone-email
        from: test@test.com
        recipients: [ user@test.com ]
        secrets: [EMAIL_HOST, EMAIL_PORT, EMAIL_USERNAME, EMAIL_PASSWORD]
    

    上述语法指示无人机向插件提供请求的秘密。这些秘密作为环境变量暴露在容器中并由插件使用。

    进一步阅读

    【讨论】:

    • 布拉德,这行得通,谢谢。在哪种情况下写入机密是否重要?当我在 Web UI 中添加机密时,它们总是变成小写。
    • 秘密不区分大小写
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2010-12-07
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多