gpt4 book ai didi

continuous-integration - 如何在单个存储库中使用多个 Travis CI 文件?

转载 作者:行者123 更新时间:2023-12-03 23:09:21 24 4
gpt4 key购买 nike

我有一个项目,它在前端使用 Angular,在后端使用 Spring Boot。

目前,前端和后端位于两个独立的存储库中,我在其中准备了特定的 travis.yaml文件,例如 Spring Boot 应用程序:

language: java
services: docker
addons:
sonarcloud:
organization: "mixeway" # the key of the org you chose at step #3
token:
secure: $SONAR_TOKEN


script:
- mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install sonar:sonar -Dmaven.test.skip=true -Dsonar.projectKey=Mixeway_MixewayBackend
- mvn package -Dmaven.test.skip=true
- docker build --build-arg JAR_FILE=target/mixeway-0.9.jar -t mixeway/backend:0.9 .
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- docker push mixeway/backend:0.9

travis.yaml非常相似(除了 Angular 应用程序的构建时间要长几倍)。我想将两个存储库合并为一个,后端和前端的代码在一个存储库中。我想要两个单独的管道,因此后端代码的更改不会执行用于构建前端图像的管道。

这可能吗?如果是这样,如何?

最佳答案

在我自己面对与 travis CI 完全相同的问题并且没有找到令人满意的解决方案之后,我发现这可以通过新的 github actions 轻松完成。 .
基本上,您为存储库中的每个项目创建一个工作流文件(类似于 .travis.yml ),该文件是自包含的并负责仅构建它所属的项目。
这是基本的 monorepo 结构:

.
├── .github
│   └── workflows
│   ├── project1.yml
│   ├── project2.yml
├── project1
│   └── build.gradle
├── project2
│   └── build.gradle
在工作流文件本身中,让我们说 project1.yml ,您可以指定哪个路径应该触发此项目的构建:
on:
push:
paths:
- 'project1/**'

关于continuous-integration - 如何在单个存储库中使用多个 Travis CI 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59717120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com