标签: continuous-deployment

TFS 2018 构建控制台应用程序未包含在构建工件中

我正在设置持续集成和持续交付基础设施,我的解决方案包含 Web 项目、dll 和控制台应用程序。我的问题是,除了控制台应用程序之外,我的所有项目都包含在构建工件中这是我使用的默认 MSBuild 参数

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"
Run Code Online (Sandbox Code Playgroud)

tfs continuous-integration tfsbuild continuous-deployment

4
推荐指数
1
解决办法
2534
查看次数

如何使用 Pipeline Utility Steps 插件更新现有 yaml 文件的内容

在我的 jenkins 管道中,我正在使用Pipeline Utility Steps插件读取存储在 yaml 文件中的数据

我可以从文件中读取数据,现在我想更新该值并将其写回文件,如下所示:

pipeline {
agent any

stages {

    stage('JOb B ....'){
        steps{
            script{
               def datas = readYaml file:"${WORKSPACE}/Version.yml"
               echo datas.MAJOR_VERSION //output is 111

               datas = ['MAJOR_VERSION': '222']
               writeYaml file:"${WORKSPACE}/Version.yml", data: datas
            }
        }//steps
    }//stage

}//stages

}//pipeline
Run Code Online (Sandbox Code Playgroud)

但我收到错误 - Version.yml 已经存在:

java.nio.file.FileAlreadyExistsException: /var/lib/jenkins/workspace/t-cicd-swarm-example_hdxts-job-B/Version.yml already exist.
at org.jenkinsci.plugins.pipeline.utility.steps.conf.WriteYamlStep$Execution.run(WriteYamlStep.java:175)
at org.jenkinsci.plugins.pipeline.utility.steps.conf.WriteYamlStep$Execution.run(WriteYamlStep.java:159)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

看来它只能写入一个新文件,而不能覆盖现有文件。如何从上面显示的脚本更新现有 yaml 文件的内容?

continuous-integration build continuous-deployment jenkins jenkins-pipeline

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

.gitlab-ci.yml 中描述 SSH 命令最清晰、简洁的方式

.gitlab-ci.yml通常我会通过 SSH 在远程服务器上执行以下命令:

# The job
deploy:
  script:
    # I've omitted the SSH setup here
    - |
      ssh gitlab@example.com "
        # Makes the server print the executed commands to stdout. Otherwise only the command output is printed. Required for monitoring and debug.
        set -x &&

        # Executes some commands
        cd /var/www/example &&
        command1 &&
        command2 &&
        command3 &&
        command4 &&
        command5
      "
Run Code Online (Sandbox Code Playgroud)

它工作正常,但 YAML 代码看起来太复杂:

  • set -x命令更像是一个样板文件,而不是有用的代码。普通 CI 命令不需要它,因为 GitLab CI 会自动打印它们。
  • &&每行都有样板。当其中一个命令失败时,它们会使执行停止。否则,当一个命令失败时,将执行下一个命令(与普通作业命令相反)。
  • 所有 SSH 命令都是单个 …

linux ssh shell continuous-deployment gitlab-ci

4
推荐指数
1
解决办法
1886
查看次数

Jenkins 工作目录位于哪里?

情况:我在虚拟服务器上安装了 Jenkins 并设置了“自由式管道”。我通过 webhook 推送将它连接到我的 github,它可以工作(当我推送到存储库时,一个新的构建作业在 jenkins 中启动)。

问题:我似乎找不到执行 git pull 的工作目录。我已经搜索答案,很多人说 $JENKINS_HOME,但echo $JENKINS_HOME为我返回一个空行。我做错了什么吗?或者我的项目在哪里?另外,我可以将存储库拉取到自定义路径的路径设置为自定义路径(例如/root/myprojectname)吗?

编辑:我可以在 Jenkins webuserinterface 中看到工作区,但在虚拟服务器驱动器上找不到相应的文件夹。

continuous-integration continuous-deployment jenkins continuous-delivery

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

如何从 Azure DevOps 构建 .NET Core 工作线程服务并将其部署到本地环境

我有一个工作服务应用程序,我通过复制其二进制文件并使用 PowerShell 通过“New-Service”命令进行安装,在开发服务器上手动安装该应用程序。

我们正在寻找 CI/CD 来自动化构建和部署其工件。我不知道如何将“构建”文件从 Azure 获取到本地服务器,我已经查看了诸如部署组之类的内容,但这些似乎不是用于复制的发布工具中的选项。我已经查看了“复制”工具和构建工具,但我被困住了。

有些人似乎使用“经典”提到这一点,我想我使用的是 YAML,但不是经典。

有人能指出我正确的方向吗?

continuous-deployment azure-devops

4
推荐指数
1
解决办法
2864
查看次数

如何使用 CI/CD 和 Google CloudSQL 迁移 django 中的数据库?

我在 gitlab 中有一个 django 存储库设置,我正在尝试使用 gitlab CI/CD 在谷歌云上自动构建和部署。

该应用程序必须部署在 App Engine 上,并且必须使用 CloudSQL 进行动态数据存储。

我面临的问题是在部署应用程序之前在数据库上执行迁移时。

我应该运行./manage.py migrate它连接到cloudSQL。

我读到我们可以使用云代理连接到cloudSQL并迁移数据库。但这有点像黑客。有没有办法通过 CI/CD 管道脚本迁移我的数据库?

任何帮助表示赞赏。谢谢。

django continuous-integration continuous-deployment google-cloud-sql gcloud

4
推荐指数
1
解决办法
1903
查看次数

如何加快缓慢的 Azure 应用服务 Zip 部署?

我正在使用over部署Nuxt应用程序,但我遇到了问题,因为整个部署过程非常慢(大约 30 多分钟)。AppveyorAzure App Service Zip Deploy

似乎整个构建过程都按预期进行,但压缩文件大约需要一两分钟 (106 MB),并且文件在合理的时间内成功推送到应用程序服务。然而,令人难以置信的等待时间是在Site Under Construction白页阶段,导致整个网站瘫痪。

  1. 除了升级应用服务计划之外,还有人有任何加快此过程的技巧吗?
  2. 有什么办法可以避免出现空白Site Under Construction页吗?例如,有没有一种方法可以解压缩到另一个文件夹并在完成所有操作后移动文件,以便我在网站上获得最少的停机时间?

azure continuous-deployment appveyor azure-web-app-service nuxt.js

4
推荐指数
1
解决办法
3737
查看次数

GCP 的 GitHub 操作 - 无法获取模拟凭据:响应中没有访问令牌或无效过期

我正在尝试建立从 GitHub 操作到 GAE 的部署管道。

我首先遵循此文档https://github.com/google-github-actions/auth#setup,使用设置工作负载身份联合方法。

看起来一切似乎都工作顺利,直到我使用gcloud app deploygcloud services list --enabled任何需要身份验证的命令的部分(在“构建”步骤中)。

.github\workflows\app-engine.yml

name: Build using Cloud Build

on:
  push:
    branches:
    - main

env:
  PROJECT_ID: testinfra3
  SERVICE_NAME: default

jobs:
  setup-build-deploy:
    name: Setup, Build, and Deploy
    runs-on: ubuntu-latest
    permissions:
      contents: 'read'
      id-token: 'write'
    steps:
    - name: Checkout
      uses: actions/checkout@v3
    - id: 'auth'
      name: 'Authenticate to Google Cloud'
      uses: 'google-github-actions/auth@v0'
      with:
        workload_identity_provider: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider' 
        service_account: 'my-service-account@my-project.iam.gserviceaccount.com'
    - name: 'Set up Cloud SDK'
      uses: google-github-actions/setup-gcloud@v0
    - …
Run Code Online (Sandbox Code Playgroud)

google-app-engine continuous-deployment google-cloud-platform github-actions

4
推荐指数
2
解决办法
9045
查看次数

如何将 Github 机密作为 json 文件中的值传递?

我使用Cypress.io进行自动化测试并使用Github Actions在 CI/D 中触发它。配置cypress.json文件具有嵌套env值,如下所示:

{
  "baseUrl": "<url-to-login>",
  "env": {
    "roles": {
      "admin": {
        "PASSWORD": "<password>",
        "USERNAME": "<username>"
      },
      "employee": {
        "PASSWORD": "<password>",
        "USERNAME": "<username>"
      },
      "client": {
        "PASSWORD": "<password>",
        "USERNAME": "<username>"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,Cypress 无法访问深层环境变量,因此我创建的配置cypress.json如下:

name: Cypress Tests

on: [push]

jobs:
  cypress-run:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        # creates cypress.json file to run Cypress
      - name: Create Cypress config files
        run: |
          echo …
Run Code Online (Sandbox Code Playgroud)

javascript continuous-integration continuous-deployment cypress github-actions

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

我应该使用gradle进行持续部署吗?

谁有过gradle的经验?我正在考虑将它用于持续部署......我正在考虑使用我自己的脚本(python)或gradle.

任何人都可以从经验中看出他认为推荐的方式是什么?请注意我已经使用maven,我不打算离开我的依赖管理和项目管理.

谢谢

continuous-deployment

3
推荐指数
1
解决办法
4006
查看次数