From 73a05cf399d1dd1c6a3380d031ddf9131fb44dcb Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 03:00:32 +0530 Subject: [PATCH 01/18] add basic migrations job --- .circleci/config.yml | 80 +++++++++++++++++++--------- cli/build/builder.dockerfile | 2 +- scripts/cli-migrations/Makefile | 23 ++++++++ scripts/cli-migrations/v2/Dockerfile | 2 +- 4 files changed, 79 insertions(+), 28 deletions(-) create mode 100644 scripts/cli-migrations/Makefile diff --git a/.circleci/config.yml b/.circleci/config.yml index 1b64abf665514..5a5c477a38f22 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -312,6 +312,46 @@ jobs: path: /build/_cli_output destination: cli + # test and build cli extension + test_and_build_cli_ext: + docker: + - image: hasura/graphql-engine-extension-cli-builder:20200225 + working_directory: ~/graphql-engine + steps: + - attach_workspace: + at: /build + - *skip_job_on_ciignore + - checkout + - restore_cache: + key: + cli-ext-npm-cache-v2-{{ checksum "cli-ext/package.json" }}-{{ checksum "cli-ext/package-lock.json" }} + - run: + name: install dependencies + working_directory: cli-ext + command: make ci-deps + - save_cache: + key: + cli-ext-npm-cache-v2-{{ checksum "cli-ext/package.json" }}-{{ checksum "cli-ext/package-lock.json" }} + paths: + - cli-ext/node_modules + - ~/.npm + - ~/.cache + - run: + name: build extension cli + working_directory: cli-ext + command: | + npm install -g pkg + npm run build + make deploy + make ci-copy-assets + - store_artifacts: + path: /build/_cli_ext_output + destination: cli_ext + - persist_to_workspace: + root: /build + paths: + - _cli_ext_output + # test and build cli test_and_build_cli: docker: @@ -356,44 +396,28 @@ jobs: paths: - _cli_output - test_and_build_cli_ext: + test_and_build_cli_migrations: docker: - - image: hasura/graphql-engine-extension-cli-builder:20200225 + - image: hasura/graphql-engine-server-builder:2020-01-14 working_directory: ~/graphql-engine steps: - attach_workspace: at: /build - *skip_job_on_ciignore - checkout - - restore_cache: - key: - cli-ext-npm-cache-v2-{{ checksum "cli-ext/package.json" }}-{{ checksum "cli-ext/package-lock.json" }} - - run: - name: install dependencies - working_directory: cli-ext - command: make ci-deps - - save_cache: - key: - cli-ext-npm-cache-v2-{{ checksum "cli-ext/package.json" }}-{{ checksum "cli-ext/package-lock.json" }} - paths: - - cli-ext/node_modules - - ~/.npm - - ~/.cache - run: - name: build extension cli - working_directory: cli-ext + name: build cli-migrations image + working_directory: scrfipts/cli-migrations command: | - npm install -g pkg - npm run build - make deploy - make ci-copy-assets + mkdir -p /build/_cli_migrations_output + make build-cli-migrations-v1 - store_artifacts: - path: /build/_cli_ext_output - destination: cli_ext + path: /build/_cli_migrations_output + destination: cli-migrations - persist_to_workspace: root: /build paths: - - _cli_ext_output + - _cli_migrations_output # build console assets build_console: @@ -531,7 +555,7 @@ jobs: workflows: version: 2 - workflow_v20200120: + workflow_v20200414: jobs: - check_build_worthiness: *filter_only_vtags - test_and_build_cli_ext: @@ -599,6 +623,10 @@ workflows: requires: - test_and_build_cli_ext - build_server + - test_and_build_cli_migrations: + <<: *filter_only_vtags + requires: + - test_and_build_cli - test_console: <<: *filter_only_vtags requires: diff --git a/cli/build/builder.dockerfile b/cli/build/builder.dockerfile index a527ef8a2ab2c..a61c76260ca14 100644 --- a/cli/build/builder.dockerfile +++ b/cli/build/builder.dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.10 +FROM golang:1.13 # setup the working directory WORKDIR /go/src/github.com/hasura/graphql-engine/cli diff --git a/scripts/cli-migrations/Makefile b/scripts/cli-migrations/Makefile new file mode 100644 index 0000000000000..ca1f16a9887b5 --- /dev/null +++ b/scripts/cli-migrations/Makefile @@ -0,0 +1,23 @@ +PWD := $(shell pwd) +PARENT_DIR := $(shell dirname $(PWD)) +VERSION ?= $(shell ../get-version.sh) +BINARY ?= /build/_cli_output/binaries/cli-hasura-linux-amd64 +REGISTRY ?= +IMAGE_TAG ?= "hasura/graphql-engine:${VERSION}.cli-migrations" +BUILD_OUTPUT := /build/_cli_migrations_output +CLI_EXT_MANIFEST_FILE := /build/_cli_ext_output/manifest-dev.yaml + +.PHONY: build-cli-migrations-v1 +build-cli-migrations-v1: + cd v1 + cp ${BINARY} . + docker build -t ${IMAGE_TAG} . + docker save -o '$(BUILD_OUTPUT)/v1.tar' '$(registry)/graphql-engine:$(VERSION)' + +.PHONY: build-cli-migrations-v2 +build-cli-migrations-v2: + cd v2 + cp ${BINARY} . + cp ${CLI_EXT_MANIFEST_FILE} manifest.yaml + docker build -t ${IMAGE_TAG} . + docker save -o '$(build_output)/v2.tar' '$(registry)/graphql-engine:$(VERSION)' \ No newline at end of file diff --git a/scripts/cli-migrations/v2/Dockerfile b/scripts/cli-migrations/v2/Dockerfile index 469e1cee077d9..0ab668c887ca4 100644 --- a/scripts/cli-migrations/v2/Dockerfile +++ b/scripts/cli-migrations/v2/Dockerfile @@ -4,7 +4,7 @@ RUN apt-get update && apt-get download libstdc++6 FROM hasura/graphql-engine:v1.1.1 -# install libstdc++6 +# install libstdc++6 from .deb file COPY --from=packager /tmp/libstdc++6* . RUN busybox dpkg-deb -x libstdc++6*.deb / \ && rm libstdc++6*.deb From 319021a82644cc17d00c711a3d1626adf0c76c86 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 03:08:36 +0530 Subject: [PATCH 02/18] WIP --- .circleci/config.yml | 2 ++ scripts/cli-migrations/Makefile | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5a5c477a38f22..dd980bacab0fd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -405,6 +405,7 @@ jobs: at: /build - *skip_job_on_ciignore - checkout + - *setup_remote_docker - run: name: build cli-migrations image working_directory: scrfipts/cli-migrations @@ -638,4 +639,5 @@ workflows: requires: - build_image - test_console + - test_and_build_cli_migrations - all_server_tests_pass diff --git a/scripts/cli-migrations/Makefile b/scripts/cli-migrations/Makefile index ca1f16a9887b5..8e0dd855547bc 100644 --- a/scripts/cli-migrations/Makefile +++ b/scripts/cli-migrations/Makefile @@ -19,5 +19,5 @@ build-cli-migrations-v2: cd v2 cp ${BINARY} . cp ${CLI_EXT_MANIFEST_FILE} manifest.yaml - docker build -t ${IMAGE_TAG} . + docker build -t '${IMAGE_TAG}-v2' . docker save -o '$(build_output)/v2.tar' '$(registry)/graphql-engine:$(VERSION)' \ No newline at end of file From 316f1379ed6f31e2e4862f684f7934b8aa8ac289 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 03:10:55 +0530 Subject: [PATCH 03/18] WIP --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dd980bacab0fd..1538bd572e04d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -398,7 +398,7 @@ jobs: test_and_build_cli_migrations: docker: - - image: hasura/graphql-engine-server-builder:2020-01-14 + - image: hasura/graphql-engine-deployer:v0.4 working_directory: ~/graphql-engine steps: - attach_workspace: From d457f4166caf24b018d7a88b0dbd810cf0b5813d Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 03:11:43 +0530 Subject: [PATCH 04/18] WIP --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1538bd572e04d..7ee7fe7b71839 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -408,10 +408,11 @@ jobs: - *setup_remote_docker - run: name: build cli-migrations image - working_directory: scrfipts/cli-migrations + working_directory: scripts/cli-migrations command: | mkdir -p /build/_cli_migrations_output make build-cli-migrations-v1 + make build-cli-migrations-v2 - store_artifacts: path: /build/_cli_migrations_output destination: cli-migrations From c6e49f0daa976cc242b001492618d0ec86a10122 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 03:37:41 +0530 Subject: [PATCH 05/18] WIP --- .circleci/config.yml | 3 +-- scripts/cli-migrations/Makefile | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7ee7fe7b71839..e3d3c97b0069e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -411,8 +411,7 @@ jobs: working_directory: scripts/cli-migrations command: | mkdir -p /build/_cli_migrations_output - make build-cli-migrations-v1 - make build-cli-migrations-v2 + make all - store_artifacts: path: /build/_cli_migrations_output destination: cli-migrations diff --git a/scripts/cli-migrations/Makefile b/scripts/cli-migrations/Makefile index 8e0dd855547bc..8e59d86d04f00 100644 --- a/scripts/cli-migrations/Makefile +++ b/scripts/cli-migrations/Makefile @@ -1,23 +1,29 @@ PWD := $(shell pwd) PARENT_DIR := $(shell dirname $(PWD)) VERSION ?= $(shell ../get-version.sh) -BINARY ?= /build/_cli_output/binaries/cli-hasura-linux-amd64 -REGISTRY ?= -IMAGE_TAG ?= "hasura/graphql-engine:${VERSION}.cli-migrations" -BUILD_OUTPUT := /build/_cli_migrations_output -CLI_EXT_MANIFEST_FILE := /build/_cli_ext_output/manifest-dev.yaml +BUILD_DIR ?= /build +BINARY ?= $(BUILD_DIR)/_cli_output/binaries/cli-hasura-linux-amd64 +REGISTRY ?= hasura +IMAGE_TAG ?= ${REGISTRY}/graphql-engine:$(VERSION).cli-migrations +BUILD_OUTPUT ?= $(BUILD_DIR)/_cli_migrations_output +CLI_EXT_MANIFEST_FILE ?= $(BUILD_DIR)/_cli_ext_output/manifest-dev.yaml .PHONY: build-cli-migrations-v1 +.ONESHELL: build-cli-migrations-v1: cd v1 cp ${BINARY} . docker build -t ${IMAGE_TAG} . - docker save -o '$(BUILD_OUTPUT)/v1.tar' '$(registry)/graphql-engine:$(VERSION)' + docker save -o '$(BUILD_OUTPUT)/v1.tar' '$(IMAGE_TAG)' .PHONY: build-cli-migrations-v2 +.ONESHELL: build-cli-migrations-v2: cd v2 cp ${BINARY} . cp ${CLI_EXT_MANIFEST_FILE} manifest.yaml docker build -t '${IMAGE_TAG}-v2' . - docker save -o '$(build_output)/v2.tar' '$(registry)/graphql-engine:$(VERSION)' \ No newline at end of file + docker save -o '$(BUILD_OUTPUT)/v2.tar' '$(IMAGE_TAG)-v2' + +.PHONY: all +all: build-cli-migrations-v1 build-cli-migrations-v2 \ No newline at end of file From 226cb2520a747829f18d21c32f463607c0b601ef Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 04:18:57 +0530 Subject: [PATCH 06/18] WIP --- .circleci/config.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e3d3c97b0069e..ac42f747cd649 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -407,7 +407,13 @@ jobs: - checkout - *setup_remote_docker - run: - name: build cli-migrations image + name: Install Docker Compose + command: | + set -x + curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose + chmod +x /usr/local/bin/docker-compose + - run: + name: Build cli-migrations image working_directory: scripts/cli-migrations command: | mkdir -p /build/_cli_migrations_output From fabd78dccc8588dd8b8938621763b28f36a0505b Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 04:35:31 +0530 Subject: [PATCH 07/18] WIP --- scripts/cli-migrations/Makefile | 10 ++++-- .../v1/test/docker-compose.yaml | 19 ++++++++++++ scripts/cli-migrations/v1/test/test.sh | 31 +++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 scripts/cli-migrations/v1/test/docker-compose.yaml create mode 100755 scripts/cli-migrations/v1/test/test.sh diff --git a/scripts/cli-migrations/Makefile b/scripts/cli-migrations/Makefile index 8e59d86d04f00..9fef1bbd38ed0 100644 --- a/scripts/cli-migrations/Makefile +++ b/scripts/cli-migrations/Makefile @@ -4,7 +4,7 @@ VERSION ?= $(shell ../get-version.sh) BUILD_DIR ?= /build BINARY ?= $(BUILD_DIR)/_cli_output/binaries/cli-hasura-linux-amd64 REGISTRY ?= hasura -IMAGE_TAG ?= ${REGISTRY}/graphql-engine:$(VERSION).cli-migrations +IMAGE_TAG ?= ${REGISTRY}/graphql-engine:cli-migrations BUILD_OUTPUT ?= $(BUILD_DIR)/_cli_migrations_output CLI_EXT_MANIFEST_FILE ?= $(BUILD_DIR)/_cli_ext_output/manifest-dev.yaml @@ -16,6 +16,12 @@ build-cli-migrations-v1: docker build -t ${IMAGE_TAG} . docker save -o '$(BUILD_OUTPUT)/v1.tar' '$(IMAGE_TAG)' +.PHONY: test-cli-migrations-v1 +.ONESHELL: +test-cli-migrations-v1: + cd v1/test + ./test.sh + .PHONY: build-cli-migrations-v2 .ONESHELL: build-cli-migrations-v2: @@ -26,4 +32,4 @@ build-cli-migrations-v2: docker save -o '$(BUILD_OUTPUT)/v2.tar' '$(IMAGE_TAG)-v2' .PHONY: all -all: build-cli-migrations-v1 build-cli-migrations-v2 \ No newline at end of file +all: build-cli-migrations-v1 build-cli-migrations-v2 test-cli-migrations-v1 \ No newline at end of file diff --git a/scripts/cli-migrations/v1/test/docker-compose.yaml b/scripts/cli-migrations/v1/test/docker-compose.yaml new file mode 100644 index 0000000000000..1d25fa707641f --- /dev/null +++ b/scripts/cli-migrations/v1/test/docker-compose.yaml @@ -0,0 +1,19 @@ +version: '3.6' +services: + postgres: + image: postgres:12 + restart: always + environment: + POSTGRES_PASSWORD: postgrespassword + graphql-engine: + container_name: server + image: hasura/graphql-engine:cli-migrations + ports: + - "8080:8080" + depends_on: + - "postgres" + restart: always + environment: + HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres + HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console + HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log \ No newline at end of file diff --git a/scripts/cli-migrations/v1/test/test.sh b/scripts/cli-migrations/v1/test/test.sh new file mode 100755 index 0000000000000..cf7a1359fdc0b --- /dev/null +++ b/scripts/cli-migrations/v1/test/test.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +set -evo pipefail +IFS=$'\n\t' +ROOT="$(readlink -f ${BASH_SOURCE[0]%/*}/../../)" + +fail_if_port_busy() { + local PORT=$1 + if nc -z localhost $PORT ; then + echo "Port $PORT is busy. Exiting" + exit 1 + fi +} + +wait_for_port() { + local PORT=$1 + echo "waiting for $PORT" + for _ in $(seq 1 60); + do + nc -z localhost $PORT && echo "port $PORT is ready" && return + echo -n . + sleep 0.2 + done + echo "Failed waiting for $PORT" && exit 1 +} + +fail_if_port_busy 8080 +docker-compose up -d +docker run --network container:server appropriate/curl --retry 10 --retry-connrefused http://localhost:8080/v1/version +wait_for_port 8080 +docker-compose down -v \ No newline at end of file From 8ec7633a3f928bde1d696497edf43b14e8a18abf Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 04:41:47 +0530 Subject: [PATCH 08/18] WIP --- .circleci/cli-migrations-builder.dockerfile | 15 +++++++++++++++ .circleci/config.yml | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 .circleci/cli-migrations-builder.dockerfile diff --git a/.circleci/cli-migrations-builder.dockerfile b/.circleci/cli-migrations-builder.dockerfile new file mode 100644 index 0000000000000..d652ef97aeadf --- /dev/null +++ b/.circleci/cli-migrations-builder.dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:16.04 + +ARG docker_ver="17.09.0-ce" + +RUN apt-get -y update \ + && apt-get install -y curl make xz-utils git python \ + && curl -Lo /tmp/docker-${docker_ver}.tgz https://download.docker.com/linux/static/stable/x86_64/docker-${docker_ver}.tgz \ + && tar -xz -C /tmp -f /tmp/docker-${docker_ver}.tgz \ + && mv /tmp/docker/* /usr/bin \ + && apt-get -y auto-remove \ + && apt-get -y clean \ + && rm -rf /var/lib/apt/lists/* \ + && rm -rf /usr/share/doc/ \ + && rm -rf /usr/share/man/ \ + && rm -rf /usr/share/locale/ diff --git a/.circleci/config.yml b/.circleci/config.yml index ac42f747cd649..8e6192e111c6b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -398,7 +398,7 @@ jobs: test_and_build_cli_migrations: docker: - - image: hasura/graphql-engine-deployer:v0.4 + - image: hasura/graphql-engine-cli-migrations-builder:20200414 working_directory: ~/graphql-engine steps: - attach_workspace: From 3e7e90508d37f98e79d785698d8f3a66c09dada1 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 05:12:44 +0530 Subject: [PATCH 09/18] WIP --- scripts/cli-migrations/Makefile | 3 +-- scripts/cli-migrations/v1/test/test.sh | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/cli-migrations/Makefile b/scripts/cli-migrations/Makefile index 9fef1bbd38ed0..de0968c1d089d 100644 --- a/scripts/cli-migrations/Makefile +++ b/scripts/cli-migrations/Makefile @@ -3,8 +3,7 @@ PARENT_DIR := $(shell dirname $(PWD)) VERSION ?= $(shell ../get-version.sh) BUILD_DIR ?= /build BINARY ?= $(BUILD_DIR)/_cli_output/binaries/cli-hasura-linux-amd64 -REGISTRY ?= hasura -IMAGE_TAG ?= ${REGISTRY}/graphql-engine:cli-migrations +IMAGE_TAG ?= cli-migrations BUILD_OUTPUT ?= $(BUILD_DIR)/_cli_migrations_output CLI_EXT_MANIFEST_FILE ?= $(BUILD_DIR)/_cli_ext_output/manifest-dev.yaml diff --git a/scripts/cli-migrations/v1/test/test.sh b/scripts/cli-migrations/v1/test/test.sh index cf7a1359fdc0b..6b213c71410dd 100755 --- a/scripts/cli-migrations/v1/test/test.sh +++ b/scripts/cli-migrations/v1/test/test.sh @@ -25,7 +25,7 @@ wait_for_port() { } fail_if_port_busy 8080 +set -x docker-compose up -d -docker run --network container:server appropriate/curl --retry 10 --retry-connrefused http://localhost:8080/v1/version -wait_for_port 8080 +docker run --network container:server appropriate/curl --retry 10 --retry-delay 6 --retry-connrefused http://localhost:8080/v1/version docker-compose down -v \ No newline at end of file From 1af5ff56668c6c4bba4532843eb163da74a8a6c7 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 05:13:18 +0530 Subject: [PATCH 10/18] WIP --- scripts/cli-migrations/v1/test/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/cli-migrations/v1/test/docker-compose.yaml b/scripts/cli-migrations/v1/test/docker-compose.yaml index 1d25fa707641f..07d1fa8e3f19f 100644 --- a/scripts/cli-migrations/v1/test/docker-compose.yaml +++ b/scripts/cli-migrations/v1/test/docker-compose.yaml @@ -7,7 +7,7 @@ services: POSTGRES_PASSWORD: postgrespassword graphql-engine: container_name: server - image: hasura/graphql-engine:cli-migrations + image: cli-migrations ports: - "8080:8080" depends_on: From 4c96f38970c20d0ef9226e0779bac99dc8a919a6 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 05:23:27 +0530 Subject: [PATCH 11/18] WIP --- scripts/cli-migrations/v1/test/docker-compose.yaml | 2 +- scripts/cli-migrations/v1/test/test.sh | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/cli-migrations/v1/test/docker-compose.yaml b/scripts/cli-migrations/v1/test/docker-compose.yaml index 07d1fa8e3f19f..9419860f23ea4 100644 --- a/scripts/cli-migrations/v1/test/docker-compose.yaml +++ b/scripts/cli-migrations/v1/test/docker-compose.yaml @@ -6,7 +6,7 @@ services: environment: POSTGRES_PASSWORD: postgrespassword graphql-engine: - container_name: server + container_name: graphql-engine image: cli-migrations ports: - "8080:8080" diff --git a/scripts/cli-migrations/v1/test/test.sh b/scripts/cli-migrations/v1/test/test.sh index 6b213c71410dd..2f695de986f52 100755 --- a/scripts/cli-migrations/v1/test/test.sh +++ b/scripts/cli-migrations/v1/test/test.sh @@ -25,7 +25,8 @@ wait_for_port() { } fail_if_port_busy 8080 -set -x -docker-compose up -d -docker run --network container:server appropriate/curl --retry 10 --retry-delay 6 --retry-connrefused http://localhost:8080/v1/version +docker-compose up --no-start graphql-engine +docker cp ./migrations/. graphql-engine:/hasura-migrations +docker-compose up -d --no-recreate graphql-engine +docker run --network container:graphql-engine appropriate/curl --retry 10 --retry-delay 6 --retry-connrefused http://localhost:8080/v1/version docker-compose down -v \ No newline at end of file From 3c1ffedf5cc1f0c2354743d9a9d31f653fc9bc8f Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 05:40:11 +0530 Subject: [PATCH 12/18] WIP --- .../1586822388261_create_table_public_test/down.yaml | 5 +++++ .../1586822388261_create_table_public_test/up.yaml | 9 +++++++++ scripts/cli-migrations/v1/test/migrations/metadata.yaml | 5 +++++ scripts/cli-migrations/v1/test/test.sh | 2 +- 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 scripts/cli-migrations/v1/test/migrations/1586822388261_create_table_public_test/down.yaml create mode 100644 scripts/cli-migrations/v1/test/migrations/1586822388261_create_table_public_test/up.yaml create mode 100644 scripts/cli-migrations/v1/test/migrations/metadata.yaml diff --git a/scripts/cli-migrations/v1/test/migrations/1586822388261_create_table_public_test/down.yaml b/scripts/cli-migrations/v1/test/migrations/1586822388261_create_table_public_test/down.yaml new file mode 100644 index 0000000000000..5de2edb15b2f8 --- /dev/null +++ b/scripts/cli-migrations/v1/test/migrations/1586822388261_create_table_public_test/down.yaml @@ -0,0 +1,5 @@ +- args: + cascade: false + read_only: false + sql: DROP TABLE "public"."test"; + type: run_sql diff --git a/scripts/cli-migrations/v1/test/migrations/1586822388261_create_table_public_test/up.yaml b/scripts/cli-migrations/v1/test/migrations/1586822388261_create_table_public_test/up.yaml new file mode 100644 index 0000000000000..5f7da0cb1b703 --- /dev/null +++ b/scripts/cli-migrations/v1/test/migrations/1586822388261_create_table_public_test/up.yaml @@ -0,0 +1,9 @@ +- args: + cascade: false + read_only: false + sql: CREATE TABLE "public"."test"("id" serial NOT NULL, PRIMARY KEY ("id") ); + type: run_sql +- args: + name: test + schema: public + type: add_existing_table_or_view diff --git a/scripts/cli-migrations/v1/test/migrations/metadata.yaml b/scripts/cli-migrations/v1/test/migrations/metadata.yaml new file mode 100644 index 0000000000000..8e2318e04b2e4 --- /dev/null +++ b/scripts/cli-migrations/v1/test/migrations/metadata.yaml @@ -0,0 +1,5 @@ +version: 2 +tables: +- table: + schema: public + name: test diff --git a/scripts/cli-migrations/v1/test/test.sh b/scripts/cli-migrations/v1/test/test.sh index 2f695de986f52..e883da3050966 100755 --- a/scripts/cli-migrations/v1/test/test.sh +++ b/scripts/cli-migrations/v1/test/test.sh @@ -26,7 +26,7 @@ wait_for_port() { fail_if_port_busy 8080 docker-compose up --no-start graphql-engine -docker cp ./migrations/. graphql-engine:/hasura-migrations +docker cp migrations/. graphql-engine:/hasura-migrations docker-compose up -d --no-recreate graphql-engine docker run --network container:graphql-engine appropriate/curl --retry 10 --retry-delay 6 --retry-connrefused http://localhost:8080/v1/version docker-compose down -v \ No newline at end of file From a1793a90490953a18330090b4ed22847840050a0 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 06:36:05 +0530 Subject: [PATCH 13/18] WIP --- scripts/cli-migrations/v1/test/test.sh | 22 +++++-------------- .../v2/test/docker-compose.yaml | 19 ++++++++++++++++ .../v2/test/metadata/actions.graphql | 1 + .../v2/test/metadata/actions.yaml | 6 +++++ .../v2/test/metadata/allow_list.yaml | 1 + .../v2/test/metadata/functions.yaml | 1 + .../v2/test/metadata/query_collections.yaml | 1 + .../v2/test/metadata/remote_schemas.yaml | 1 + .../v2/test/metadata/tables.yaml | 3 +++ .../v2/test/metadata/version.yaml | 1 + .../down.sql | 1 + .../up.sql | 1 + scripts/cli-migrations/v2/test/test.sh | 22 +++++++++++++++++++ 13 files changed, 64 insertions(+), 16 deletions(-) create mode 100644 scripts/cli-migrations/v2/test/docker-compose.yaml create mode 100644 scripts/cli-migrations/v2/test/metadata/actions.graphql create mode 100644 scripts/cli-migrations/v2/test/metadata/actions.yaml create mode 100644 scripts/cli-migrations/v2/test/metadata/allow_list.yaml create mode 100644 scripts/cli-migrations/v2/test/metadata/functions.yaml create mode 100644 scripts/cli-migrations/v2/test/metadata/query_collections.yaml create mode 100644 scripts/cli-migrations/v2/test/metadata/remote_schemas.yaml create mode 100644 scripts/cli-migrations/v2/test/metadata/tables.yaml create mode 100644 scripts/cli-migrations/v2/test/metadata/version.yaml create mode 100644 scripts/cli-migrations/v2/test/migrations/1586823136625_create_table_public_test/down.sql create mode 100644 scripts/cli-migrations/v2/test/migrations/1586823136625_create_table_public_test/up.sql create mode 100755 scripts/cli-migrations/v2/test/test.sh diff --git a/scripts/cli-migrations/v1/test/test.sh b/scripts/cli-migrations/v1/test/test.sh index e883da3050966..b8dac165ca672 100755 --- a/scripts/cli-migrations/v1/test/test.sh +++ b/scripts/cli-migrations/v1/test/test.sh @@ -4,29 +4,19 @@ set -evo pipefail IFS=$'\n\t' ROOT="$(readlink -f ${BASH_SOURCE[0]%/*}/../../)" -fail_if_port_busy() { - local PORT=$1 - if nc -z localhost $PORT ; then - echo "Port $PORT is busy. Exiting" - exit 1 - fi -} - -wait_for_port() { - local PORT=$1 - echo "waiting for $PORT" +wait_for_server() { + echo "waiting for server" for _ in $(seq 1 60); do - nc -z localhost $PORT && echo "port $PORT is ready" && return + docker run --network container:graphql-engine appropriate/curl http://127.0.0.1:8080/v1/version && return echo -n . - sleep 0.2 + sleep 1 done - echo "Failed waiting for $PORT" && exit 1 + echo "Failed waiting for server" && exit 1 } -fail_if_port_busy 8080 docker-compose up --no-start graphql-engine docker cp migrations/. graphql-engine:/hasura-migrations docker-compose up -d --no-recreate graphql-engine -docker run --network container:graphql-engine appropriate/curl --retry 10 --retry-delay 6 --retry-connrefused http://localhost:8080/v1/version +wait_for_server docker-compose down -v \ No newline at end of file diff --git a/scripts/cli-migrations/v2/test/docker-compose.yaml b/scripts/cli-migrations/v2/test/docker-compose.yaml new file mode 100644 index 0000000000000..ca2ba3f45ddb7 --- /dev/null +++ b/scripts/cli-migrations/v2/test/docker-compose.yaml @@ -0,0 +1,19 @@ +version: '3.6' +services: + postgres: + image: postgres:12 + restart: always + environment: + POSTGRES_PASSWORD: postgrespassword + graphql-engine: + container_name: graphql-engine + image: cli-migrations-v2 + ports: + - "8080:8080" + depends_on: + - "postgres" + restart: always + environment: + HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres + HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console + HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log \ No newline at end of file diff --git a/scripts/cli-migrations/v2/test/metadata/actions.graphql b/scripts/cli-migrations/v2/test/metadata/actions.graphql new file mode 100644 index 0000000000000..8b137891791fe --- /dev/null +++ b/scripts/cli-migrations/v2/test/metadata/actions.graphql @@ -0,0 +1 @@ + diff --git a/scripts/cli-migrations/v2/test/metadata/actions.yaml b/scripts/cli-migrations/v2/test/metadata/actions.yaml new file mode 100644 index 0000000000000..1edb4c2ffc545 --- /dev/null +++ b/scripts/cli-migrations/v2/test/metadata/actions.yaml @@ -0,0 +1,6 @@ +actions: [] +custom_types: + enums: [] + input_objects: [] + objects: [] + scalars: [] diff --git a/scripts/cli-migrations/v2/test/metadata/allow_list.yaml b/scripts/cli-migrations/v2/test/metadata/allow_list.yaml new file mode 100644 index 0000000000000..fe51488c7066f --- /dev/null +++ b/scripts/cli-migrations/v2/test/metadata/allow_list.yaml @@ -0,0 +1 @@ +[] diff --git a/scripts/cli-migrations/v2/test/metadata/functions.yaml b/scripts/cli-migrations/v2/test/metadata/functions.yaml new file mode 100644 index 0000000000000..fe51488c7066f --- /dev/null +++ b/scripts/cli-migrations/v2/test/metadata/functions.yaml @@ -0,0 +1 @@ +[] diff --git a/scripts/cli-migrations/v2/test/metadata/query_collections.yaml b/scripts/cli-migrations/v2/test/metadata/query_collections.yaml new file mode 100644 index 0000000000000..fe51488c7066f --- /dev/null +++ b/scripts/cli-migrations/v2/test/metadata/query_collections.yaml @@ -0,0 +1 @@ +[] diff --git a/scripts/cli-migrations/v2/test/metadata/remote_schemas.yaml b/scripts/cli-migrations/v2/test/metadata/remote_schemas.yaml new file mode 100644 index 0000000000000..fe51488c7066f --- /dev/null +++ b/scripts/cli-migrations/v2/test/metadata/remote_schemas.yaml @@ -0,0 +1 @@ +[] diff --git a/scripts/cli-migrations/v2/test/metadata/tables.yaml b/scripts/cli-migrations/v2/test/metadata/tables.yaml new file mode 100644 index 0000000000000..7f4231a629acc --- /dev/null +++ b/scripts/cli-migrations/v2/test/metadata/tables.yaml @@ -0,0 +1,3 @@ +- table: + schema: public + name: test diff --git a/scripts/cli-migrations/v2/test/metadata/version.yaml b/scripts/cli-migrations/v2/test/metadata/version.yaml new file mode 100644 index 0000000000000..22817d2a9c7fc --- /dev/null +++ b/scripts/cli-migrations/v2/test/metadata/version.yaml @@ -0,0 +1 @@ +version: 2 diff --git a/scripts/cli-migrations/v2/test/migrations/1586823136625_create_table_public_test/down.sql b/scripts/cli-migrations/v2/test/migrations/1586823136625_create_table_public_test/down.sql new file mode 100644 index 0000000000000..83ed71daadd7f --- /dev/null +++ b/scripts/cli-migrations/v2/test/migrations/1586823136625_create_table_public_test/down.sql @@ -0,0 +1 @@ +DROP TABLE "public"."test"; diff --git a/scripts/cli-migrations/v2/test/migrations/1586823136625_create_table_public_test/up.sql b/scripts/cli-migrations/v2/test/migrations/1586823136625_create_table_public_test/up.sql new file mode 100644 index 0000000000000..1b52e744e104a --- /dev/null +++ b/scripts/cli-migrations/v2/test/migrations/1586823136625_create_table_public_test/up.sql @@ -0,0 +1 @@ +CREATE TABLE "public"."test"("id" serial NOT NULL, PRIMARY KEY ("id") ); diff --git a/scripts/cli-migrations/v2/test/test.sh b/scripts/cli-migrations/v2/test/test.sh new file mode 100755 index 0000000000000..b8dac165ca672 --- /dev/null +++ b/scripts/cli-migrations/v2/test/test.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -evo pipefail +IFS=$'\n\t' +ROOT="$(readlink -f ${BASH_SOURCE[0]%/*}/../../)" + +wait_for_server() { + echo "waiting for server" + for _ in $(seq 1 60); + do + docker run --network container:graphql-engine appropriate/curl http://127.0.0.1:8080/v1/version && return + echo -n . + sleep 1 + done + echo "Failed waiting for server" && exit 1 +} + +docker-compose up --no-start graphql-engine +docker cp migrations/. graphql-engine:/hasura-migrations +docker-compose up -d --no-recreate graphql-engine +wait_for_server +docker-compose down -v \ No newline at end of file From 4fd7d741aa812c13bbec39ac785a11c86340a0a4 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Tue, 14 Apr 2020 06:37:02 +0530 Subject: [PATCH 14/18] update Makefile --- scripts/cli-migrations/Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/cli-migrations/Makefile b/scripts/cli-migrations/Makefile index de0968c1d089d..a9335e65dc843 100644 --- a/scripts/cli-migrations/Makefile +++ b/scripts/cli-migrations/Makefile @@ -30,5 +30,11 @@ build-cli-migrations-v2: docker build -t '${IMAGE_TAG}-v2' . docker save -o '$(BUILD_OUTPUT)/v2.tar' '$(IMAGE_TAG)-v2' +.PHONY: test-cli-migrations-v2 +.ONESHELL: +test-cli-migrations-v2: + cd v2/test + ./test.sh + .PHONY: all -all: build-cli-migrations-v1 build-cli-migrations-v2 test-cli-migrations-v1 \ No newline at end of file +all: build-cli-migrations-v1 build-cli-migrations-v2 test-cli-migrations-v1 test-cli-migrations-v2 \ No newline at end of file From 36349842c8df15c3eed80dbf37cf1b500c4667fd Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Wed, 15 Apr 2020 01:35:03 +0530 Subject: [PATCH 15/18] check if metadata and migrations were applied --- .circleci/deploy.sh | 11 ++++------- scripts/cli-migrations/v1/test/test.sh | 8 ++++++++ .../cli-migrations/v1/test/validation/metadata.json | 12 ++++++++++++ .../v1/test/validation/schema_migrations.json | 13 +++++++++++++ scripts/cli-migrations/v2/test/test.sh | 10 ++++++++++ .../cli-migrations/v2/test/validation/metadata.json | 12 ++++++++++++ .../v2/test/validation/schema_migrations.json | 13 +++++++++++++ 7 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 scripts/cli-migrations/v1/test/validation/metadata.json create mode 100644 scripts/cli-migrations/v1/test/validation/schema_migrations.json create mode 100644 scripts/cli-migrations/v2/test/validation/metadata.json create mode 100644 scripts/cli-migrations/v2/test/validation/schema_migrations.json diff --git a/.circleci/deploy.sh b/.circleci/deploy.sh index 4cec11afa3cf5..d399cb4f1a4ae 100755 --- a/.circleci/deploy.sh +++ b/.circleci/deploy.sh @@ -136,19 +136,16 @@ deploy_cli_ext() { # build and push container for auto-migrations build_and_push_cli_migrations_image_v1() { IMAGE_TAG="hasura/graphql-engine:${CIRCLE_TAG}.cli-migrations" - cd "$ROOT/scripts/cli-migrations/v1" - cp /build/_cli_output/binaries/cli-hasura-linux-amd64 . - docker build -t "$IMAGE_TAG" . + docker load -i /build/_cli_migrations_output/v1.tar + docker tag cli-migrations "$IMAGE_TAG" docker push "$IMAGE_TAG" } # build and push container for auto-migrations-v2 build_and_push_cli_migrations_image_v2() { IMAGE_TAG="hasura/graphql-engine:${CIRCLE_TAG}.cli-migrations-v2" - cd "$ROOT/scripts/cli-migrations/v2" - cp /build/_cli_output/binaries/cli-hasura-linux-amd64 . - cp /build/_cli_ext_output/manifest-dev.yaml manifest.yaml - docker build -t "$IMAGE_TAG" . + docker load -i /build/_cli_migrations_output/v2.tar + docker tag cli-migrations-v2 "$IMAGE_TAG" docker push "$IMAGE_TAG" } diff --git a/scripts/cli-migrations/v1/test/test.sh b/scripts/cli-migrations/v1/test/test.sh index b8dac165ca672..005d81493e776 100755 --- a/scripts/cli-migrations/v1/test/test.sh +++ b/scripts/cli-migrations/v1/test/test.sh @@ -15,8 +15,16 @@ wait_for_server() { echo "Failed waiting for server" && exit 1 } +# start postgres docker-compose up --no-start graphql-engine +# copy migrations directory to /hasura-migrations docker cp migrations/. graphql-engine:/hasura-migrations +# start graphql-engine docker-compose up -d --no-recreate graphql-engine wait_for_server +# export metadata and run diff with validation/metadata.json +docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "export_metadata", "args" : {} }' localhost:8080/v1/query | jq '.' | diff validation/metadata.json - +# get list of migrations applied from graphql-engine server +docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "run_sql", "args" : {"sql": "select * from hdb_catalog.schema_migrations"} }' localhost:8080/v1/query | jq '.' | diff validation/schema_migrations.json - +# delete postgres and graphql-engine docker-compose down -v \ No newline at end of file diff --git a/scripts/cli-migrations/v1/test/validation/metadata.json b/scripts/cli-migrations/v1/test/validation/metadata.json new file mode 100644 index 0000000000000..6a21fb15c09b9 --- /dev/null +++ b/scripts/cli-migrations/v1/test/validation/metadata.json @@ -0,0 +1,12 @@ +{ + "version": 2, + "tables": [ + { + "table": { + "schema": "public", + "name": "test" + } + } + ] + } + \ No newline at end of file diff --git a/scripts/cli-migrations/v1/test/validation/schema_migrations.json b/scripts/cli-migrations/v1/test/validation/schema_migrations.json new file mode 100644 index 0000000000000..592963e8ca44b --- /dev/null +++ b/scripts/cli-migrations/v1/test/validation/schema_migrations.json @@ -0,0 +1,13 @@ +{ + "result_type": "TuplesOk", + "result": [ + [ + "version", + "dirty" + ], + [ + "1586822388261", + "f" + ] + ] +} diff --git a/scripts/cli-migrations/v2/test/test.sh b/scripts/cli-migrations/v2/test/test.sh index b8dac165ca672..5bbca11efc888 100755 --- a/scripts/cli-migrations/v2/test/test.sh +++ b/scripts/cli-migrations/v2/test/test.sh @@ -15,8 +15,18 @@ wait_for_server() { echo "Failed waiting for server" && exit 1 } +# start postgres docker-compose up --no-start graphql-engine +# copy migrations directory to /hasura-migrations docker cp migrations/. graphql-engine:/hasura-migrations +# copy metadata directory to /hasura-metadata +docker cp metadata/. graphql-engine:/hasura-metadata +# start graphql-engine docker-compose up -d --no-recreate graphql-engine wait_for_server +# export metadata and run diff with validation/metadata.json +docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "export_metadata", "args" : {} }' localhost:8080/v1/query | jq '.' | diff validation/metadata.json - +# get list of migrations applied from graphql-engine server +docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "run_sql", "args" : {"sql": "select * from hdb_catalog.schema_migrations"} }' localhost:8080/v1/query | jq '.' | diff validation/schema_migrations.json - +# delete postgres and graphql-engine docker-compose down -v \ No newline at end of file diff --git a/scripts/cli-migrations/v2/test/validation/metadata.json b/scripts/cli-migrations/v2/test/validation/metadata.json new file mode 100644 index 0000000000000..6a21fb15c09b9 --- /dev/null +++ b/scripts/cli-migrations/v2/test/validation/metadata.json @@ -0,0 +1,12 @@ +{ + "version": 2, + "tables": [ + { + "table": { + "schema": "public", + "name": "test" + } + } + ] + } + \ No newline at end of file diff --git a/scripts/cli-migrations/v2/test/validation/schema_migrations.json b/scripts/cli-migrations/v2/test/validation/schema_migrations.json new file mode 100644 index 0000000000000..592963e8ca44b --- /dev/null +++ b/scripts/cli-migrations/v2/test/validation/schema_migrations.json @@ -0,0 +1,13 @@ +{ + "result_type": "TuplesOk", + "result": [ + [ + "version", + "dirty" + ], + [ + "1586822388261", + "f" + ] + ] +} From ae718a7d603983191f870692904a09055956ef84 Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Wed, 15 Apr 2020 01:54:55 +0530 Subject: [PATCH 16/18] install jq --- .circleci/cli-migrations-builder.dockerfile | 2 +- .circleci/config.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/cli-migrations-builder.dockerfile b/.circleci/cli-migrations-builder.dockerfile index d652ef97aeadf..e8945607a4053 100644 --- a/.circleci/cli-migrations-builder.dockerfile +++ b/.circleci/cli-migrations-builder.dockerfile @@ -3,7 +3,7 @@ FROM ubuntu:16.04 ARG docker_ver="17.09.0-ce" RUN apt-get -y update \ - && apt-get install -y curl make xz-utils git python \ + && apt-get install -y curl make xz-utils git python jq \ && curl -Lo /tmp/docker-${docker_ver}.tgz https://download.docker.com/linux/static/stable/x86_64/docker-${docker_ver}.tgz \ && tar -xz -C /tmp -f /tmp/docker-${docker_ver}.tgz \ && mv /tmp/docker/* /usr/bin \ diff --git a/.circleci/config.yml b/.circleci/config.yml index 8e6192e111c6b..9893ce83468ef 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -398,7 +398,7 @@ jobs: test_and_build_cli_migrations: docker: - - image: hasura/graphql-engine-cli-migrations-builder:20200414 + - image: hasura/graphql-engine-cli-migrations-builder:20200415 working_directory: ~/graphql-engine steps: - attach_workspace: From 08afcaafc419dad59822ff0f257e59dc872801fb Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Wed, 15 Apr 2020 02:18:36 +0530 Subject: [PATCH 17/18] fix validation files --- .../v1/test/validation/metadata.json | 19 +++++++++---------- .../v1/test/validation/schema_migrations.json | 2 +- .../v2/test/validation/metadata.json | 19 +++++++++---------- .../v2/test/validation/schema_migrations.json | 4 ++-- 4 files changed, 21 insertions(+), 23 deletions(-) diff --git a/scripts/cli-migrations/v1/test/validation/metadata.json b/scripts/cli-migrations/v1/test/validation/metadata.json index 6a21fb15c09b9..451ac25845eeb 100644 --- a/scripts/cli-migrations/v1/test/validation/metadata.json +++ b/scripts/cli-migrations/v1/test/validation/metadata.json @@ -1,12 +1,11 @@ { - "version": 2, - "tables": [ - { - "table": { - "schema": "public", - "name": "test" - } + "version": 2, + "tables": [ + { + "table": { + "schema": "public", + "name": "test" } - ] - } - \ No newline at end of file + } + ] +} \ No newline at end of file diff --git a/scripts/cli-migrations/v1/test/validation/schema_migrations.json b/scripts/cli-migrations/v1/test/validation/schema_migrations.json index 592963e8ca44b..cdf3fe5172a18 100644 --- a/scripts/cli-migrations/v1/test/validation/schema_migrations.json +++ b/scripts/cli-migrations/v1/test/validation/schema_migrations.json @@ -10,4 +10,4 @@ "f" ] ] -} +} \ No newline at end of file diff --git a/scripts/cli-migrations/v2/test/validation/metadata.json b/scripts/cli-migrations/v2/test/validation/metadata.json index 6a21fb15c09b9..451ac25845eeb 100644 --- a/scripts/cli-migrations/v2/test/validation/metadata.json +++ b/scripts/cli-migrations/v2/test/validation/metadata.json @@ -1,12 +1,11 @@ { - "version": 2, - "tables": [ - { - "table": { - "schema": "public", - "name": "test" - } + "version": 2, + "tables": [ + { + "table": { + "schema": "public", + "name": "test" } - ] - } - \ No newline at end of file + } + ] +} \ No newline at end of file diff --git a/scripts/cli-migrations/v2/test/validation/schema_migrations.json b/scripts/cli-migrations/v2/test/validation/schema_migrations.json index 592963e8ca44b..e10c71b6cbefa 100644 --- a/scripts/cli-migrations/v2/test/validation/schema_migrations.json +++ b/scripts/cli-migrations/v2/test/validation/schema_migrations.json @@ -6,8 +6,8 @@ "dirty" ], [ - "1586822388261", + "1586823136625", "f" ] ] -} +} \ No newline at end of file From 7cb529b44173938a51e921a534f35d6153bd721c Mon Sep 17 00:00:00 2001 From: Aravind Shankar Date: Wed, 15 Apr 2020 02:42:26 +0530 Subject: [PATCH 18/18] fix validation files --- scripts/cli-migrations/v1/test/test.sh | 4 ++-- scripts/cli-migrations/v2/test/test.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/cli-migrations/v1/test/test.sh b/scripts/cli-migrations/v1/test/test.sh index 005d81493e776..0c3c8d54b21e6 100755 --- a/scripts/cli-migrations/v1/test/test.sh +++ b/scripts/cli-migrations/v1/test/test.sh @@ -23,8 +23,8 @@ docker cp migrations/. graphql-engine:/hasura-migrations docker-compose up -d --no-recreate graphql-engine wait_for_server # export metadata and run diff with validation/metadata.json -docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "export_metadata", "args" : {} }' localhost:8080/v1/query | jq '.' | diff validation/metadata.json - +docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "export_metadata", "args" : {} }' localhost:8080/v1/query | jq -j '.' | diff validation/metadata.json - # get list of migrations applied from graphql-engine server -docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "run_sql", "args" : {"sql": "select * from hdb_catalog.schema_migrations"} }' localhost:8080/v1/query | jq '.' | diff validation/schema_migrations.json - +docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "run_sql", "args" : {"sql": "select * from hdb_catalog.schema_migrations"} }' localhost:8080/v1/query | jq -j '.' | diff validation/schema_migrations.json - # delete postgres and graphql-engine docker-compose down -v \ No newline at end of file diff --git a/scripts/cli-migrations/v2/test/test.sh b/scripts/cli-migrations/v2/test/test.sh index 5bbca11efc888..a3479558fdd14 100755 --- a/scripts/cli-migrations/v2/test/test.sh +++ b/scripts/cli-migrations/v2/test/test.sh @@ -25,8 +25,8 @@ docker cp metadata/. graphql-engine:/hasura-metadata docker-compose up -d --no-recreate graphql-engine wait_for_server # export metadata and run diff with validation/metadata.json -docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "export_metadata", "args" : {} }' localhost:8080/v1/query | jq '.' | diff validation/metadata.json - +docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "export_metadata", "args" : {} }' localhost:8080/v1/query | jq -j '.' | diff validation/metadata.json - # get list of migrations applied from graphql-engine server -docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "run_sql", "args" : {"sql": "select * from hdb_catalog.schema_migrations"} }' localhost:8080/v1/query | jq '.' | diff validation/schema_migrations.json - +docker run --network container:graphql-engine appropriate/curl -s -f -d'{"type" : "run_sql", "args" : {"sql": "select * from hdb_catalog.schema_migrations"} }' localhost:8080/v1/query | jq -j '.' | diff validation/schema_migrations.json - # delete postgres and graphql-engine docker-compose down -v \ No newline at end of file