在Travis-CI论坛中通读this post后,我设法设置了PostgreSQL12。我的配置或多或少像这样(full .travis.yml
):
language: java
dist: bionic
[...]
services:
- postgresql
addons:
postgresql: '12'
apt:
packages:
- postgresql-12
- postgresql-client-12
before_install:
- sudo pg_dropcluster --stop 12 main
- sudo pg_upgradecluster 11 main
- sudo pg_ctlcluster 12 main restart
- sudo pg_dropcluster 11 main
env:
global:
- PGUSER=postgres
- PGPORT=5432
[...]
但是(在论坛中也注意到了) PostgreSQL需要5分钟才能启动。对于快速CI / CD来说,这确实是一个痛苦。 Here是一个构建示例。
有人有经验吗? 可悲的是,根本没有日志输出。这些脚本可以在任何地方公开吗?
答案 0 :(得分:2)
我终于设法解决了。我几乎从安装的默认PostgreSQL版本复制了配置。然后sed
,然后重新启动服务器。 here是提交,在.travis-ci.yaml
中看起来像这样:
addons:
apt:
packages:
- postgresql-12
- postgresql-client-12
before_install:
- sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/12/main/postgresql.conf
- sudo cp /etc/postgresql/{9.3,12}/main/pg_hba.conf
- sudo pg_ctlcluster 12 main restart
构建时间从大约11分钟减少到大约3分钟。
是的,我在v10之前已经做过一次。但是直到现在,我都还不记得它。但是,如果您想知道,this是PostgreSQL v10的.travis-ci.yml
。
答案 1 :(得分:1)
tl; dr只需删除PostgreSQL服务。
所以删除它:
services:
- postgresql
并删除Travis社区中该帖子中的其余内容。
我不确定该问题是如何产生的,但是您可以在此处获取解决方法:https://travis-ci.org/github/psycopg/psycopg3/jobs/685827089
只需按View config,您就能在3秒钟内看到PostgreSQL 12的设置。但是,如果您很懒:
- python: 3.8
addons:
postgresql: '12'
apt:
packages:
- postgresql-12
- postgresql-client-12
env:
- TOXENV=py38
- PGVER=12
- PSYCOPG3_IMPL=c
- PGPORT=5433
我也关注了该支持文章。我不知道为什么它挂了5分钟。我查看了Travis CI构建存储库,但是执行的唯一命令是sudo systemctl postgresql start
。
答案 2 :(得分:0)
在Postgres 12+中使用dist: focal
似乎可以消除5分钟的延迟。这是一个用于快速启动Postgres 9.6-13的示例配置。
jobs:
include:
- name: "Postgres 13"
dist: focal
addons:
postgresql: "13"
apt:
sources:
- sourceline: deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main 13
key_url: https://www.postgresql.org/media/keys/ACCC4CF8.asc
packages:
- postgresql-13
- name: "Postgres 12"
dist: focal
addons:
postgresql: "12"
apt:
packages:
- postgresql-12
env:
- PGPORT=5433
- name: "Postgres 11"
dist: bionic
addons:
postgresql: "11"
- name: "Postgres 10"
dist: bionic
addons:
postgresql: "10"
- name: "Postgres 9.6"
dist: bionic
addons:
postgresql: "9.6"