我有一个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的文档重读并没有注意到任何不同的东西,但我觉得某些东西必须在某些时候发生变化,或者我错过了一些非常明显的东西。
答案 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构建日志。