问题标签 [codeship]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ssh - Ansible 无法连接到 AWS EC2 实例
我正在尝试使用 Ansible 从 Codeship 构建连接到 AWS EC2 实例。这在另一个 AWS 区域(eu-west-1)中运行良好,但现在我想在 us-east-1 中设置服务器,但出现以下错误:
我可以使用这样一个简单的 ssh 命令连接,ssh ec2-user@ec2-52-11-9-45.compute-1.amazonaws.com
所以我很确定 ssh 密钥设置正确。唯一的区别是区域和 AMI,但 AMI 在这两种情况下都是 Amazon Linux。
有人可以告诉我问题或指出正确的方向吗?
git - 使用 Codeship 部署项目构建版本的正确方法是什么
目前我的部署如下所示:
提交本地更改后,我在本地运行一个 grunt 任务以将项目构建到一个
/dist
文件夹中。然后我将它们推送到 bitbucket。例如分支名称是功能/存款
在 Bitbucket 中,我将功能/存款合并到开发分支中,Codeship 构建开发分支(运行测试),然后执行以下代码:
ssh nodejs@12.345.67.891 'cd 项目/www; git结帐开发;git pull origin 开发;npm 安装;sudo monit restart project.app.js'
我不喜欢这种方法,因为对我来说,部署 Codeship 构建的东西会更有意义。Codeship 运行npm install
,我希望它运行我的grunt:build
任务,然后将其部署到我的生产服务器。
我发现一篇解决类似问题的文章并添加了 export CI_COMMIT_ID=$(git rev-parse HEAD) 任务。但我只是没有完全意识到我需要在我的部署脚本中用它做什么。此外,此示例与 heroku 一起使用,而在我的情况下,我使用自定义部署脚本。
我还找到了一个带有有用部署脚本的 github 存储库,这个可能适合我的需要。
但我想弄清楚的是,我是否可以以与我现在相同的方式从构建版本(Codeship 构建的那个)中提取,但
git pull origin develop
应该git pull
来自 Codeship 刚刚构建的版本
coffeescript - SyntaxError: Unexpected token * with coffeescript 在 codeship 上运行时
我无法让我的 mocha 测试在 Codeship 上运行。这些在本地工作。我已经删除了 repo 并运行了npm install
. 仍然在本地工作,但不是远程工作。
当 codeship 尝试运行测试时,我不确定这是否是一个咖啡脚本编译错误,但没有太多关于他们平台对该语言的支持的信息。
我是否遗漏了一些必须添加到我的代码测试环境中的东西?不知道为什么代码在本地会很好,但会破坏代码中的所有内容。
在本地运行时:
编码测试结果:
测试文件:
活动.咖啡:
包.json:
还有 mocha.opts:
也尝试添加--require coffee-script
amazon-web-services - 从 Codeship 映像部署 AWS
设置
我做了以下步骤:
我使用IAM 管理器创建(我猜以下大多数权限都不是必需的/冗余的):
一个名为 codeship 的具有权限/策略的组
- AmazonEC2FullAccess
- IAM完全访问
- AmazonEC2RoleforAWSCodeDeploy
- AmazonS3FullAccess
- AWSCodeDeployReadOnlyAccess
- AWSCodeDeployFullAccess
- 管理员访问
- AWSCodeDeployRole
- AWSCodeDeployDeployerAccess
- AmazonS3ReadOnlyAccess
用户:属于上述指定组的 Codeship(相同权限)
一个角色:CodeDeployServiceRole
- AmazonEC2RoleforAWSCodeDeploy
- AWSCodeDeployReadOnlyAccess
- AWSCodeDeployFullAccess
- AmazonS3ReadOnlyAccess
- AWSCodeDeployRole
- AWSCodeDeployDeployerAccess
然后我创建了一个带有标签的E2C Ubuntu 实例codeship:true
:实例状态正在运行。
此外,我使用我的应用程序名称创建了一个S3 存储桶。存储桶具有属性设置Granted: Any Authenticated AWS User
可以打开/下载和查看权限。
最后,我使用我的应用程序名称创建了一个代码部署应用程序。该应用程序有
- 组:codeship
- 标签:codeship:true
- 它一次部署到所有实例
- arn 来自 IAM 角色
错误
No hosts succeeded. (Error code: HEALTH_CONSTRAINTS)
我读到的内容与缺少权限有关。该图像似乎已从 codeship 正确传输为 zip 文件。出于速度原因,我重新部署了已经在存储桶中的图像。
问题
在 AWS 上部署我的应用程序需要哪些额外设置?
python - django 用户继承模型失败
我有一个从 Auth.User 模型继承的模型,这种方式: class UsuarioWeb(User): # more fields 在 Codeship 中进行测试时,它失败并出现以下错误:
django.db.migrations.exceptions.InvalidBasesError: Cannot resolve bases for [] 如果您在没有迁移的应用程序中从具有迁移的应用程序(例如 contrib.auth)继承模型,则会发生这种情况;有关更多信息,请参见 https://docs.djangoproject.com/en/1.9/topics/migrations/#dependencies (python3_venv)
我理解这个错误,它可以通过 OneToOneField 解决。所以一个问题是,我这样做对继承这种方式吗?以及其他,如何以这种方式解决此错误?
heroku - 使用 Codeship 在 Heroku 上部署 Angular-fullstack 应用程序
我正在尝试通过 CodeShip 将网站部署到 Heroku。该站点是使用 Yeoman 的 Angular-Fullstack 生成器构建的,该生成器已推送到 GitHub。Codeship 检测推送,构建整个事物,然后开始出现问题。
Angular-Fullstack 设置为dist/
文件夹包含整个 Heroku 应用程序,因此盲目部署所有内容在 Heroku 上不起作用。在本地,我可以使用 Heroku 工具带登录,在 dist 文件夹中添加一个远程,然后使用grunt buildcontrol
将整个东西部署到 Heroku。
但是在 Codeship 中有一些警告: * 我无法安装 Heroku 工具带,wget
因为它需要 sudo 而 Codeship 不支持 * 如果可以,我无法使用 CLI 登录 Heroku,因为我无法与 shell 交互在 Codeship * 我无法进入dist/
文件夹,添加遥控器后,只需推送到 Heroku,因为我需要输入我的凭据。
有没有我在这里错过的方法?我想让 Codeship 处理从构建到部署到 Heroku 的所有事情(仅在master
分支上)。
ember.js - npm 不在 ci 服务器上安装 devDependencies 内容
我有一个私人 Ember.js 项目,我正在尝试在 CodeShip 持续集成服务器上构建它。为此,我需要安装我的 devDependencies 中的 ember-cli。当我在我的机器上对我的项目进行全新克隆时,npm install
我会在./node_modules/ember-cli/bin/ember
.
但是在 CI 服务器上,我只有以下文件node_modules/ember-cli/
:
运行 npm install --verbose 我在日志中有以下几行:
以及其他 devDependencies 的类似行。
我已经检查过它NODE_ENV
是空的并且npm config get production
是错误的。我还检查了我在本地机器和 CI 服务器上使用相同的节点 (0.12.2) 和 npm (2.7.4) 版本。
所以我的问题是:为什么它可以在本地机器上工作,但不能在 CI 服务器上工作?是否缺少某些配置值?
node.js - Jest JS 测试覆盖数据未从 Codeship 发布到 Code Climate
我有一个基于 Node.js 的项目,我在其中使用 Jest 进行 .js 单元测试。我将collectCoverage
配置设置设置为true
并且可以在本地开发运行中以及在 Codeship 中运行构建时看到测试覆盖率表。
但是,我似乎无法正确设置将测试覆盖率数据发布到 Code Climate 以在此处显示结果。
我将 CodeClimate 的设置说明中给出的 repo 令牌保存到 Codeship 环境变量中,如下所示:
CODECLIMATE_REPO_TOKEN=xxxxxxxxxx codeclimate-test-reporter < lcov.info
鉴于在本地,Jest collectCoverage 将lcov.info
数据文件保存在我的项目根目录中调用coverage
的目录中,我还尝试了具有该路径的环境变量的变体,如下所示:
CODECLIMATE_REPO_TOKEN=xxxxxxxxxx codeclimate-test-reporter < coverage/lcov.info
对于 codeclimate-test-reporter 节点模块 ( npm install -g codeclimate-test-reporter
) 的安装,从说明中我不清楚它应该去哪里。我试过把它:
- 在常规命令之前的 Codeship 测试设置设置命令部分中
npm install
, - 在 Codeship 测试管道配置命令部分,
我还尝试将它安装为我的 package.json 中的本地开发依赖项。
上述设置尝试的任何组合都没有导致在代码气候方面看到任何关于测试覆盖率的内容。
作为关于我所做工作的最后一点说明,我没有提交我的本地coverage
目录,因此它不包含在我的 Codeship 构建中。
谁能帮我弄清楚我做错了什么?
ruby-on-rails - 如何在 CI 系统上使用 traceroute
我试着跑步
在 codeship 上,但它抱怨它找不到 rake 任务跟踪路由,给我“不知道如何构建任务”错误消息。它适用于我的机器(tm),但不适用于代码。怎么了?
django - 使用 codeship 将 django 应用程序部署到 heroku 时运行迁移
我正在尝试为我的 python 3.5.1 / django 1.9.7 项目设置一个连续的集成管道。
该项目在 heroku 上运行良好,只要我的数据库未更改,heroku 的代码部署管道就可以正常工作。
如果我想运行迁移,我必须通过heroku run python manage.py migrate
在我想避免的计算机上输入来手动进行。
我在包含 的“heroku”管道之后在我的代码部署管道中添加了一个“自定义脚本” heroku run python manage.py migrate
,但是当 coedship 尝试执行它时,它失败了
Cannot run more than 1 Free size dynos.
信息。我认为这是因为服务器已经启动并运行并且我没有更多可用的工作进程?(如果我错了,请纠正我) 编辑:这是我错的地方 - 我有一个额外的进程正在运行(见答案)
有没有办法在 heroku 部署管道中包含数据库迁移步骤?还是我做错了什么?