Skip to content

Commit 25721db

Browse files
committed
use local pg
1 parent e13c7b4 commit 25721db

6 files changed

Lines changed: 138 additions & 255 deletions

File tree

.github/workflows/test.yml

Lines changed: 49 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,37 +5,67 @@ on:
55
pull_request:
66
branches: ["master"]
77

8-
env:
9-
CARGO_TERM_COLOR: always
10-
118
jobs:
129
test:
1310
runs-on: large
11+
1412
steps:
1513
- uses: actions/checkout@v4
14+
1615
- uses: dtolnay/rust-toolchain@master
1716
name: Install rust
1817
with:
1918
toolchain: 1.88.0
19+
2020
- uses: Swatinem/rust-cache@v2
21-
- name: Run initial test to setup PG
22-
run: cargo test -p shared --features test -- --no-capture
23-
env:
24-
RPC_URL: ${{ secrets.RPC_URL }}
25-
- name: Install pgrx system dependencies
26-
run: >
27-
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' &&
28-
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg &&
29-
sudo apt update -y &&
30-
sudo apt install -y build-essential pkg-config libssl-dev postgresql-server-dev-17
21+
22+
- name: Cache cargo-pgrx + cargo registry
23+
uses: actions/cache@v4
24+
with:
25+
path: |
26+
~/.cargo/bin/cargo-pgrx
27+
~/.cargo/registry
28+
~/.cargo/git
29+
key: ${{ runner.os }}-cargo-pgrx-0.16.1-${{ hashFiles('**/Cargo.lock') }}
30+
31+
- name: Install PostgreSQL 18 (PGDG)
32+
run: |
33+
sudo install -d -m 0755 /etc/apt/keyrings
34+
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc \
35+
| sudo gpg --dearmor --yes --batch --no-tty \
36+
-o /etc/apt/keyrings/postgresql.gpg
37+
sudo chmod 0644 /etc/apt/keyrings/postgresql.gpg
38+
echo "deb [signed-by=/etc/apt/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
39+
| sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null
40+
sudo apt-get update -y
41+
sudo apt-get install -y \
42+
build-essential pkg-config libssl-dev \
43+
postgresql-server-dev-18 postgresql-18 postgresql-client-18
44+
45+
echo "/usr/lib/postgresql/18/bin" >> $GITHUB_PATH
46+
sudo pg_ctlcluster 18 main start
47+
/usr/lib/postgresql/18/bin/pg_config --version
48+
psql --version
49+
50+
- name: Wait for Postgres
51+
run: |
52+
for i in {1..30}; do
53+
pg_isready -h localhost -p 5432 && exit 0
54+
sleep 1
55+
done
56+
echo "Postgres did not become ready in time" >&2
57+
exit 1
58+
3159
- name: Install pgrx
32-
run: >
33-
cargo install --locked cargo-pgrx --version="0.15.0" &&
34-
cargo pgrx init --pg17 /tmp/golden-axe-pg-test/install/postgresql-17.2.0-x86_64-unknown-linux-gnu/bin/pg_config
60+
run: |
61+
cargo install --locked cargo-pgrx --version="0.16.1"
62+
cargo pgrx init --pg18 /usr/lib/postgresql/18/bin/pg_config
63+
3564
- name: Install PG extension
36-
run: >
37-
cd pg_golden_axe &&
38-
cargo pgrx install -p pg_golden_axe --pg-config /tmp/golden-axe-pg-test/install/postgresql-17.2.0-x86_64-unknown-linux-gnu/bin/pg_config
65+
run: |
66+
cd pg_golden_axe
67+
cargo pgrx install -p pg_golden_axe
68+
3969
- name: Run tests
4070
run: cargo test -- --no-capture
4171
env:

Cargo.lock

Lines changed: 10 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

readme.md

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,47 +14,42 @@
1414

1515
Mac
1616
```
17+
brew install postgresql@18
18+
brew services start postgresql@18
19+
echo 'export PATH="/opt/homebrew/opt/postgresql@18/bin:$PATH"' >> ~/.zshrc
20+
1721
brew install icu4c pkg-config openssl@3
1822
export PKG_CONFIG_PATH="/opt/homebrew/opt/icu4c/lib/pkgconfig"
1923
```
2024

2125
Linux
2226
```
23-
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > \
24-
/etc/apt/sources.list.d/pgdg.list'
2527
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc \
26-
| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
27-
sudo apt update -y
28-
sudo apt install -y build-essential pkg-config libssl-dev postgresql-server-dev-17
28+
| sudo gpg --dearmor --yes --batch --no-tty \
29+
-o /etc/apt/keyrings/postgresql.gpg
30+
sudo chmod 0644 /etc/apt/keyrings/postgresql.gpg
31+
echo "deb [signed-by=/etc/apt/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
32+
| sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null
33+
sudo apt-get update -y
34+
sudo apt-get install -y build-essential pkg-config libssl-dev postgresql-server-dev-18 postgresql-18 postgresql-client-18
2935
```
3036

31-
3. Build
37+
3. Install Postgres Extension
3238

3339
```
3440
cargo install --locked cargo-pgrx --version="0.16.1"
35-
cargo pgrx init --pg17 download
36-
cargo build
37-
cargo test
41+
cargo pgrx init --pg18 pg_config
42+
cargo pgrx install -p pg_golden_axe
3843
```
3944

40-
If you get an error indicating that pg_golden_axe is not installed:
41-
42-
```
43-
cargo pgrx install \
44-
-p pg_golden_axe \
45-
-c /tmp/golden-axe-pg-test/install/postgresql-17.2.0-aarch64-apple-darwin/bin/pg_config
46-
```
47-
48-
49-
4. Clone and test
45+
4. Test
5046

5147
```
52-
git clone git@github.com:indexsupply/golden-axe.git
53-
cd golden-axe
48+
createdb golden_axe_test
5449
cargo test
5550
```
5651

57-
5. Create databases
52+
5. Run
5853

5954
```
6055
createdb be

shared/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ tar = { version = "0.4.43", optional = true }
2525
flate2 = { version = "1.0.35", optional = true }
2626
reqwest = { version = "0.12.12", features = ["deflate", "gzip", "json"] }
2727
target-triple = { version = "0.1.3", optional = true }
28+
url = "2.5.8"
2829

2930
[dev-dependencies]
3031
test-log = { version = "0.2", default-features = false, features = [

shared/src/jrpc.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,8 @@ mod tests {
277277

278278
#[test_log::test(tokio::test)]
279279
async fn test_block_and_logs() {
280-
let url = std::env::var("RPC_URL").unwrap_or_else(|_| "https://eth.merkle.io/".to_string());
280+
let url =
281+
std::env::var("RPC_URL").unwrap_or_else(|_| "https://rpc.flashbots.net/".to_string());
281282
let client = super::Client::new(&url);
282283
let n: u64 = 12_911_679;
283284

0 commit comments

Comments
 (0)