-
Notifications
You must be signed in to change notification settings - Fork 0
145 lines (140 loc) · 4.56 KB
/
extension_ci.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
name: Clerk FDW Extension
defaults:
run:
shell: bash
working-directory: ./
on:
pull_request:
branches:
- main
push:
branches:
- main
release:
types:
- created
jobs:
lint:
name: Run linters
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Install Rust minimal nightly with clippy and rustfmt
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
prefix-key: "clerk_fdw-extension-lint"
# Update cache directories as needed
cache-directories: |
/home/runner/.pgrx
- uses: ./.github/actions/pgx-init
with:
working-directory: ./
- name: Cargo format
run: cargo +nightly fmt --all --check
- name: Clippy
run: cargo clippy
test:
runs-on: ubuntu-latest
container: pgxn/pgxn-tools
strategy:
matrix:
pg: [14, 15, 16, 17]
name: 🐘 Postgres ${{ matrix.pg }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Start PostgreSQL ${{ matrix.pg }}
run: pg-start ${{ matrix.pg }}
- name: Setup Rust Cache
uses: Swatinem/rust-cache@v2
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Install pg_partman
run: pgxn install pg_partman
- name: Test on PostgreSQL ${{ matrix.pg }}
run: pgrx-build-test
publish:
# only publish release events
if: github.event_name == 'release'
name: trunk publish
runs-on: ubuntu-22.04
strategy:
matrix:
pg-version: [14, 15, 16, 17]
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: "clerk_fdw-extension-test"
cache-directories: |
/home/runner/.pgrx
- name: Install stoml and pg-trunk
shell: bash
run: |
set -xe
wget /~https://github.com/freshautomations/stoml/releases/download/v0.7.1/stoml_linux_amd64 &> /dev/null
mv stoml_linux_amd64 stoml
chmod +x stoml
sudo mv stoml /usr/local/bin/
cargo install pg-trunk
- name: trunk build
working-directory: ./
run: trunk build --pg-version ${{ matrix.pg-version }}
- name: trunk publish
working-directory: ./
env:
TRUNK_API_TOKEN: ${{ secrets.TRUNK_AUTH_TOKEN }}
run: |
ext_ver=$(stoml Cargo.toml package.version)
ext_repo=$(stoml Cargo.toml package.repository)
trunk publish clerk_fdw --version ${ext_ver} --description "Foreign Data wrapper for clerk" --homepage "/~https://github.com/tembo-io/clerk_fdw" --repository "/~https://github.com/tembo-io/clerk_fdw" --license "PostgreSQL" --category connectors
# build_and_push:
# name: Build and push images
# needs:
# - publish
# runs-on:
# - self-hosted
# - dind
# - large-8x8
# outputs:
# short_sha: ${{ steps.versions.outputs.SHORT_SHA }}
# steps:
# - name: Check out the repo
# uses: actions/checkout@v3
# - name: Install stoml and pg-trunk
# shell: bash
# run: |
# set -xe
# wget /~https://github.com/freshautomations/stoml/releases/download/v0.7.1/stoml_linux_amd64 &> /dev/null
# mv stoml_linux_amd64 stoml
# chmod +x stoml
# sudo mv stoml /usr/local/bin/
# - name: Set version strings
# id: versions
# run: |
# echo "SHORT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
# echo "TAG_VER=$(/usr/local/bin/stoml Cargo.toml package.version)" >> $GITHUB_OUTPUT
# - name: Build and upload image
# run: |
# docker build --build-arg="PGMQ_VER=${{ steps.versions.outputs.TAG_VER }}" -t pgmq-pg images/pgmq-pg
# docker tag pgmq-pg quay.io/tembo/pgmq-pg:v${{ steps.versions.outputs.TAG_VER }}
# docker tag pgmq-pg quay.io/tembo/pgmq-pg:latest
# - name: Login to Quay
# uses: docker/login-action@v2
# with:
# registry: quay.io/tembo
# username: ${{ secrets.QUAY_USER_TEMBO }}
# password: ${{ secrets.QUAY_PASSWORD_TEMBO }}
# - name: Push image
# run: |
# docker push quay.io/tembo/pgmq-pg:v${{ steps.versions.outputs.TAG_VER }}
# docker push quay.io/tembo/pgmq-pg:latest