标签: continuous-deployment

配置Hudson以部署构建

我正在尝试配置Hudson,以便我能够自动将构建(.war文件)部署到Tomcat.然后,某人将使用新部署的构建来测试应用程序.

我已经尝试使用Deploy Plugin自动部署.war文件,这很有效.但是,构建.war文件的作业将在每次scm更改后运行(无论何时提交代码).使用Deploy Plugin,每次构建时都会将.war文件部署到Tomcat.由于代码经常被提交,这意味着Web应用程序也会频繁重启,这将中断测试过程.

我很欣赏Hudson运行我的单元测试并定期进行构建,因此我不想更改此工作的触发器.

我正在寻找一种方法,我可以手动决定从Hudson内部署.我尝试创建一个单独的作业,将从第一个作业部署.war,但这不起作用.有没有人有任何经验设置这样的东西?

continuous-integration tomcat hudson continuous-deployment

8
推荐指数
1
解决办法
1万
查看次数

如何让TeamCity自动将Git功能分支与master合并,并在发生合并冲突时使构建失败?

我们的开发/发布周期如下:

  1. 开发人员创建功能分支,实现功能
  2. 开发人员指示功能已准备好进行验收测试(UAT)
  3. 测试人员部署功能分支并接受(或拒绝)功能

接受的功能然后由测试人员合并到主分支中,因此将在下一个发布周期中释放(我们每周部署主干/主代码).

我们对合并冲突感到沮丧,因为当测试人员使用UAT的功能并发现它不会干净地合并时,在其中工作的开发人员通常会转向别的东西.

我们正在考虑一个解决方案,TeamCity会针对当前主分支自动合并每个功能分支,导致合并冲突的任何构建都被视为失败的构建 - 这将使我们能够及早了解有问题的合并,以便我们可以修复他们早点.

TeamCity似乎没有对此工作流的内置支持(即,当推送分支X,结帐主,将分支X合并到其上,构建,单元测试,创建包时).有没有人使用TeamCity和Github创建类似的工作流程 - 可能使用自定义的msbuild目标?

编辑:我应该澄清我们正在使用Github,但我们目前没有使用拉取请求 - 听起来这是我应该调查的事情.:)

git teamcity feature-branch continuous-deployment branching-and-merging

8
推荐指数
1
解决办法
2821
查看次数

Docker持续部署工作流程

我计划在最后用Docker建立一个基于jenkins的CD工作流程.我的想法是为每个绿色构建自动构建(由Jenkins)一个docker镜像,然后通过jenkins或'hand'部署该图像(我还不确定是否要自动运行每个绿色构建).

达到建立新图像的目的很容易.我的问题是关于部署本身."重新加载"或"重启"正在运行的docker容器的最佳做法是什么?假设为容器更改了映像,如何在内部运行服务时优雅地重新加载它?我是否需要使用多个运行容器和负载平衡来进行传统舞蹈,或者是否有"停靠"方式?

linux continuous-integration continuous-deployment docker

8
推荐指数
1
解决办法
1990
查看次数

在Windows服务器上从bitbucket自动部署到iis

我想在本地服务器和我正在部署的实时服务器之间使用bitbucket作为中间件.

我正在使用Windows Server 2012和iis 8.我正在开发一个ASP.NET MVC 5项目.

基本上,我想重新创建azure用于持续集成的相同工作流程:

在本地处理应用程序,然后将更改提交到bitbucket中的master(不一定)分支,然后服务器将与master分支同步以反映更改.

我假设起点是在本地服务器和实时服务器上都有bitbucket存储库的副本,但我正在努力将本地服务器和实时服务器链接到bitbucket.

git deployment iis bitbucket continuous-deployment

8
推荐指数
1
解决办法
1178
查看次数

将秘密变量从TFS Build传递给Powershell脚本

我在我的构建定义中添加了名为Password的秘密变量,如下图所示:

TFS构建变量

我想在我的一个构建步骤中将密码传递给PowerShell脚本,如下图所示:

构建步骤

我的PowerShell脚本如下所示

 Param
(
    [Parameter(Mandatory=$true)]
    [string]$UserName,
    [Parameter(Mandatory=$true)]
    [string]$Password
)

$appPool = New-WebAppPool -Name "test"
$appPool.processModel.userName = $userName
$appPool.processModel.password = $password
$appPool.processModel.identityType = "SpecificUser"
$appPool | Set-Item
Run Code Online (Sandbox Code Playgroud)

但看起来密码的类型不是字符串.我尝试PSCredential但没有奏效.有人能帮助我吗?如何将密码从构建步骤传递给PowerShell脚本以及安全变量的类型?我无法直接读取环境变量,因为我在目标计算机上运行PowerShell脚本.因此,唯一的选择是将密码作为输入传递给脚本.

powershell tfsbuild continuous-deployment

8
推荐指数
1
解决办法
3241
查看次数

我们何时应该使用参数何时在ARM模板中使用变量

我很困惑在哪里使用变量以及在ARM模板中使用参数的位置.我们如何打这个电话?

引用的脚本使用两者.我更好奇使用变量的理由.

在此输入图像描述

参考

示例服务Fabric Azure部署脚本

https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/service-fabric-oms/azuredeploy.json

azure continuous-deployment azure-resource-manager azure-resource-group azure-template

8
推荐指数
2
解决办法
3645
查看次数

如何以编程方式使Bitbucket Pipeline的缓存无效?

我的Bibucket管道中有一个node_modules缓存,并添加了新模块(例如yarn add react-modal)-如何使Bitbucket管道检测到新的yarn.lock并使它的缓存无效?

caching bitbucket continuous-deployment bitbucket-pipelines

8
推荐指数
1
解决办法
764
查看次数

无法通过TeamCity运行某些功能文件标记

我有各种Cucumber功能文件,每个文件都有多个场景.每个要素文件用于系统的不同组件.

我有各种运行器,每个组件一个,因此每个功能文件一个.

下面是我的一些项目结构,您可以在其中查看包含_Run_AllTest.java在Resources文件夹中包含我的功能的运行程序.

Test
????java
?   ?
?   ????stepdefs
?   ?   ????MOPStepDefs
?   ?   ?       ADAWA_Run_AllTest.java
?   ?   ?       DPL_Run_AllTest.java
?   ?   ?       MOPStepDefs.java
?   ?   ?       MOP_Run_AllTest.java
?   ?   ?
?   ?   ????MOSStepDefs
?   ?   ?       MOSStepDefs.java
?   ?   ?       MOS_Run_AllTest.java
?   ?   ?       PAR_Run_AllTest.java
?   ?   ?       RenewalApproachingPAR_Run_AllTest.java
?   ?   ?
?   ?   ????OAStepDefs
?   ?   ?       OAStepDefs.java
?   ?   ?       OA_Run_AllTest.java
?   ?   ?
?   ?   ????TPOSStepDefs
?   ?           TPOStepDefs.java
?   ?           TPOS_Run_AllTest.java
?   ? …
Run Code Online (Sandbox Code Playgroud)

teamcity continuous-integration cucumber maven continuous-deployment

8
推荐指数
1
解决办法
305
查看次数

在 CI/CD 中如何管理前端和后端之间的依赖关系?

我将描述我的设置以使问题不那么抽象,但它们似乎并不特定于我的情况。

语境

我们有 Python-Django 后端和 VueJS 前端,每个都在一个存储库中,使用 Portainer(使用堆栈)配置和部署 Gitlab-CI。每个存储库的生产分支中的提交遵循以下路径:

  1. 犯罪
  2. gitlab-ci 管道:
    1. 构建 docker 镜像
    2. 测试图像(前端针对部署的后端进行测试)
    3. 将图像标记为生产:最新
    4. 将图像推回 gitlab 注册表
    5. webhook portainer中对应的service(frontend/backend)来更新部署的镜像
  3. 搬运工:
    1. 拉图
    2. 部署

问题

部署同步

想象一下,我们在前端和后端都进行了重大更改,并且两者都将与以前的版本不兼容。因此必须同时部署新版本。

在我们当前的设置中,我们必须首先部署后端(什么会破坏已部署的前端),然后部署新的前端,修复生产,但有一个“停机”期。

测试的分支依赖

有时,当我们在前端开发分支 feature-1 时,必须针对后端的分支 feature-1 对其进行测试。

在我们当前的设置中,前端中的所有提交都针对部署的后端进行了测试(为了避免在 CI 中复制后端,仅使用生产 API 地址),在这种情况下会导致错误的测试结果。

后端集成测试

当提交到后端时,它可能会破坏前端。

目前后端没有针对前端进行测试(只有另一种方式)。

可能的解决方案

对于部署同步问题,我考虑创建另一个存储库,该存储库只有一个文件,指定应部署的前端和后端的版本。此存储库中的提交将导致 Portanier 的两个服务 webhooks 被“卷曲”以进行更新(后端和前端)。这并不能保证同步更新(在 Portainer 中可能会失败并且不会有回滚),但它会比当前设置更好。

我不确定这里应该用什么来指定版本:commit hash、git tag、branch、docker image version...最后一个可能避免了重建和测试图像,但我认为图像名称和版本是固定的Portainer 的堆栈定义,并且不容易自动更新。

对于分支依赖性测试,我考虑在每个存储库(前端和后端)中都有一个文件,指定要测试的后端/前端的哪个分支。但是每个存储库的 CI 必须复制整个部署环境(例如,运行一个新的后端和前端来测试每个前端提交)。这也将允许后端集成测试。由于我们使用的是 Docker,这并不是很复杂,但是每个 CI 管道都会花费额外的时间......此外,当第一个存储库(前端或后端)提交时,它会引用另一个中仍然不存在的分支存储库,并失败...

这些解决方案对我来说似乎很尴尬,特别是如果这些是 Docker 的 CI/CD 常见问题。当我们向组合中添加更多存储库时,它会变得更加丑陋。

备择方案?

感谢关注!

编辑:出于好奇,我当前的设置基于本文

continuous-integration continuous-deployment docker gitlab-ci portainer

8
推荐指数
1
解决办法
4102
查看次数

将环境变量部署到 Firebase 托管

我在 React 中使用 Firebase,在初始化 Firebase 时,我使用从我的 .env 文件中提取的环境变量dotenv。我想构建我的 React 应用程序并将其部署到 Firebase 托管,我将 GitHub Actions 与以下 .yml 工作流文件一起使用:

name: Deploy
on:
  push:
    branches:
      - master

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master
      - name: Install Dependencies
        run: npm install
      - name: Build
        run: npm run build
      - name: Archive Production Artifact
        uses: actions/upload-artifact@master
        with:
          name: public
          path: public
  deploy:
    name: Deploy
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master
      - …
Run Code Online (Sandbox Code Playgroud)

environment-variables continuous-deployment firebase firebase-hosting github-actions

8
推荐指数
1
解决办法
2021
查看次数