Gitlab CI 无法使用 pg_prove
Gitlab CI not able to use pg_prove
我正在努力建立一个 Gitlab CI 并 运行 使用正确版本的 postgres (13) 并安装了 PGTap。
我使用使用 postgres:13.3-alpine
的 Dockerfile 在本地部署我的项目,然后也安装 PGTap。但是,我不确定我是否可以使用这个 Dockerfile 来帮助解决我的 CI 问题。
在我的 gitlab-ci.yml 文件中,我目前有:
variables:
GIT_SUBMODULE_STRATEGY: recursive
pgtap:
only:
refs:
- merge_request
- master
changes:
- ddl/**/*
image: postgres:13.1-alpine
services:
- name: postgres:13.1-alpine
alias: db
variables:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ""
POSTGRES_HOST_AUTH_METHOD: trust
script:
- psql postgres://postgres@db/postgres -c 'create extension pgtap;'
- psql postgres://postgres@db/postgres -f ddl/01.sql
- cd ddl/
- psql postgres://postgres@db/postgres -f 02.sql
- psql postgres://postgres@db/postgres -f 03.sql
- pg_prove -d postgres://postgres@db/postgres --recurse test_*
上面的工作直到它到达底部的 pg_prove
命令,因为我得到以下错误:
pg_prove: command not found
有什么方法可以使用脚本命令安装 pg_prove?或者有更好的方法吗?
有一个老问题 closed。
总而言之,您可以根据 postgres:13.1-alpine
安装 PGTap 构建自己的映像,或者使用安装了 PGTap 的非官方 image 1maa/postgres:13-alpine
:
docker run -it 1maa/postgres:13-alpine sh
/ # which pg_prove
/usr/local/bin/pg_prove
由于您的步骤图像是基于高山的,您可以尝试:
script:
- apk add --no-cache --update build-base make perl perl-dev git openssl-dev
- cpan TAP::Parser::SourceHandler::pgTAP
- psql.. etc
您或许可以省略一些包...
我正在努力建立一个 Gitlab CI 并 运行 使用正确版本的 postgres (13) 并安装了 PGTap。
我使用使用 postgres:13.3-alpine
的 Dockerfile 在本地部署我的项目,然后也安装 PGTap。但是,我不确定我是否可以使用这个 Dockerfile 来帮助解决我的 CI 问题。
在我的 gitlab-ci.yml 文件中,我目前有:
variables:
GIT_SUBMODULE_STRATEGY: recursive
pgtap:
only:
refs:
- merge_request
- master
changes:
- ddl/**/*
image: postgres:13.1-alpine
services:
- name: postgres:13.1-alpine
alias: db
variables:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ""
POSTGRES_HOST_AUTH_METHOD: trust
script:
- psql postgres://postgres@db/postgres -c 'create extension pgtap;'
- psql postgres://postgres@db/postgres -f ddl/01.sql
- cd ddl/
- psql postgres://postgres@db/postgres -f 02.sql
- psql postgres://postgres@db/postgres -f 03.sql
- pg_prove -d postgres://postgres@db/postgres --recurse test_*
上面的工作直到它到达底部的 pg_prove
命令,因为我得到以下错误:
pg_prove: command not found
有什么方法可以使用脚本命令安装 pg_prove?或者有更好的方法吗?
有一个老问题 closed。
总而言之,您可以根据 postgres:13.1-alpine
安装 PGTap 构建自己的映像,或者使用安装了 PGTap 的非官方 image 1maa/postgres:13-alpine
:
docker run -it 1maa/postgres:13-alpine sh
/ # which pg_prove
/usr/local/bin/pg_prove
由于您的步骤图像是基于高山的,您可以尝试:
script:
- apk add --no-cache --update build-base make perl perl-dev git openssl-dev
- cpan TAP::Parser::SourceHandler::pgTAP
- psql.. etc
您或许可以省略一些包...