Travis-CI 上的 PostgreSQL 12 需要 5 分钟才能启动?
PostgreSQL 12 on Travis-CI taking 5 minutes to startup?
看完this post in the Travis-CI forum I've managed to setup PostgreSQL 12. My configuration looks more or less like this (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 分钟才能启动。这对 fast CI/CD 来说是一个真正的痛苦。 Here 是构建示例。
有没有人有这方面的经验?
可悲的是,根本没有日志输出。这些脚本在任何地方都可用于 public 吗?
tl;dr 只需删除 PostgreSQL 服务即可。
所以删除这个:
services:
- postgresql
并删除 Travis 社区 post 中的其余内容。
我不确定该问题是如何产生的,但您可以在此处获得修复:https://travis-ci.org/github/psycopg/psycopg3/jobs/685827089
只需按查看配置,您就可以在 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
我也关注了那个支持 post。我不知道为什么它会挂起 5 分钟。我查看了 Travis CI build repo,但唯一执行的命令是 sudo systemctl postgresql start
。
我终于设法修复了它。我几乎从安装的默认 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
。
对 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"
看完this post in the Travis-CI forum I've managed to setup PostgreSQL 12. My configuration looks more or less like this (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 分钟才能启动。这对 fast CI/CD 来说是一个真正的痛苦。 Here 是构建示例。
有没有人有这方面的经验? 可悲的是,根本没有日志输出。这些脚本在任何地方都可用于 public 吗?
tl;dr 只需删除 PostgreSQL 服务即可。
所以删除这个:
services:
- postgresql
并删除 Travis 社区 post 中的其余内容。
我不确定该问题是如何产生的,但您可以在此处获得修复:https://travis-ci.org/github/psycopg/psycopg3/jobs/685827089
只需按查看配置,您就可以在 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
我也关注了那个支持 post。我不知道为什么它会挂起 5 分钟。我查看了 Travis CI build repo,但唯一执行的命令是 sudo systemctl postgresql start
。
我终于设法修复了它。我几乎从安装的默认 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
。
对 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"