ARG BASE_IMAGE=pggraph:source-archive-build-1.0.0 FROM ${BASE_IMAGE} USER pggraph COPY --chown=pggraph:pggraph alpha-graph/ /src/alpha/graph/ COPY --chown=pggraph:pggraph fixture/ /src/fixture/ RUN --mount=type=cache,target=/home/pggraph/.cargo/registry,uid=1000,gid=1000 \ --mount=type=cache,target=/src/alpha/graph/target,uid=1000,gid=1000 \ --mount=type=cache,target=/src/graph/target,uid=1000,gid=1000 \ set -euo pipefail; \ test "$(sed -n 's/^version = "\([^"]*\)"/\1/p' /src/alpha/graph/Cargo.toml | head -1)" = "0.1.8"; \ cd /src/alpha/graph; \ RUSTUP_TOOLCHAIN=1.96.0 cargo pgrx install \ --pg-config /usr/lib/postgresql/17/bin/pg_config \ --no-default-features --features pg17; \ cargo pgrx start pg17; \ export PGHOST=localhost PGPORT=28817 DBNAME=pggraph_alpha_transition; \ dropdb --if-exists "$DBNAME"; \ createdb "$DBNAME"; \ psql -X -v ON_ERROR_STOP=1 -d "$DBNAME" -c "CREATE EXTENSION graph VERSION '0.1.8';"; \ psql -X -v ON_ERROR_STOP=1 -d "$DBNAME" -f /src/fixture/source.sql; \ psql -X -v ON_ERROR_STOP=1 -d "$DBNAME" -f /src/fixture/register.sql; \ test "$(psql -XAt -v ON_ERROR_STOP=1 -d "$DBNAME" -c "SELECT md5(string_agg(id || '|' || name || '|' || coalesce(manager_id, ''), E'\\n' ORDER BY id)) FROM release_fixture_people")" = "7597c464628b5c2e0674ea849bd8337a"; \ psql -X -v ON_ERROR_STOP=1 -d "$DBNAME" -c "DROP EXTENSION graph CASCADE;"; \ test "$(psql -XAt -v ON_ERROR_STOP=1 -d "$DBNAME" -c 'SELECT count(*) FROM release_fixture_people')" = "3"; \ test "$(psql -XAt -v ON_ERROR_STOP=1 -d "$DBNAME" -c "SELECT md5(string_agg(id || '|' || name || '|' || coalesce(manager_id, ''), E'\\n' ORDER BY id)) FROM release_fixture_people")" = "7597c464628b5c2e0674ea849bd8337a"; \ cargo pgrx stop pg17; \ cd /src/graph; \ cargo pgrx install \ --pg-config /usr/lib/postgresql/17/bin/pg_config \ --no-default-features --features pg17; \ cargo pgrx start pg17; \ test "$(psql -XAt -v ON_ERROR_STOP=1 -d "$DBNAME" -c 'SELECT count(*) FROM release_fixture_people')" = "3"; \ psql -X -v ON_ERROR_STOP=1 -d "$DBNAME" -c "CREATE EXTENSION graph VERSION '1.0.0';"; \ psql -X -v ON_ERROR_STOP=1 -d "$DBNAME" -f /src/fixture/register.sql; \ psql -X -v ON_ERROR_STOP=1 -d "$DBNAME" -f /src/fixture/verify.sql; \ test "$(psql -XAt -v ON_ERROR_STOP=1 -d "$DBNAME" -c "SELECT extversion FROM pg_extension WHERE extname = 'graph'")" = "1.0.0"; \ cargo pgrx stop pg17