diff --git a/.github/workflows/dev-pytest.yml b/.github/workflows/dev-pytest.yml index 61d3294..1733851 100644 --- a/.github/workflows/dev-pytest.yml +++ b/.github/workflows/dev-pytest.yml @@ -54,6 +54,13 @@ jobs: flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Create and populate connections.toml + run: | + echo "Current Directory: ${PWD}" + echo "GITHUB WORKSPACE: ${GITHUB_WORKSPACE}" + chmod +x populateConnection.sh + bash populateConnection.sh + working-directory: . - name: Test with pytest id: pytest run: | diff --git a/.github/workflows/master-pytest.yml b/.github/workflows/master-pytest.yml index 027a09e..3fe0d00 100644 --- a/.github/workflows/master-pytest.yml +++ b/.github/workflows/master-pytest.yml @@ -60,16 +60,11 @@ jobs: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Create and populate connections.toml run: | - touch ./connections.toml - echo [default] >> ./connections.toml - echo account = \"${SNOWFLAKE_ACCOUNT}\" >> ./connections.toml - echo user = \"${SNOWFLAKE_USER}\" >> ./connections.toml - echo role = \"${SNOWFLAKE_ROLE}\" >> ./connections.toml - echo warehouse = \"${SNOWFLAKE_WAREHOUSE}\" >> ./connections.toml - echo database = \"${SNOWFLAKE_DATABASE}\" >> ./connections.toml - echo password = \"${SNOWFLAKE_PASSWORD}\" >> ./connections.toml - echo "cat connections.toml" - cat ./connections.toml + echo "Current Directory: ${PWD}" + echo "GITHUB WORKSPACE: ${GITHUB_WORKSPACE}" + chmod +x populateConnection.sh + bash populateConnection.sh + working-directory: . - name: Test with pytest id: pytest run: | @@ -77,56 +72,8 @@ jobs: # Testing Schemachange demo projects - name: Test Schemachange on ${{ matrix.os }} targeting ${{ env.SNOWFLAKE_DATABASE }}.${{ env.MY_TARGET_SCHEMA }} schema run: | - echo "::group::Setting up ${MY_TARGET_SCHEMA}" - schemachange deploy \ - --config-folder ./demo \ - --config-file-name schemachange-config-setup.yml \ - --root-folder ./demo/${SCENARIO_NAME}/1_setup \ - --connection-name default \ - --connections-file-path ./connections.toml \ - --verbose - echo "::endgroup::" - - echo "::group::Testing Rendering to ${MY_TARGET_SCHEMA}" - - schemachange render \ - --config-folder ./demo/${SCENARIO_NAME} \ - ./demo/${SCENARIO_NAME}/2_test/A__render.sql - schemachange render \ - --config-folder ./demo/${SCENARIO_NAME} \ - ./demo/${SCENARIO_NAME}/2_test/R__render.sql - schemachange render \ - --config-folder ./demo/${SCENARIO_NAME} \ - ./demo/${SCENARIO_NAME}/2_test/V1.0.0__render.sql - echo "::endgroup::" - - echo "::group::Testing Deployment using ${MY_TARGET_SCHEMA}" - set +e - schemachange deploy \ - --config-folder ./demo/${SCENARIO_NAME} \ - --connection-name default \ - --connections-file-path ./connections.toml \ - --root-folder ./demo/${SCENARIO_NAME}/2_test \ - --verbose - RESULT=$? - if [ $RESULT -eq 0 ]; then - echo "Deployment Completed!" - else - echo "Deployment Failed. Proceeding to Teardown." - fi - echo "::endgroup::" - set -e - - echo "::group::Tearing down up ${MY_TARGET_SCHEMA}" - schemachange deploy \ - --config-folder ./demo \ - --config-file-name schemachange-config-teardown.yml \ - --connection-name default \ - --connections-file-path ./connections.toml \ - --root-folder ./demo/${SCENARIO_NAME}/3_teardown \ - --verbose - echo "::endgroup::" - - if [ $RESULT -ne 0 ]; then - exit 1 - fi + echo "Current Directory: ${PWD}" + echo "GITHUB WORKSPACE: ${GITHUB_WORKSPACE}" + chmod +x testSchemachange.sh + bash testSchemachange.sh + working-directory: . diff --git a/populateConnection.sh b/populateConnection.sh new file mode 100644 index 0000000..292039b --- /dev/null +++ b/populateConnection.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# Script used in github actions to run test the schemachange functionality against the demo scenarios included in the repository. +touch ./connections.toml +echo [default] >> ./connections.toml +echo account = \"${SNOWFLAKE_ACCOUNT}\" >> ./connections.toml +echo user = \"${SNOWFLAKE_USER}\" >> ./connections.toml +echo role = \"${SNOWFLAKE_ROLE}\" >> ./connections.toml +echo warehouse = \"${SNOWFLAKE_WAREHOUSE}\" >> ./connections.toml +echo database = \"${SNOWFLAKE_DATABASE}\" >> ./connections.toml +echo password = \"${SNOWFLAKE_PASSWORD}\" >> ./connections.toml +echo "cat connections.toml" +cat ./connections.toml \ No newline at end of file diff --git a/testSchemachange.sh b/testSchemachange.sh index c5b76f4..7c88483 100644 --- a/testSchemachange.sh +++ b/testSchemachange.sh @@ -29,4 +29,60 @@ echo "::endgroup::" if [ $RESULT -ne 0 ]; then exit 1 -fi \ No newline at end of file +fi + +echo "::group::Setting up ${MY_TARGET_SCHEMA}" +schemachange deploy \ +--config-folder ./demo \ +--config-file-name schemachange-config-setup.yml \ +--root-folder ./demo/${SCENARIO_NAME}/1_setup \ +--connection-name default \ +--connections-file-path ./connections.toml \ +--verbose +echo "::endgroup::" + +echo "::group::Testing Rendering to ${MY_TARGET_SCHEMA}" + +schemachange render \ +--config-folder ./demo/${SCENARIO_NAME} \ +./demo/${SCENARIO_NAME}/2_test/A__render.sql +schemachange render \ +--config-folder ./demo/${SCENARIO_NAME} \ +./demo/${SCENARIO_NAME}/2_test/R__render.sql +schemachange render \ +--config-folder ./demo/${SCENARIO_NAME} \ +./demo/${SCENARIO_NAME}/2_test/V1.0.0__render.sql +echo "::endgroup::" + +echo "::group::Testing Deployment using ${MY_TARGET_SCHEMA}" +set +e +schemachange deploy \ +--config-folder ./demo/${SCENARIO_NAME} \ +--connection-name default \ +--connections-file-path ./connections.toml \ +--root-folder ./demo/${SCENARIO_NAME}/2_test \ +--verbose +RESULT=$? + +if [ $RESULT -eq 0 ]; then + echo "Deployment Completed!" +else + echo "Deployment Failed. Proceeding to Teardown." +fi + echo "::endgroup::" + +set -e + +echo "::group::Tearing down up ${MY_TARGET_SCHEMA}" +schemachange deploy \ +--config-folder ./demo \ +--config-file-name schemachange-config-teardown.yml \ +--connection-name default \ +--connections-file-path ./connections.toml \ +--root-folder ./demo/${SCENARIO_NAME}/3_teardown \ +--verbose +echo "::endgroup::" + +if [ $RESULT -ne 0 ]; then + exit 1 +fi diff --git a/testSchemachange2.sh b/testSchemachange2.sh new file mode 100644 index 0000000..62e451d --- /dev/null +++ b/testSchemachange2.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# Script used in github actions to run test the schemachange functionality against the demo scenarios included in the repository. +echo "::group::Setting up ${MY_TARGET_SCHEMA}" +schemachange deploy \ +--config-folder ./demo \ +--config-file-name schemachange-config-setup.yml \ +--root-folder ./demo/${SCENARIO_NAME}/1_setup \ +--connection-name default \ +--connections-file-path ./connections.toml \ +--verbose +echo "::endgroup::" + +echo "::group::Testing Rendering to ${MY_TARGET_SCHEMA}" + +schemachange render \ +--config-folder ./demo/${SCENARIO_NAME} \ +./demo/${SCENARIO_NAME}/2_test/A__render.sql +schemachange render \ +--config-folder ./demo/${SCENARIO_NAME} \ +./demo/${SCENARIO_NAME}/2_test/R__render.sql +schemachange render \ +--config-folder ./demo/${SCENARIO_NAME} \ +./demo/${SCENARIO_NAME}/2_test/V1.0.0__render.sql +echo "::endgroup::" + +echo "::group::Testing Deployment using ${MY_TARGET_SCHEMA}" +set +e +schemachange deploy \ +--config-folder ./demo/${SCENARIO_NAME} \ +--connection-name default \ +--connections-file-path ./connections.toml \ +--root-folder ./demo/${SCENARIO_NAME}/2_test \ +--verbose +RESULT=$? + +if [ $RESULT -eq 0 ]; then + echo "Deployment Completed!" +else + echo "Deployment Failed. Proceeding to Teardown." +fi + echo "::endgroup::" + +set -e + +echo "::group::Tearing down up ${MY_TARGET_SCHEMA}" +schemachange deploy \ +--config-folder ./demo \ +--config-file-name schemachange-config-teardown.yml \ +--connection-name default \ +--connections-file-path ./connections.toml \ +--root-folder ./demo/${SCENARIO_NAME}/3_teardown \ +--verbose +echo "::endgroup::" + +if [ $RESULT -ne 0 ]; then + exit 1 +fi