Repository navigation
85 lines (85 loc) · 3.02 KB
/
Copy pathrelease-extension.yml
File metadata and controls
85 lines (85 loc) · 3.02 KB
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
name: Release Extension
on:
push:
tags:
- "ext-v*"
env:
CARGO_TERM_COLOR: always
permissions:
contents: write
jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-latest
arch: amd64
pg: 17
- os: ubuntu-latest
arch: amd64
pg: 18
- os: ubuntu-24.04-arm
arch: arm64
pg: 17
- os: ubuntu-24.04-arm
arch: arm64
pg: 18
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: jdx/mise-action@v4
- uses: Swatinem/rust-cache@v2
- name: install postgres dev headers
run: |
sudo apt-get install -y gnupg2 lsb-release
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc \
| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/pgdg.gpg
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
| sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt-get update
sudo apt-get install -y postgresql-server-dev-${{ matrix.pg }} libclang-dev clang
- name: build extension
env:
PGRX_PG_CONFIG_PATH: /usr/lib/postgresql/${{ matrix.pg }}/bin/pg_config
run: |
cargo build --release --no-default-features --features pg${{ matrix.pg }} \
-p beyond-queue-extension
- name: package
run: |
VERSION=${GITHUB_REF_NAME#ext-v}
PG=${{ matrix.pg }}
mkdir -p dist/usr/lib/postgresql/${PG}/lib
mkdir -p dist/usr/share/postgresql/${PG}/extension
# Canonical install name is `beyond_queue` (the beyond-pg supervisor's
# REQUIRED_EXTENSIONS / shared_preload). cargo emits libbeyond_queue.so;
# install it as beyond_queue.so so $libdir/beyond_queue resolves.
cp target/release/libbeyond_queue.so \
dist/usr/lib/postgresql/${PG}/lib/beyond_queue.so
cp beyond-queue-extension/beyond_queue.control \
dist/usr/share/postgresql/${PG}/extension/
cat beyond-queue-extension/sql/schema.sql \
tests/fixtures/hot_paths.sql \
tests/fixtures/load_pgrx_extension.sql \
> dist/usr/share/postgresql/${PG}/extension/beyond_queue--${VERSION}.sql
tar -czf beyond-queue-extension-v${VERSION}-pg${PG}-linux-${{ matrix.arch }}.tar.gz \
-C dist .
- uses: actions/upload-artifact@v7
with:
name: extension-pg${{ matrix.pg }}-${{ matrix.arch }}
path: beyond-queue-extension-*.tar.gz
release:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v8
with:
merge-multiple: true
- name: create release
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release create "$GITHUB_REF_NAME" \
--repo "$GITHUB_REPOSITORY" \
--title "$GITHUB_REF_NAME" \
--generate-notes \
beyond-queue-extension-*.tar.gz