Skip to content

Commit

Permalink
Merge pull request #7 from Jurshsmith/add-github-workflow
Browse files Browse the repository at this point in the history
Add Github Workflow
  • Loading branch information
Jurshsmith authored Sep 15, 2023
2 parents 1f94268 + a6671ef commit 0602eda
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .env.sample
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# db
TEST_DATABASE_URL=postgres://postgres:postgres@localhost:5432/chaindexing_tests
SETUP_TEST_DB=false
SETUP_TEST_DB=true
92 changes: 92 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]
types: [opened, synchronize, reopened]
workflow_dispatch:
schedule: [cron: "44 4 * * 6"]

permissions:
contents: read

env:
# RUSTFLAGS: -Dwarnings
TEST_DATABASE_URL: postgres://postgres:postgres@localhost:5432/chaindexing_tests

jobs:
test:
name: Rust ${{matrix.rust}}
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
rust: [stable]

services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres

ports:
- 5432:5432

options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{matrix.rust}}
- name: Setup Database
run: cargo run -p chaindexing-tests
- name: Run Tests
run: cargo test -p chaindexing-tests

# clippy:
# name: Clippy
# runs-on: ubuntu-latest
# if: github.event_name != 'pull_request'
# timeout-minutes: 45
# steps:
# - uses: actions/checkout@v3
# - uses: dtolnay/rust-toolchain@clippy
# - run: cargo clippy --tests -- -Dclippy::all

fmt:
name: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- uses: Swatinem/rust-cache@v2
# Check fmt
- name: "rustfmt --check"
# Workaround for rust-lang/cargo#7732
run: |
if ! rustfmt --check --edition 2021 $(git ls-files '*.rs'); then
printf "Please run \`rustfmt --edition 2021 \$(git ls-files '*.rs')\` to fix rustfmt errors.\n" >&2
exit 1
fi
outdated:
name: Outdated
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
timeout-minutes: 45
steps:
- uses: actions/checkout@v3
- uses: dtolnay/install@cargo-outdated
- run: cargo outdated --workspace
# - run: cargo outdated --workspace --exit-code 1
10 changes: 9 additions & 1 deletion chaindexing-tests/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
use chaindexing::{ChaindexingRepo, Migratable, Repo};
use chaindexing_tests::db;

fn main() {
#[tokio::main]
async fn main() {
// Run once to setup database
// Useful in a CI environment running parallel tests
db::setup();

let repo = ChaindexingRepo::new(db::database_url().as_str());
let pool = repo.get_pool(1).await;
let mut conn = ChaindexingRepo::get_conn(&pool).await;

repo.migrate(&mut conn).await;
}

0 comments on commit 0602eda

Please sign in to comment.