From 3d49dbe63f82bf339d38d151be206e89406e5258 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Thu, 25 Dec 2025 18:06:22 -0500 Subject: [PATCH] tests: add tests to prove that Procfile tasks all work for every builder Closes #8242 --- tests/apps/python/Procfile | 1 + tests/unit/builder-dockerfile.bats | 11 +++++++-- tests/unit/builder-herokuish.bats | 9 +++++++- tests/unit/builder-nixpacks.bats | 11 ++++++++- tests/unit/builder-pack.bats | 3 ++- tests/unit/builder-railpack.bats | 37 ++++++++++++++++++++++++++++++ 6 files changed, 67 insertions(+), 5 deletions(-) diff --git a/tests/apps/python/Procfile b/tests/apps/python/Procfile index 77b9a38ff..8a57141ee 100644 --- a/tests/apps/python/Procfile +++ b/tests/apps/python/Procfile @@ -8,6 +8,7 @@ web: python3 -u web.py first.Procfile # testing inline comment worker: python3 -u worker.py custom: echo -n release: python3 -u release.py +task: python3 -u task.py test # Old version with separate processes (use this if you have issues with the threaded version) diff --git a/tests/unit/builder-dockerfile.bats b/tests/unit/builder-dockerfile.bats index 754a09be1..ad7226949 100644 --- a/tests/unit/builder-dockerfile.bats +++ b/tests/unit/builder-dockerfile.bats @@ -147,15 +147,22 @@ EOF echo "status: $status" assert_success - run deploy_app dockerfile + run deploy_app python dokku@$DOKKU_DOMAIN:$TEST_APP convert_to_dockerfile echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "dokku ps:inspect $TEST_APP" + run /bin/bash -c "dokku run $TEST_APP python task.py test" echo "output: $output" echo "status: $status" assert_success + assert_output "['task.py', 'test']" + + run /bin/bash -c "dokku run $TEST_APP task" + echo "output: $output" + echo "status: $status" + assert_success + assert_output "['task.py', 'test']" run /bin/bash -c "dokku run $TEST_APP env" echo "output: $output" diff --git a/tests/unit/builder-herokuish.bats b/tests/unit/builder-herokuish.bats index 8677d52e5..3be33a035 100644 --- a/tests/unit/builder-herokuish.bats +++ b/tests/unit/builder-herokuish.bats @@ -105,10 +105,17 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku ps:inspect $TEST_APP" + run /bin/bash -c "dokku run $TEST_APP python task.py test" echo "output: $output" echo "status: $status" assert_success + assert_output "['task.py', 'test']" + + run /bin/bash -c "dokku run $TEST_APP task" + echo "output: $output" + echo "status: $status" + assert_success + assert_output "['task.py', 'test']" run /bin/bash -c "dokku run $TEST_APP env" echo "output: $output" diff --git a/tests/unit/builder-nixpacks.bats b/tests/unit/builder-nixpacks.bats index 98a9734b5..1685cbb24 100644 --- a/tests/unit/builder-nixpacks.bats +++ b/tests/unit/builder-nixpacks.bats @@ -59,11 +59,20 @@ teardown() { echo "output: $output" echo "status: $status" assert_success + assert_output_contains 'load build definition from Dockerfile' + assert_output_contains "SECRET_KEY: fjdkslafjdk" - run /bin/bash -c "dokku ps:inspect $TEST_APP" + run /bin/bash -c "dokku run $TEST_APP python task.py test" echo "output: $output" echo "status: $status" assert_success + assert_output "['task.py', 'test']" + + run /bin/bash -c "dokku run $TEST_APP task" + echo "output: $output" + echo "status: $status" + assert_success + assert_output "['task.py', 'test']" run /bin/bash -c "dokku run $TEST_APP env" echo "output: $output" diff --git a/tests/unit/builder-pack.bats b/tests/unit/builder-pack.bats index 3ad4eaf1a..279629800 100644 --- a/tests/unit/builder-pack.bats +++ b/tests/unit/builder-pack.bats @@ -101,10 +101,11 @@ teardown() { assert_success assert_output "['task.py', 'test']" - run /bin/bash -c "dokku ps:inspect $TEST_APP" + run /bin/bash -c "dokku run $TEST_APP task" echo "output: $output" echo "status: $status" assert_success + assert_output "['task.py', 'test']" run /bin/bash -c "dokku run $TEST_APP env" echo "output: $output" diff --git a/tests/unit/builder-railpack.bats b/tests/unit/builder-railpack.bats index e0dcc5f6c..1ae3192b8 100644 --- a/tests/unit/builder-railpack.bats +++ b/tests/unit/builder-railpack.bats @@ -54,6 +54,43 @@ teardown() { assert_output_contains 'Successfully built image in' } +@test "(builder-pack) run" { + run /bin/bash -c "dokku config:set $TEST_APP SECRET_KEY=fjdkslafjdk" + echo "output: $output" + echo "status: $status" + assert_success + + run /bin/bash -c "dokku builder:set $TEST_APP selected railpack" + echo "output: $output" + echo "status: $status" + assert_success + + run deploy_app python dokku@$DOKKU_DOMAIN:$TEST_APP inject_requirements_txt + echo "output: $output" + echo "status: $status" + assert_success + assert_output_contains 'create mise config' + assert_output_contains 'Successfully built image in' + + run /bin/bash -c "dokku run $TEST_APP python task.py test" + echo "output: $output" + echo "status: $status" + assert_success + assert_output "['task.py', 'test']" + + run /bin/bash -c "dokku run $TEST_APP task" + echo "output: $output" + echo "status: $status" + assert_success + assert_output "['task.py', 'test']" + + run /bin/bash -c "dokku run $TEST_APP env" + echo "output: $output" + echo "status: $status" + assert_success + assert_output_contains "SECRET_KEY=fjdkslafjdk" +} + inject_requirements_txt() { local APP="$1" local APP_REPO_DIR="$2"