-
Notifications
You must be signed in to change notification settings - Fork 34
147 lines (137 loc) · 4.34 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
name: PG Vectorize Extension
defaults:
run:
shell: bash
working-directory: ./
on:
pull_request:
branches:
- main
push:
branches:
- main
jobs:
dependencies:
name: Install dependencies
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
# rust needed to install trunk
- name: Install Rust stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
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: Cache binaries
uses: actions/cache@v2
with:
path: |
/usr/local/bin/stoml
~/.cargo/bin/trunk
key: ${{ runner.os }}-bins-${{ github.sha }}
restore-keys: |
${{ runner.os }}-bins-
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: "pg-vectorize-extension-lint"
workspaces: pg-vectorize/
# Additional directories to cache
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:
# name: Run tests
# needs: dependencies
# 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: "pg-vectorize-extension-test"
# workspaces: pg-vectorize
# # Additional directories to cache
# cache-directories: /home/runner/.pgrx
# - uses: ./.github/actions/pgx-init
# with:
# working-directory: ./
# - name: Restore cached binaries
# uses: actions/cache@v2
# with:
# path: |
# /usr/local/bin/stoml
# ~/.cargo/bin/trunk
# key: ${{ runner.os }}-bins-${{ github.sha }}
# restore-keys: |
# ${{ runner.os }}-bins-
# - name: test
# run: |
# pgrx15_config=$(/usr/local/bin/stoml ~/.pgrx/config.toml configs.pg15)
# ~/.cargo/bin/trunk install pgvector --pg-config ${pgrx15_config}
# ~/.cargo/bin/trunk install pgmq --pg-config ${pgrx15_config}
# ~/.cargo/bin/trunk install pg_cron --pg-config ${pgrx15_config}
# rm -rf ./target/pgrx-test-data-* || true
# pg_version=$(/usr/local/bin/stoml Cargo.toml features.default)
# cargo pgrx run ${pg_version} --pgcli || true
# cargo pgrx test ${pg_version}
publish:
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: "pg-vectorize-extension-test"
workspaces: pg-vectorize
# Additional directories to cache
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: ~/.cargo/bin/trunk build
- name: trunk publish
working-directory: ./
env:
TRUNK_API_TOKEN: ${{ secrets.TRUNK_AUTH_TOKEN }}
run: ~/.cargo/bin/trunk publish