-
Notifications
You must be signed in to change notification settings - Fork 0
155 lines (150 loc) · 5.16 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
146
147
148
149
150
151
152
153
154
155
name: Orb 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: "orb_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
# figure out how to test work
# test:
# name: Run tests
# 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-test"
# workspaces: |
# pgmq
# # Additional directories to cache
# cache-directories: |
# /home/runner/.pgrx
# - uses: ./.github/actions/pgx-init
# with:
# working-directory: ./
# - name: test
# run: |
# sudo apt-get update && sudo apt-get install -y postgresql-server-dev-14
# git clone https://github.com/pgpartman/pg_partman.git && \
# cd pg_partman && \
# sudo make install && cd ../
# cp /usr/share/postgresql/14/extension/pg_partman* ~/.pgrx/15.4/pgrx-install/share/postgresql/extension/
# cp /usr/lib/postgresql/14/lib/pg_partman_bgw.so ~/.pgrx/15.4/pgrx-install/lib/postgresql/
# rm -rf ./target/pgrx-test-data-* || true
# pg_version=$(stoml Cargo.toml features.default)
# cargo pgrx run ${pg_version} --pgcli || true
# cargo pgrx test ${pg_version}
publish:
# only publish release events
if: github.event_name == 'release'
name: trunk publish
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: "orb_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 15
- 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 orb_fdw --version ${ext_ver} --description "Foreign Data wrapper for orb" --homepage "https://github.com/tembo-io/orb_fdw" --repository "https://github.com/tembo-io/orb_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