Travis跳过S3部署,因为不允许分支

时间:2017-09-29 04:31:48

标签: amazon-s3 travis-ci

我有一个Travis构建的新问题。简而言之,我的.travis.yml文件包含:

deploy:
  provider: s3
  access_key_id: mYacc3ssKeyID
  secret_access_key:
    secure: mYacc3ssKey
  bucket: my-bucket-staging
  skip_cleanup: true
  local_dir: dist/
  acl: public_read
  on:
    branch: staging

deploy:
  provider: s3
  access_key_id: mYOtheracc3ssKeyID
  secret_access_key:
    secure: mYOtheracc3ssKey
  bucket: my-bucket
  skip_cleanup: true
  local_dir: dist/
  acl: public_read
  on:
    branch: master

直到8月16日,此设置按预期工作(暂存分支部署到my-bucket-staging存储桶,主分支部署到my-bucket存储桶,所有其他分支都被忽略)。我的.travis.yml文件自7月13日以来未发生更改,但staging分支已于8月16日停止部署,并显示消息Skipping a deployment with the s3 provider because this branch is not permitted。我的上一次成功部署是在8月15日。

还值得注意的是,主部署仍然按预期工作,它只是我遇到问题的暂存分支。

因为我没有改变任何东西(staging分支是同一个分支,.travis.yml文件是相同的等等),我想知道Travis是否有变化我错过了?有谁知道为什么这(似乎)会停止工作?

我通过Travis的文档重读并没有注意到任何不同的东西,但我觉得某些东西必须在某些时候发生变化,或者我错过了一些非常明显的东西。

1 个答案:

答案 0 :(得分:1)

上述YAML段定义了两个相同的键deploy,因此只有最后一个键有效;这意味着,就on.branch: staging而言,没有使用.travis.yml定义的部署提供程序。

如果要定义2个在不同分支上工作的部署提供程序,则需要deploy下的2元素数组:

deploy:
  - provider: s3
    access_key_id: mYacc3ssKeyID
    secret_access_key:
      secure: mYacc3ssKey
    bucket: my-bucket-staging
    skip_cleanup: true
    local_dir: dist/
    acl: public_read
    on:
      branch: staging
  - provider: s3
    access_key_id: mYOtheracc3ssKeyID
    secret_access_key:
      secure: mYOtheracc3ssKey
    bucket: my-bucket
    skip_cleanup: true
    local_dir: dist/
    acl: public_read
    on:
      branch: master

我不清楚如何按照原来的配置进行操作。我很想看到正在运行的Travis CI构建日志。