根据有界上下文,我们已经确定了两个微服务实现,我们分别调用它们Service A和Service B。每个微服务都有不同的存储库(由于单一职责和更好的所有权的好处)。现在,每个存储库都使用自己的数据库架构(选择是为了更好地分离持久性并减少数据库实例的维护)。
之前,我们将数据库迁移脚本(用于持续交付)提取到单独的单个存储库(包含 和Service A模式Service B的脚本)中,并在 CI 下的单个作业下运行它们。现在,当我们处理更多的故事时,我们开始面临一些挑战,其中一些挑战如下:
true持续交付,因为架构更改也需要相应的代码更改Service,因此部署两个PR时都需要谨慎Users需要由两个模式使用,这些表目前正在两个模式之间复制。所以我的问题/疑问是:
Service存储库代码中吗?a level up并筹集Domain Events资金Eventual Consistency任何指示/建议都会有很大帮助。谢谢。
database-design github relational-database continuous-delivery microservices
我刚开始学习并使用nativescript; 一切似乎都没问题,我正在取得进展,但我无法找到持续交付的解决方案.(在推送bitbucket中的master分支时,我想自动进行构建并分发它).我尝试过来自Microsoft的appcenter(之前我用过Xamarin)但是无法使它工作.
我的用例是我希望每个构建/运行的工件都有一个唯一的版本号。在使用诸如CircleCI,Travis等当前工具的情况下,有可用的内部版本号,基本上它是一个总会增加的计数器。因此,我可以创建类似的版本字符串0.1.0-27。即使对于相同的提交,此计数器也会每次增加。
如何使用GitHub Actions做类似的事情?Github操作仅提供GITHUB_SHA和GITHUB_REF。
versioning automation github continuous-delivery github-actions
如何在多项目构建文件中使用 Gradle 5.2 和 JUnit 5.3 创建集成测试?
这是我当前的构建文件:
buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "gradle.plugin.com.github.spotbugs:spotbugs-gradle-plugin:1.6.10"
    classpath 'org.owasp:dependency-check-gradle:5.0.0-M2'
  }
}
allprojects {
  defaultTasks 'clean', 'build', 'publish', 'installDist'
  group = 'coyote'
  version = '0.1.0'
}
subprojects {
  apply plugin: 'java'
  apply plugin: 'jacoco'
  apply plugin: "com.github.spotbugs"
  apply plugin: 'org.owasp.dependencycheck'
  apply plugin: 'maven-publish'
  apply plugin: 'application'
  apply plugin: 'eclipse'
  apply plugin: 'idea'
  repositories {
    jcenter()
    mavenCentral()
  }
  dependencies {
    testImplementation ("org.junit.jupiter:junit-jupiter-api:5.3.2")
    testRuntimeOnly ("org.junit.jupiter:junit-jupiter-engine:5.3.2")
    spotbugsPlugins ("com.h3xstream.findsecbugs:findsecbugs-plugin:1.8.0")
  } …continuous-integration integration-testing gradle continuous-delivery junit5
我对 Jenkins 用于批准工作的插件有疑问。当代码升级到生产时,我希望手动批准来构建作业。我尝试寻找插件但找不到任何解决方案。我知道 spinnaker 提供持续交付,但我不想使用Spinnaker。
plugins production-environment dev-to-production jenkins continuous-delivery
在执行以下命令后,我收到一个新的 Fastlane 错误:
bundle exec fastlane beta --verbose
Failed to open TCP connection to olympus.itunes.apple.com:443 (getaddrinfo: nodename nor servname provided, or not known)
fastlane finished with errors
当前步骤:试点
任何想法?
我正在使用 GitLab(免费版)管道,并开始在正在运行的管道上收到以下错误。
这是我的一个.gitlab-ci.yml重现错误的最小示例(尽管我认为它与我的代码无关):
default:
  image: node:10-alpine
stages:
- build
build:
  stage: build
  script:
  - npm install
  artifacts:
    paths:
    - node_modules/
  only:
  - Staging
.
.
.
错误日志:
 64 packages are looking for funding
   run `npm fund` for details
Running after_script
Saving cache
Uploading artifacts for successful job
 Uploading artifacts...
 node_modules/: found 62788 matching files          
 WARNING: Uploading artifacts to coordinator... failed  id=512111 responseStatus=400 Bad Request status=400 Bad Request token=4Dwaaa
 WARNING: Retrying...                                context=artifacts-uploader error=invalid argument
 WARNING: Uploading artifacts to …continuous-integration continuous-deployment continuous-delivery gitlab gitlab-ci
触发器属性的分支属性使用变量的分支作业将始终失败,原因是:无法创建下游管道。
trigger像平常一样设置具有属性的下游管道。branch属性添加到触发器属性。写入下游存储库上现有分支的名称,例如master/main或功能分支的名称。branch属性以使用变量,例如branch: $CI_TARGET_BRANCH.目标是创建一个运行指定下游分支管道的 GitLab CI 配置。当尝试使用变量执行此操作时会出现该错误。
这有效,像平常一样创建下游管道。但分支名称是硬编码的:
stages:
  - deploy
deploy:
  variables:
    environment: dev
  stage: deploy
  trigger:
    project: group/project
    branch: foo
    strategy: depend
这是行不通的;虽然TARGET_BRANCH设置成功,但是由于无法创建下游管道,作业失败:
stages:
  - removeme
  - deploy
before_script:
  - if [ -z "$TARGET_BRANCH" ]; then TARGET_BRANCH="main"; fi
  - echo $TARGET_BRANCH
test_variable:
  stage: removeme
  script:
    - echo $TARGET_BRANCH
deploy:
  variables:
    environment: dev
  stage: …我有以下场景:
updates branch develop -> triggers DEV-CI -> triggers Release X
updates branch master -> triggers QA-CI -> triggers Release X
updates branch release -> triggers Prod-CI -> triggers Release X
在“Release X”中,我添加了所有 3 个工件(dev、qa 和 prod)和 3 个独立的阶段(dev、qa 和 prod)。我的目标是,如果分支开发更新,则发布到 DEV,如果主分支更新,则发布到 QA,依此类推,但发布管道不会启动,因为它需要所有 3 个工件都可用。
仅当我只有一对一时它才有效,如下所示:
如果我添加其他工件,即使在每个特定工件的预部署条件中添加工件过滤器之后,发布也不会开始,直到所有 3 个工件都可用。
是否可以做我在这里尝试的事情,或者我必须为每个 CI 创建一个版本?
谢谢!
编辑
听完李老师的回答,我又试了一次,还是不行。即使只运行了 QA CI,这两个环境都会被触发。
这里 QA 版本正在下载两个工件,即使有一个特定的工件过滤器:
这是生成该结果的设置:
continuous-delivery azure-devops azure-pipelines azure-pipelines-release-pipeline
所以我使用 phpDocumentor 3 为我的 Laravel 7 项目生成文档,
我想知道我是否可以从 Laravel 提供此文档(静态文件),以便仅对授权用户可用。
我希望能够通过我的CI/CD更新文档,所以我不能只手动修改生成的文档。
我认为我可能必须为此编写自己的模板(https://docs.phpdoc.org/3.0/guide/guides/templates.html),但我不确定文档是否不完整或者我是否缺少一些东西,因为我不知道如何创建模板。有什么建议、指南或教程可以帮助我实现这一目标吗?
谢谢
github ×2
gitlab ×2
gitlab-ci ×2
automation ×1
azure-devops ×1
azure-pipelines-release-pipeline ×1
fastlane ×1
gradle ×1
ios ×1
jenkins ×1
junit5 ×1
laravel ×1
nativescript ×1
php ×1
phpdoc ×1
plugins ×1
versioning ×1