function run_cicd_test_containers() { echo "Starting local CI/CD tests at $(date)" echo "Running bandit..." docker-compose run --no-deps --rm clever-sync-api python -m bandit -r . -x /tests/ RES2=$? echo "Running black..." docker-compose run --no-deps --rm clever-sync-api black . --check --line-length=120 RES4=$? echo "Running flake8..." docker-compose run --no-deps --rm clever-sync-api flake8 --config /app/dev-tools-config/.flake8 . RES3=$? # echo "Running pylint..." # docker-compose run --no-deps --rm clever-sync-api pylint --rcfile /app/dev-tools-config/.pylintrc classkick # RES2=$? echo "Running isort..." docker-compose run --no-deps --rm clever-sync-api isort . --profile black --line-length=120 --check RES1=$? echo "Running coverage..." docker-compose run --no-deps --rm clever-sync-api pytest --cov . RES5=$? echo "Finished local CI/CD tests at $(date)" if [[ $RES1 -ne 0 || $RES2 -ne 0 || $RES3 -ne 0 || $RES4 -ne 0 || $RES5 -ne 0 ]]; then return 1 fi return 0 } function run-cicd-fix() { echo "Starting CI/CD containers in 'fix mode' at $(date)." echo "Running black..." docker-compose run --no-deps --rm $APP black . --line-length=120 RES4=$? echo "Running ruff fix..." docker-compose run --rm $APP ruff check --fix --config /app/dev-tools-config/.ruff.toml . RES1=$? } alias grep-branches="find-branch" alias search-branches="find-branch" function run-cicd-tests() { LOGDIR="./cicd-test-logs" mkdir -p $LOGDIR docker-compose run --rm $APP black . --line-length=120 docker-compose run --rm $APP ruff check --config /app/dev-tools-config/.ruff.toml . docker-compose run --rm $APP python -m bandit -r . -x /tests/ docker-compose run -e TEST_DB=$APP --rm $APP pytest . docker-compose run --rm $APP pytest --cov . # docker-compose logs -t -f --tail 5 # Doesn't work - only tails "proper containers", not these temp ones } function run-bandit() { docker-compose run --rm $APP python -m bandit -r . -x /tests/ } function run-pytest() { docker-compose run -e TEST_DB=$APP --rm $APP pytest . } function run-black() { docker-compose run --rm $APP black . --line-length=120 } function run-isort() { docker-compose run --rm $APP isort . --profile black --check } function run-flake8() { docker-compose run --rm $APP flake8 --config /app/dev-tools-config/.flake8 . } function run-flake8-on-local-dir() { autoflake --remove-unused-variables --remove-all-unused-imports --in-place --recursive $1 } function classkick-web-build() { docker compose build --no-cache --build-arg GITHUB_TOKEN=$GITHUB_TOKEN } function run-pylint() { docker-compose run --rm $APP pylint --rcfile /app/dev-tools-config/.pylintrc classkick } # Obvs adapt to current needs function run-pytest-dir() { cls DIR="${1:-.}" docker-compose run -e TEST_DB=$APP --rm $APP pytest $DIR } function run-pytest-dir-pdb() { cls DIR="${1:-.}" docker-compose run -e TEST_DB=$APP --rm $APP pytest --pdb $DIR } function rebuild-db() { echo "Deleting backend-db and db containers..." docker container rm db 2>/dev/null docker container rm backend-db 2>/dev/null echo "Running initdev..." && docker-compose run --rm -w /app/tasks salesbuddy-api inv initdev && echo "Running alembic upgrade..." && ops/alembic-ops development upgrade head && echo "Seeding DB..." && docker-compose run --rm -w /app/tasks salesbuddy-api inv seed && echo "Running dbUpdate..." && ops/classkick-v1-dev classkick-schema-init dbUpdate && echo "All done." } alias reinit-db=rebuild-db alias init-db=rebuild-db function print-ck-env-vars() { echo -e "\nDATABASE\n——————————————" echo \$MYSQL_USER=$MYSQL_USER echo \$MYSQL_PASSWORD=$MYSQL_PASSWORD echo \$MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD echo \$MYSQL_HOST_IP=$MYSQL_HOST_IP echo \$MYSQL_RO_PORT=$MYSQL_RO_PORT echo \$MYSQL_TX_PORT=$MYSQL_TX_PORT echo \$SSL_CA_FILE=$SSL_CA_FILE echo \$SSL_CERT_FILE=$SSL_CERT_FILE echo \$SSL_KEY_FILE=$SSL_KEY_FILE echo \$TEST_DB=$TEST_DB echo \$DOCKER_DB_NAME=$DOCKER_DB_NAME echo -e "\nNOT DATABASE\n——————————————" echo \$PYTHONPATH=$PYTHONPATH echo \$DOCKER_DEFAULT_PLATFORM=$DOCKER_DEFAULT_PLATFORM echo \$ENVIRONMENT=$ENVIRONMENT echo \$APP=$APP } alias ck-env=print-ck-env-vars alias dump-env=print-ck-env-vars alias echo-ck-env=print-ck-env-vars function set-ck-prod-env-vars() { export MYSQL_USER='pkingswell' export MYSQL_PASSWORD="PxeAnQ(0>'I