diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 137f2c7..44050e2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,32 +12,51 @@ test: stage: test script: - | - # Run npm test and capture output and exit code - set +e - test_output=$(npm run test 2>&1) - test_exit_code=$? - set -e + # Check if this is a non-forked execution on soapbox-pub/mkstack + if [ "$CI_PROJECT_NAMESPACE" = "soapbox-pub" ] && [ "$CI_PROJECT_NAME" = "mkstack" ] && [ "$CI_PROJECT_PATH" = "soapbox-pub/mkstack" ]; then + echo "Running on soapbox-pub/mkstack - applying template-specific test logic" - echo "$test_output" + # Run npm test and capture output and exit code + set +e + test_output=$(npm run test 2>&1) + test_exit_code=$? + set -e - # Check if the output contains exactly 6 linting problems - if echo "$test_output" | grep -q "✖ 6 problems (6 errors, 0 warnings)"; then - echo "✅ Expected 6 linting errors found - template is correctly configured" - exit 0 - elif [ $test_exit_code -eq 0 ]; then - echo "✅ Tests passed with no linting errors" - exit 0 + echo "$test_output" + + # Check if the output contains exactly 6 linting problems + if echo "$test_output" | grep -q "✖ 6 problems (6 errors, 0 warnings)"; then + echo "✅ Expected 6 linting errors found - template is correctly configured" + exit 0 + elif [ $test_exit_code -eq 0 ]; then + echo "✅ Tests passed with no linting errors" + exit 0 + else + echo "❌ Unexpected test failure or wrong number of linting errors" + exit 1 + fi else - echo "❌ Unexpected test failure or wrong number of linting errors" - exit 1 + echo "Running on fork or different project - using standard test behavior" + npm run test fi pages: stage: deploy script: - - npm run build - - rm -rf public - - mv dist public + - | + # Check if this is a non-forked execution on soapbox-pub/mkstack + if [ "$CI_PROJECT_NAMESPACE" = "soapbox-pub" ] && [ "$CI_PROJECT_NAME" = "mkstack" ] && [ "$CI_PROJECT_PATH" = "soapbox-pub/mkstack" ]; then + echo "Running on soapbox-pub/mkstack - proceeding with deployment" + npm run build + rm -rf public + mv dist public + else + echo "Running on fork or different project - skipping deployment" + echo "This is expected behavior for forks" + # Create a minimal public directory to avoid job failure + mkdir -p public + echo "
This deployment is only active on soapbox-pub/mkstack
" > public/index.html + fi artifacts: paths: - public