amazon-s3 - travis-ci 中的 Yeoman 项目无法将 dist 目录部署到 S3

标签 amazon-s3 gruntjs yeoman travis-ci yeoman-generator

我有一个 yeoman项目(webapp 生成器),并使用以下 travis-ci 配置:

language: node_js  
node_js:
- '4.1'
before_script:
- gem install compass
- npm install
- npm install bower
- bower install
- npm install grunt-cli
- grunt build
deploy:
  provider: s3
  access_key_id: AKIAIOVIOPLVOEVHJUQA
secret_access_key:
secure: HhLo08go5z+PBZkimdgLoTBBXQPzw0B1P2WHWmqtZ/H9RzGc7IUFE/6ubnewlyqy6Baa3mumcQ2A24lm98/ZZt8GZ+usI8dDF9maGVCFq2R53G1Rir+HleDVtkm/xGrxpvtLn/x+4QNselt2F6oODGNpmgGumaqMiabMm59ABw4CV3TULvWz1CKg/BC/YTVz58Equ0MhIZIk6igjc1PgOEiXfsKlBGVI5///MqjsuYB/6dtlrhzxPSpdGucnU0lmW+0TDzkX9WyEJPeDjTVLYNiviZmKIPw0fofc3BGCZs6QEibAFkJ40JF8CCzC3JdcV0vj7PFe5LEtWd+LGW+gew5HjVGcPkOtGwi8npTmHOlTZJRgrFySdJe6fy8N3we2Ht194GqPnJx8/D/F0p1fNq8/KujxQZX6L5BJNfO5a9iYgyD3q/cWBbxj2VIbYkrZAKK8LtnXrzXY+owmQYLiENB47atiwtJBg2ZoSsBw8ANR1RWSlyymdbwvoBxKUoZ324MO2l3yrAndheS1S4hauRs6bk52obcPUKMFkW+1/sDbxf15JcMhi48RN1jcDGSpHKqm7zHlfd2BfJC3U+tCRchD0gLYmgZBNhsL4sVyil4/0/lWALm10En1eDD8tvssCadnRRllbVIqIyx3UcKJC+JwymvtUatwHBW61ZzQyfA=
    bucket: www.raeprojects.org
    local-dir: dist
    acl: public_read
    on:
      repo: raeprojects/www-raeprojects-org

我正在尝试将 dist 目录(由 grunt build 任务创建)部署到 S3 .除了部署阶段,一切似乎都很好,travis ci 无法找到 dist 目录并返回此错误消息:

Deploying application
Already up-to-date!
# HEAD detached at 114e66f
nothing to commit, working directory clean
Dropped refs/stash@{0} (7986ed431f2b3467e1369af81ef95256d352c571)
/home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-        1.8.11/lib/dpl/provider/s3.rb:47:in `chdir': No such file or directory - dist (Errno::ENOENT)
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.11/lib/dpl/provider/s3.rb:47:in `push_app'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.11/lib/dpl/provider.rb:145:in `block in deploy'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.11/lib/dpl/cli.rb:41:in `fold'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.11/lib/dpl/provider.rb:145:in `deploy'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.11/lib/dpl/provider/s3.rb:73:in `deploy'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.11/lib/dpl/cli.rb:32:in `run'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.11/lib/dpl/cli.rb:7:in `run'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/gems/dpl-1.8.11/bin/dpl:5:in `<top (required)>'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/bin/dpl:23:in `load'
    from /home/travis/.rvm/gems/ruby-1.9.3-p551/bin/dpl:23:in `<main>'

部署失败

我对 gulp-webapp 生成的不同项目也有同样的问题发电机 。这是该项目的 .travis.yml 中的 spinet:

 . . . . . . 
 before_script:
 - npm install
 - npm install -g bower
 - bower install
 - gulp build
 . . . . . . . 

有人可以帮忙吗?

最佳答案

最后我想通了 travis-ci默认情况下在运行 npm test 后清理工作区(删除 dist/ 目录)。我找到了一个选项来指示 travis-ci no 清理工作区。我将 skip_cleanup: true 添加到 .travis.yml 并且工作正常。这是我编辑的 .travis.yml 文件:

deploy:
   . . . . . . .
  bucket: www.raeprojects.org
  local-dir: dist 
  skip_cleanup: true  // insures dist/ dir not to be deleted after npm test
  acl: public_read
  . . . . . 

关于amazon-s3 - travis-ci 中的 Yeoman 项目无法将 dist 目录部署到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34183506/

相关文章:

amazon-web-services - AWS CLI中的SSL CERTIFICATE_VERIFY_FAILED

javascript - Grunt 设置任务选项并使用新值运行该任务

angularjs - 找不到本地 Npm 模块 "grunt-legacy-util"。安装了吗?

node.js - Yeoman npm 在 Windows 上安装失败

android - Amazon S3 托管的视频无法在 iPhone 浏览器上播放,但可以在 Android 上播放

bash - Shell脚本突然停止工作

gruntjs - grunt-cli 安装问题

gruntjs - Grunt jade 编译器填写空属性

javascript - 如何使用自耕农生成器的分支

golang s3 使用 s3manager.downloader 下载到缓冲区