如何在 Gitlab CI/CD 过程中的 Review 阶段(对于审查应用程序)将数据导入 postgresql 服务器?
我目前正在使用 Gitlab CI/CD 部署到 AWS。 Postgresql 用于整个构建阶段。
在构建阶段,信息从另一个应用程序成功导入到 postgresql。然后将数据作为 SQL 文件转储到工件(在两个位置)。
artifacts:
paths:
- postgres_backup.sql
- scripts/postgres/postgres_backup.sql
expire_in: 1 day
构建工件已创建。但是,它们在审查 - 自动部署 - 阶段不可用。 审核阶段基本上是:
review:
extends: .auto-deploy
stage: review
before_script:
- echo "Supposedly, this helps to carry over artifacts."
文物不在那里。理想情况下,我希望将 SQL 备份推送到数据库,但 1) 工件不可用,2) psql
命令不可用(也不 apt)。
答案 0 :(得分:1)
查看 .auto-deploy
作业(它可能来自 included job this too)。如果 .auto-deploy
作业具有 dependencies
关键字,则会影响您的工件。
默认情况下,当一个作业上传工件时,后续所有阶段的作业都会自动下载工件。这可以使用单个作业的 dependencies
关键字进行控制。
例如,使用 dependencies: []
表示此作业没有依赖项,因此不会下载任何工件。 dependencies: ["npm install job"]
表示来自名为“npm install job”的作业的工件是唯一下载的工件,即使来自其他作业的工件已上传。
因此,如果您在 dependencies
作业中看到 .auto-deploy
关键字,则必须将其包含在您的 review
作业中。如果 .auto-deploy
有 dependencies: []
,则您必须有 dependencies: ["your-job-name"]
,其中作业名称是上传文件的作业。
如果 .auto-deploy
的 dependencies
关键字至少包含一个作业名称,则您必须复制这些作业,并将它们包含在您的 review
作业中:
// .auto-deploy job:
.auto-deploy
stage: deploy
dependencies: ["job1", "job2"]
script:
- ...
// review job
review:
stage: review
dependencies: ["job1", "job2", "your-postgres-job"]
script:
- ...