diff --git a/python-sdk/.dockerignore b/python-sdk/.dockerignore new file mode 100644 index 0000000000..73576ad75f --- /dev/null +++ b/python-sdk/.dockerignore @@ -0,0 +1,13 @@ +.coverage +.env +.git +.idea +.mypy_cache +.nox +.pytest_cache +__pycache__ +docs +example_dags +mk +tests +dev/logs diff --git a/python-sdk/Makefile b/python-sdk/Makefile index ae0112ca86..8e8403d279 100644 --- a/python-sdk/Makefile +++ b/python-sdk/Makefile @@ -17,5 +17,11 @@ local: ## Set up local dev env run-local-lineage-server: ## Run flask based local Lineage server FLASK_APP=dev/local_flask_lineage_server.py flask run --host 0.0.0.0 --port 5050 +tilt-up: ## Set up local dev env with Tilt + tilt up + +tilt-down: ## Tear down local dev env with Tilt + tilt down + help: @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-41s\033[0m %s\n", $$1, $$2}' diff --git a/python-sdk/Tiltfile b/python-sdk/Tiltfile new file mode 100644 index 0000000000..d357709c6b --- /dev/null +++ b/python-sdk/Tiltfile @@ -0,0 +1,16 @@ +docker_compose('dev/docker-compose.yaml') + +docker_build( + # Image name - must match the image in the docker-compose file + 'astro-sdk-dev', + # Docker context + '.', + # Dockerfile + dockerfile = 'dev/Dockerfile', + live_update = [ + sync('./pyproject.toml', '/usr/local/airflow/astro_sdk/pyproject.toml'), + sync('./src', '/usr/local/airflow/astro_sdk/src'), + run('cd /usr/local/airflow/astro_sdk && pip install -e ".[all,tests,doc]"', trigger='pyproject.toml'), + restart_container(), + ] +) diff --git a/python-sdk/docs/development/DEVELOPMENT.md b/python-sdk/docs/development/DEVELOPMENT.md index 984352ea42..d22c5a29c7 100644 --- a/python-sdk/docs/development/DEVELOPMENT.md +++ b/python-sdk/docs/development/DEVELOPMENT.md @@ -191,6 +191,8 @@ You can configure the Docker-based testing environment to test your DAG * `make container target=restart` - To restart Scheduler & Triggerer containers * `make container target=restart-all` - To restart all the containers * `make container target=shell` - To run bash/shell within a container (Allows interactive session) +* `make tilt-up` - To run Tilt (https://tilt.dev/) for local development +* `make tilt-down` - To stop Tilt 1. Following ports are accessible from the host machine: