我们想要尝试使用Jenkins为我们的项目设置CI/CD。该项目本身具有Elasticsearch和PostgreSQL作为运行时依赖项,以及Webdriver用于验收测试。
在开发环境中,一切都在一个docker-compose.yml文件中设置,并且我们有acceptance.sh脚本来运行验收测试。
在查阅文档后,我发现可以通过以下步骤构建CI:
1. 将项目docker化 2. 从git仓库拉取项目 3. 以某种方式拉取docker-compose.yml和项目Dockerfile - 可以将其放在项目存储库中,也可以将其放在单独的存储库中(目前是这样做的),或者将其放在服务器上并复制它们 4. 执行docker-compose up 5. 项目的Dockerfile将有ONBUILT部分来运行测试。单元测试通过mix tests运行,验收测试通过scripts/acceptance.sh运行。最好同时运行它们。 6. 关闭docker-compose,清除容器
因为这是我的第一次使用Jenkins的经验,所以会出现一系列问题:
- 这是可行的策略吗? - 如何将测试输出与Jenkins连接起来? - 如何运行和关闭docker-compose? - 我们需要/希望为此编写管道吗?当我们到达下一个阶段的CD时,我们是否需要/希望管道?
谢谢
在开发环境中,一切都在一个docker-compose.yml文件中设置,并且我们有acceptance.sh脚本来运行验收测试。
在查阅文档后,我发现可以通过以下步骤构建CI:
1. 将项目docker化 2. 从git仓库拉取项目 3. 以某种方式拉取docker-compose.yml和项目Dockerfile - 可以将其放在项目存储库中,也可以将其放在单独的存储库中(目前是这样做的),或者将其放在服务器上并复制它们 4. 执行docker-compose up 5. 项目的Dockerfile将有ONBUILT部分来运行测试。单元测试通过mix tests运行,验收测试通过scripts/acceptance.sh运行。最好同时运行它们。 6. 关闭docker-compose,清除容器
因为这是我的第一次使用Jenkins的经验,所以会出现一系列问题:
- 这是可行的策略吗? - 如何将测试输出与Jenkins连接起来? - 如何运行和关闭docker-compose? - 我们需要/希望为此编写管道吗?当我们到达下一个阶段的CD时,我们是否需要/希望管道?
谢谢
Docker book
https://www.dockerbook.com。 - Miad Abrin