Refactor DSL to use nested JSON graph construction #16
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] # Runs on main after merge | |
| env: | |
| CARGO_TERM_COLOR: always | |
| GITHUB_TOKEN: ${{ secrets.GH_PAT }} | |
| jobs: | |
| format: | |
| name: Format Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust nightly | |
| run: | | |
| rustup toolchain install nightly --profile minimal --component rustfmt | |
| rustup default nightly | |
| - name: Check formatting | |
| run: cargo fmt --all -- --check | |
| test: | |
| name: Clippy & Tests | |
| runs-on: ubuntu-latest | |
| needs: format | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Rust nightly | |
| run: | | |
| rustup toolchain install nightly --profile minimal --component clippy | |
| rustup default nightly | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| pkg-config \ | |
| libssl-dev \ | |
| libclang-dev \ | |
| clang \ | |
| bison \ | |
| flex \ | |
| libreadline-dev \ | |
| zlib1g-dev \ | |
| libxml2-dev \ | |
| libxslt1-dev \ | |
| libicu-dev | |
| - name: Cache cargo registry | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| ~/.pgrx | |
| target | |
| key: ${{ runner.os }}-cargo-pgrx-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-pgrx- | |
| - name: Install cargo-pgrx | |
| run: cargo install cargo-pgrx --version 0.16.1 --locked | |
| - name: Initialize pgrx | |
| run: cargo pgrx init --pg17 download | |
| - name: Configure git credentials for private repos | |
| run: | | |
| git config --global url."https://${{ secrets.GH_PAT }}@github.com/".insteadOf "https://github.com/" | |
| - name: Run clippy | |
| run: cargo clippy --features pg17 -- -D warnings | |
| - name: Run unit tests | |
| run: cargo pgrx test pg17 | |
| - name: Run E2E tests | |
| id: e2e_tests | |
| run: ./scripts/test-e2e-local.sh | |
| - name: Upload PostgreSQL logs on E2E failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: postgresql-logs | |
| path: | | |
| ~/.pgrx/17.log | |
| ~/.pgrx/data-17/log/*.log | |
| if-no-files-found: warn | |
| # TODO: Re-enable once pg_regress tests are stabilized | |
| # - name: Run pg_regress tests | |
| # id: pg_regress | |
| # env: | |
| # PGDATABASE: contrib_regression | |
| # run: | | |
| # ./scripts/pg-start.sh | |
| # cd test/regress | |
| # make installcheck | |
| # - name: Upload pg_regress results on failure | |
| # if: steps.pg_regress.outcome == 'failure' | |
| # uses: actions/upload-artifact@v4 | |
| # with: | |
| # name: pg_regress-results | |
| # path: | | |
| # test/regress/regression.out | |
| # test/regress/regression.diffs | |
| # if-no-files-found: ignore | |
| # - name: Stop PostgreSQL after pg_regress | |
| # if: steps.pg_regress.outcome != 'skipped' | |
| # run: ./scripts/pg-stop.sh |