-
Notifications
You must be signed in to change notification settings - Fork 77
91 lines (88 loc) · 3.15 KB
/
extension_upgrade.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
name: PGMQ Extension Upgrade
defaults:
run:
shell: bash
working-directory: ./
on:
pull_request:
branches:
- main
paths-ignore:
- 'pgmq-rs/**'
push:
branches:
- main
paths-ignore:
- 'pgmq-rs/**'
release:
types:
- created
jobs:
test:
name: Upgrade Test
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
with:
prefix-key: "pgmq-extension-upgrade-test"
workspaces: |
pgmq
# Additional directories to cache
cache-directories: |
/home/runner/.pgrx
- name: Get current version
id: current-version
run: echo "CI_BRANCH=$(git name-rev --name-only HEAD)" >> $GITHUB_OUTPUT
- name: Checkout old version (0.14.2)
run: |
git fetch --tags
git checkout tags/v0.14.2
- uses: ./.github/actions/pgx-init
with:
working-directory: ./
force: true
- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y postgresql-server-dev-14
- name: Install pg_partman
run: |
git clone https://github.com/pgpartman/pg_partman.git && \
cd pg_partman && \
git checkout v4.7.4 && \
sed -i 's|PG_CONFIG = pg_config|PG_CONFIG = ~/.pgrx/15.5/pgrx-install/bin/pg_config|' Makefile && \
make && \
make install && \
ls -alh /home/runner/.pgrx/15.5/pgrx-install/share/postgresql/extension/pg_partman*
- name: Run old version (0.14.2)
run: |
rm -rf ./target/pgrx-test-data-* || true
pg_version=$(stoml Cargo.toml features.default)
SQLX_OFFLINE=true cargo pgrx run ${pg_version} --pgcli || true
export DATABASE_URL=postgres://$USER:postgres@localhost:28815/pgmq
psql $DATABASE_URL -c "DROP EXTENSION IF EXISTS pgmq CASCADE;"
psql $DATABASE_URL -c "DROP EXTENSION IF EXISTS pg_partman CASCADE;"
psql $DATABASE_URL -c "CREATE EXTENSION pg_partman;"
psql $DATABASE_URL -c "CREATE EXTENSION pgmq;"
psql $DATABASE_URL -c "select * from pgmq_create('test_queue_1')"
psql $DATABASE_URL -c "select * from pgmq_create_partitioned('test_partitioned_queue_1');"
ls -alh /home/runner/.pgrx/15.5/pgrx-install/share/postgresql/extension/pg_partman*
- name: Checkout branch's version
env:
CI_BRANCH: ${{ steps.current-version.outputs.CI_BRANCH }}
run: |
git checkout $CI_BRANCH
- uses: ./.github/actions/pgx-init
with:
working-directory: ./
force: true
- name: Upgrade and run tests
run: |
ls -alh /home/runner/.pgrx/15.5/pgrx-install/share/postgresql/extension/pg_partman*
export DATABASE_URL=postgres://$USER:postgres@localhost:28815/pgmq
SQLX_OFFLINE=true cargo pgrx run ${pg_version} --pgcli || true
psql $DATABASE_URL -c "ALTER EXTENSION pgmq UPDATE;"
SQLX_OFFLINE=true make test