|
12 | 12 | contents: write |
13 | 13 | packages: write |
14 | 14 | env: |
15 | | - MY_DASHBOARD_DATABASE_POSTGRES_URL: postgres://postgres:pgtoolspassword@localhost:5432/postgres?schema=public |
| 15 | + MY_DASHBOARD_DATABASE_POSTGRES_URL: "postgres://postgres:pgtoolspassword@localhost:5432/postgres?schema=public" |
16 | 16 |
|
17 | 17 | steps: |
18 | 18 | - name: Checkout repository |
@@ -41,22 +41,46 @@ jobs: |
41 | 41 | - name: Detect changed projects |
42 | 42 | id: detect |
43 | 43 | run: | |
| 44 | + echo "Starting project detection..." |
| 45 | +
|
44 | 46 | PROJECTS=$(find . -maxdepth 1 -type d ! -path "." ! -path "./.github*" ! -path "./.vscode*" ! -path "./scripts*" ! -path "./demo*" | while read d; do |
45 | 47 | if [ -f "$d/package.json" ]; then echo "$(basename "$d")"; fi |
46 | 48 | done) |
47 | 49 |
|
| 50 | + echo "Found projects: '$PROJECTS'" |
| 51 | +
|
| 52 | + # Handle case where no projects are found |
| 53 | + if [ -z "$PROJECTS" ]; then |
| 54 | + echo "No projects found with package.json files" |
| 55 | + PROJECTS="" |
| 56 | + fi |
| 57 | +
|
48 | 58 | if [ "${{ steps.need_ci.outputs.force_run }}" = "true" ]; then |
49 | 59 | CHANGED_PROJECTS="$PROJECTS" |
| 60 | + echo "Force run enabled, using all projects" |
50 | 61 | else |
| 62 | + echo "Checking for changed files..." |
51 | 63 | CHANGED=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | cut -d/ -f1 | sort | uniq | grep -v -E '^(.github|.vscode|scripts|demo)$') |
52 | | - CHANGED_PROJECTS=$(echo "$PROJECTS" | grep -Fxf <(echo "$CHANGED") || true) |
| 64 | + echo "Changed directories: '$CHANGED'" |
| 65 | + |
| 66 | + if [ -n "$CHANGED" ] && [ -n "$PROJECTS" ]; then |
| 67 | + echo "Filtering projects based on changes..." |
| 68 | + CHANGED_PROJECTS=$(echo "$PROJECTS" | grep -Fxf <(echo "$CHANGED") || true) |
| 69 | + else |
| 70 | + echo "No changes or no projects found, setting empty" |
| 71 | + CHANGED_PROJECTS="" |
| 72 | + fi |
53 | 73 | fi |
54 | 74 |
|
55 | 75 | echo "Changed projects: $CHANGED_PROJECTS" |
56 | 76 |
|
57 | | - CHANGED_PROJECTS_CLEAN=$(echo "$CHANGED_PROJECTS" | tr '\n' ' ' | sed 's/ $//') |
58 | | - ENCODED=$(echo -n "$CHANGED_PROJECTS_CLEAN" | base64) |
| 77 | + CHANGED_PROJECTS_CLEAN=$(echo "$CHANGED_PROJECTS" | tr '\n' ' ' | sed 's/ $//' | sed 's/^[[:space:]]*//') |
| 78 | + echo "Changed projects clean: '$CHANGED_PROJECTS_CLEAN'" |
| 79 | +
|
| 80 | + # Use printf instead of echo -n for better compatibility |
| 81 | + ENCODED=$(printf "%s" "$CHANGED_PROJECTS_CLEAN" | base64 | tr -d '\n') |
59 | 82 | echo "changed_projects_base64=$ENCODED" >> $GITHUB_OUTPUT |
| 83 | + echo "Encoded value: $ENCODED" |
60 | 84 |
|
61 | 85 | # 🧩 Определяем тип bump'а |
62 | 86 | - name: Determine bump type |
|
0 commit comments