Skip to content

Commit e94398c

Browse files
authored
Move pg_cron-16 and -18 to Wolfi to match postgresql versions (#77021)
postgresql 16 and 18 are in Wolfi so these extensions should be too
1 parent dc6fc90 commit e94398c

File tree

2 files changed

+204
-0
lines changed

2 files changed

+204
-0
lines changed

pg_cron-16.yaml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package:
2+
name: pg_cron-16
3+
version: "1.6.7"
4+
epoch: 1
5+
description: PostgreSQL 16 extension for running jobs on a schedule using cron syntax
6+
copyright:
7+
- license: PostgreSQL
8+
9+
var-transforms:
10+
- from: ${{package.name}}
11+
match: '^pg_cron-(\d+)$'
12+
replace: $1
13+
to: pg-version
14+
15+
environment:
16+
contents:
17+
packages:
18+
- build-base
19+
- busybox
20+
- clang-19
21+
- llvm-19
22+
- postgresql-${{vars.pg-version}}-dev
23+
24+
pipeline:
25+
- uses: git-checkout
26+
with:
27+
repository: https://github.com/citusdata/pg_cron
28+
expected-commit: 465b38c737f584d520229f5a1d69d1d44649e4e5
29+
tag: v${{package.version}}
30+
31+
- uses: autoconf/make
32+
33+
- uses: autoconf/make-install
34+
35+
- uses: strip
36+
37+
update:
38+
enabled: true
39+
github:
40+
identifier: citusdata/pg_cron
41+
strip-prefix: v
42+
use-tag: true
43+
44+
test:
45+
environment:
46+
contents:
47+
packages:
48+
- postgresql-${{vars.pg-version}}
49+
- postgresql-${{vars.pg-version}}-client
50+
- shadow
51+
- sudo-rs
52+
- glibc-locales
53+
- wait-for-it
54+
environment:
55+
PGUSER: postgres
56+
PGPASSWORD: postgres
57+
pipeline:
58+
- name: Initialize PostgreSQL database
59+
runs: |
60+
useradd $PGUSER
61+
echo -n $PGPASSWORD 2>&1 > /tmp/pwfile
62+
sudo -u $PGUSER initdb --pwfile=/tmp/pwfile -D /tmp/pgdata --auth=md5 2>&1
63+
- name: Test pg_cron extension
64+
runs: |
65+
sudo -u $PGUSER pg_ctl start -w -D /tmp/pgdata -o "--shared_preload_libraries=pg_cron --unix_socket_directories=/tmp" -l /tmp/pgdata/log 2>&1
66+
67+
# Wait for PostgreSQL to be ready
68+
wait-for-it localhost:5432 -t 4
69+
70+
# Test extension creation and basic functionality
71+
psql -h /tmp -d postgres -U postgres << 'EOF'
72+
-- Create the pg_cron extension
73+
CREATE EXTENSION pg_cron;
74+
75+
-- Verify extension is installed
76+
SELECT * FROM pg_extension WHERE extname = 'pg_cron';
77+
78+
-- Test scheduling a simple job (but don't wait for execution)
79+
SELECT cron.schedule('test-job', '* * * * *', 'SELECT 1');
80+
81+
-- Verify job was scheduled
82+
SELECT jobname, schedule, command FROM cron.job WHERE jobname = 'test-job';
83+
84+
-- Test unscheduling the job
85+
SELECT cron.unschedule('test-job');
86+
87+
-- Verify job was removed
88+
SELECT COUNT(*) FROM cron.job WHERE jobname = 'test-job';
89+
90+
-- Test cron.job_run_details view exists
91+
SELECT COUNT(*) FROM cron.job_run_details;
92+
EOF
93+
94+
# Check for any errors in PostgreSQL logs
95+
if grep -E '(ERROR|FATAL)' /tmp/pgdata/log/postgresql.log 2>/dev/null | grep -Ev '(no COPY in progress|could not connect to|could not send|the database system is not yet accepting connections|database system is shutting|error reading result of streaming command|database system is starting up)'; then
96+
echo "PostgreSQL errors found in logs"
97+
exit 1
98+
fi
99+
100+
# Cleanup: Stop PostgreSQL and kill any remaining processes
101+
pg_ctl stop -D /tmp/pgdata -m fast 2>/dev/null || true
102+
- uses: test/tw/ldd-check

pg_cron-18.yaml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package:
2+
name: pg_cron-18
3+
version: "1.6.7"
4+
epoch: 1
5+
description: PostgreSQL 18 extension for running jobs on a schedule using cron syntax
6+
copyright:
7+
- license: PostgreSQL
8+
9+
var-transforms:
10+
- from: ${{package.name}}
11+
match: '^pg_cron-(\d+)$'
12+
replace: $1
13+
to: pg-version
14+
15+
environment:
16+
contents:
17+
packages:
18+
- build-base
19+
- busybox
20+
- clang-19
21+
- llvm-19
22+
- postgresql-${{vars.pg-version}}-dev
23+
24+
pipeline:
25+
- uses: git-checkout
26+
with:
27+
repository: https://github.com/citusdata/pg_cron
28+
expected-commit: 465b38c737f584d520229f5a1d69d1d44649e4e5
29+
tag: v${{package.version}}
30+
31+
- uses: autoconf/make
32+
33+
- uses: autoconf/make-install
34+
35+
- uses: strip
36+
37+
update:
38+
enabled: true
39+
github:
40+
identifier: citusdata/pg_cron
41+
strip-prefix: v
42+
use-tag: true
43+
44+
test:
45+
environment:
46+
contents:
47+
packages:
48+
- postgresql-${{vars.pg-version}}
49+
- postgresql-${{vars.pg-version}}-client
50+
- shadow
51+
- sudo-rs
52+
- glibc-locales
53+
- wait-for-it
54+
environment:
55+
PGUSER: postgres
56+
PGPASSWORD: postgres
57+
pipeline:
58+
- name: Initialize PostgreSQL database
59+
runs: |
60+
useradd $PGUSER
61+
echo -n $PGPASSWORD 2>&1 > /tmp/pwfile
62+
sudo -u $PGUSER initdb --pwfile=/tmp/pwfile -D /tmp/pgdata --auth=md5 2>&1
63+
- name: Test pg_cron extension
64+
runs: |
65+
sudo -u $PGUSER pg_ctl start -w -D /tmp/pgdata -o "--shared_preload_libraries=pg_cron --unix_socket_directories=/tmp" -l /tmp/pgdata/log 2>&1
66+
67+
# Wait for PostgreSQL to be ready
68+
wait-for-it localhost:5432 -t 4
69+
70+
# Test extension creation and basic functionality
71+
psql -h /tmp -d postgres -U postgres << 'EOF'
72+
-- Create the pg_cron extension
73+
CREATE EXTENSION pg_cron;
74+
75+
-- Verify extension is installed
76+
SELECT * FROM pg_extension WHERE extname = 'pg_cron';
77+
78+
-- Test scheduling a simple job (but don't wait for execution)
79+
SELECT cron.schedule('test-job', '* * * * *', 'SELECT 1');
80+
81+
-- Verify job was scheduled
82+
SELECT jobname, schedule, command FROM cron.job WHERE jobname = 'test-job';
83+
84+
-- Test unscheduling the job
85+
SELECT cron.unschedule('test-job');
86+
87+
-- Verify job was removed
88+
SELECT COUNT(*) FROM cron.job WHERE jobname = 'test-job';
89+
90+
-- Test cron.job_run_details view exists
91+
SELECT COUNT(*) FROM cron.job_run_details;
92+
EOF
93+
94+
# Check for any errors in PostgreSQL logs
95+
if grep -E '(ERROR|FATAL)' /tmp/pgdata/log/postgresql.log 2>/dev/null | grep -Ev '(no COPY in progress|could not connect to|could not send|the database system is not yet accepting connections|database system is shutting|error reading result of streaming command|database system is starting up)'; then
96+
echo "PostgreSQL errors found in logs"
97+
exit 1
98+
fi
99+
100+
# Cleanup: Stop PostgreSQL and kill any remaining processes
101+
pg_ctl stop -D /tmp/pgdata -m fast 2>/dev/null || true
102+
- uses: test/tw/ldd-check

0 commit comments

Comments
 (0)