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"