Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 26 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ jobs:
build:
name: build (PG ${{ matrix.pg }}, ${{ matrix.runner == 'ubuntu-24.04-arm' && 'aarch64' || 'x86_64' }})
runs-on: ${{ matrix.runner }}
# This job normally finishes in about 70 seconds. Without a bound, a stalled
# package mirror leaves it running forever and the PR sits at "1 pending"
# rather than failing, which pushes a reviewer toward merging on an
# incomplete gate (#351). A gate that is routinely bypassed is not a gate.
timeout-minutes: 15
strategy:
fail-fast: false
# Two dimensions, so this is a cross product: every major on both
Expand All @@ -63,13 +68,20 @@ jobs:
run: |
set -euo pipefail
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -fsSL -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
# Bounded and retried: plain "curl -fsSL" waits indefinitely on a
# stalled connection, which is how this step came to hang for 40
# minutes on an otherwise healthy runner (#351).
sudo curl -fsSL --connect-timeout 15 --max-time 120 \
--retry 5 --retry-delay 5 --retry-all-errors \
-o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
| sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
# Acquire retries cover a flaky mirror; the outer timeout keeps a
# wedged one from consuming the whole job budget.
sudo timeout 300 apt-get -o Acquire::Retries=5 update
sudo timeout 600 apt-get -o Acquire::Retries=5 install -y --no-install-recommends \
postgresql-${{ matrix.pg }} postgresql-server-dev-${{ matrix.pg }} \
liblz4-dev libzstd-dev zlib1g-dev

Expand Down Expand Up @@ -119,6 +131,7 @@ jobs:
build-beta:
name: build (PG 19 beta, from source)
runs-on: ubuntu-latest
timeout-minutes: 20
env:
PG_BETA: 19beta2
steps:
Expand Down Expand Up @@ -206,13 +219,20 @@ jobs:
run: |
set -euo pipefail
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -fsSL -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
# Bounded and retried: plain "curl -fsSL" waits indefinitely on a
# stalled connection, which is how this step came to hang for 40
# minutes on an otherwise healthy runner (#351).
sudo curl -fsSL --connect-timeout 15 --max-time 120 \
--retry 5 --retry-delay 5 --retry-all-errors \
-o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
| sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
# Acquire retries cover a flaky mirror; the outer timeout keeps a
# wedged one from consuming the whole job budget.
sudo timeout 300 apt-get -o Acquire::Retries=5 update
sudo timeout 600 apt-get -o Acquire::Retries=5 install -y --no-install-recommends \
postgresql-${{ matrix.pg }} postgresql-server-dev-${{ matrix.pg }} \
liblz4-dev libzstd-dev zlib1g-dev python3-pip
# The Arrow and Parquet suites use pyarrow as an independent reader and
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ concurrency:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -42,6 +43,7 @@ jobs:
deploy:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 20
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
Expand Down
24 changes: 15 additions & 9 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,15 @@ jobs:
run: |
set -euo pipefail
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -fsSL -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
sudo curl -fsSL --connect-timeout 15 --max-time 120 \
--retry 5 --retry-delay 5 --retry-all-errors \
-o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
| sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
sudo timeout 300 apt-get -o Acquire::Retries=5 update
sudo timeout 600 apt-get -o Acquire::Retries=5 install -y --no-install-recommends \
postgresql-${{ matrix.pg }} postgresql-server-dev-${{ matrix.pg }} \
liblz4-dev libzstd-dev zlib1g-dev python3-pip
# pyarrow for root (the suites run under sudo); the silent-skip trap the
Expand Down Expand Up @@ -122,8 +124,8 @@ jobs:
- name: Install clang, build tools, codec headers, pyarrow; create the postgres user
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
sudo timeout 300 apt-get -o Acquire::Retries=5 update
sudo timeout 600 apt-get -o Acquire::Retries=5 install -y --no-install-recommends \
clang llvm bison flex make perl \
liblz4-dev libzstd-dev zlib1g-dev python3-pip
clang --version | head -1
Expand All @@ -148,7 +150,9 @@ jobs:
if: steps.san-cache.outputs.cache-hit != 'true'
run: |
set -euo pipefail
curl -fsSL -o /tmp/pg-src.tar.bz2 \
curl -fsSL --connect-timeout 15 --max-time 600 \
--retry 5 --retry-delay 5 --retry-all-errors \
-o /tmp/pg-src.tar.bz2 \
"https://ftp.postgresql.org/pub/source/v${PG_VERSION}/postgresql-${PG_VERSION}.tar.bz2"
# build_san.sh honours PGC_PG_TARBALL (source) and PGC_SAN_SRC (scratch)
# and installs to the prefix argument; point all three at CI-writable
Expand Down Expand Up @@ -237,13 +241,15 @@ jobs:
run: |
set -euo pipefail
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -fsSL -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
sudo curl -fsSL --connect-timeout 15 --max-time 120 \
--retry 5 --retry-delay 5 --retry-all-errors \
-o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
| sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
sudo timeout 300 apt-get -o Acquire::Retries=5 update
sudo timeout 600 apt-get -o Acquire::Retries=5 install -y --no-install-recommends \
postgresql-18 postgresql-server-dev-18 \
liblz4-dev libzstd-dev zlib1g-dev python3-pip lcov
# Installed with sudo because the suites run under sudo; a plain
Expand Down
Loading