在Gitlab CI/CD过程中,我如何在审查阶段(用于审查应用程序)将数据导入到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
命令不可用(也不合适)。
看一下.auto-deploy
作业(它也可能来自这个包含的作业)。如果.auto-deploy
作业具有dependencies
关键字,则会影响工件。
默认情况下,当一个作业上传工件时,所有后续阶段的作业将自动下载工件。这可以使用dependencies
关键字对单个作业进行控制。
例如,使用dependencies: []
意味着这个作业没有依赖项,所以没有工件被下载。dependencies: ["npm install job"]
表示来自名为"npm install job"的作业的工件;是唯一下载的工件,即使上传了来自其他作业的工件。
因此,如果您在.auto-deploy
作业中看到dependencies
关键字,则必须将其包含在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:
- ...