我正在使用heroku和git在rails网站上开发ruby.
我应该使用哪些工具和功能来设置以下简单的开发过程?
代码>登记>自动测试>自动部署
你会怎么做?
git continuous-integration ruby-on-rails heroku continuous-deployment
连续交付中的生产关系数据库(和模式)迁移模式是什么?
在许多传统开发中,DBA在当前发布周期中创建的许多较小脚本中安排了一个大型迁移脚本.但是在CD中,开发人员可能希望将更改推送到生产环境,而不是等待用其他脚本编译它们.
我知道rails-migration,但对我来说使用原始sql脚本看起来更合理.
我也看过像flyway这样的工具来管理迁移,但我还没有看到很多人在生产中使用它们.这就是为什么我想知道这里的常见做法是什么.
有没有办法可以将Git用作代码存储库,还可以用于构建和持续部署到Azure(云服务,而不是网站)?我怀疑没有给出缺少的构建环境,除非在写完之前要确认这一点.
从理论上讲,我可以看到让Git托管在同时进行构建和部署的Windows服务器上 - 不确定是否有人将其减少到实践中.
我的团队使用Visual Studio Online("VSO")来管理我们的ALM.
我们已经有一个按钮构建过程,用于从我们的本地Git仓库(远程)构建代码,并将其部署到Azure上的Microsoft Azure网站.
除此之外,我们还希望通过按下按钮构建和部署本地开发测试环境.
从VSO的ALM生态系统中将自动化的本地开发测试部署集成到我们的开发流程中的最佳方法是什么?
[我们也拥有TFS 2012 - 有没有办法从VSO利用它来驱动我们的VSO git仓库的内部部署构建部署?]
continuous-integration continuous-deployment continuous-delivery azure-devops
我发现了一些与这个问题相关的问题(这一个,这个,这一个),但是没有一个问题清楚地回答我的问题:我真的需要TFS或VSO才能实现这个目标吗?
我拥有的是:一个包含两个项目的解决方案:demo.Web和demo.Api.
在Azure中,我有demo-web.azurewebsites.net(带有demo-web-staging.azurewebsites.net)和demo-api.azurewebsites.net(带有demo-api-staging.azurewebsites.net).
我有整个解决方案(两个项目都包含指向azure中正确的部署槽的正确发布配置文件)推送到git仓库.
我怎么能告诉demo.Web,转到demo-web-staging.azure ...和demo.Api,转到demo-api-staging.azure ......?是通过TFS的唯一途径吗?我在谷歌上找不到任何带有多个网络应用程序的教程.
谢谢.
我们正在使用一堆可能在未来扩展的EC2实例(大约100个实例),现在我们正在寻求使用Jenkins或AWS Code部署进行自动部署.
我发现我们可以在Jenkins中使用AWS Code部署插件,但有哪些优点和缺点?
1)独立AWS代码部署2)Jenkins与AWS Code Deploy插件.
continuous-integration amazon-web-services continuous-deployment jenkins aws-code-deploy
我正在尝试将我的 nodejs 后端与 codeship 部署到弹性 beantalk。但每次我收到以下错误:
bcrypt@1.0.3 install /tmp/deployment/application/node_modules/bcrypt
node-pre-gyp install --fallback-to-build
module.js:471
throw err;
^
Error: Cannot find module '../'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/tmp/deployment/application/node_modules/.bin/node-pre-gyp:15:20)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
npm ERR! Linux 4.9.62-21.56.amzn1.x86_64
npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v6.11.5-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.11.5-linux-x64/bin/npm" "--production" "rebuild"
npm ERR! node v6.11.5
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! bcrypt@1.0.3 install: `node-pre-gyp install …Run Code Online (Sandbox Code Playgroud) bcrypt node.js continuous-deployment amazon-elastic-beanstalk
当我将一些代码推送到 时master,会运行一个工作流程文件。该文件构建工件并将代码推送到另一个分支production。
另一个工作流文件如下所示,设置为在任何推送发生时运行production。
name: Deploy
on:
push:
branches:
- production
jobs:
# Do something
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
Run Code Online (Sandbox Code Playgroud)
但这个工作流程文件永远不会运行。我希望当工作流文件监听 master 上的推送事件完成后,该文件应该像前一个文件将代码推送到production分支一样运行。我如何确保这种情况发生?
我正在为持续集成和(希望)持续部署设置TeamCity.一些构建步骤将涉及私有文件,例如
由于这些文件包含私有数据,我不想将它们放入(可公开访问的)源代码控制系统中.
我正在为AutoFixture设置http://teamcity.codebetter.com,所以我没有物理访问服务器.我希望有一个功能可以让我上传这样的文件,但找不到任何类似的东西.
什么是最合适的解决方案?
我将 AWS CDK(使用 Python)用于在 Fargate 上运行的容器化应用程序。我想cdk deploy在 GitLab CI 进程中运行并将 git 标记作为环境变量传递,以替换在 Fargate 中运行的容器。我目前正在使用 CloudFormation ( aws cloudformation update-stack ...)做类似的事情。还有其他人以这种方式使用 AWS CDK 进行 CI/CD 吗?有没有更好的方法来做到这一点?
另外,我应该为这项工作使用什么作为我的基本图像?我在想我可以从 python 容器开始并安装节点,反之亦然。或者也许在某处我还没有找到预建的容器。
这是似乎运行良好的开始:
CDK:
image: python:3.8
stage: deploy
before_script:
- apt-get -qq update && apt-get -y install nodejs npm
- node -v
- npm i -g aws-cdk
- cd awscdk
- pip3 install -r requirements.txt
script:
- cdk diff
- cdk deploy --require-approval never
Run Code Online (Sandbox Code Playgroud)
编辑 2020-05-04:
CDK 可以在 期间构建 docker 镜像 …
amazon-web-services continuous-deployment gitlab gitlab-ci aws-cdk