CartBlanche пре 2 месеци
родитељ
комит
9ff19fd08b
1 измењених фајлова са 41 додато и 11 уклоњено
  1. 41 11
      .github/workflows/build-samples.yml

+ 41 - 11
.github/workflows/build-samples.yml

@@ -21,11 +21,12 @@ jobs:
     runs-on: macos-latest
     outputs:
       projects: ${{ steps.collect.outputs.projects }}
+      skipped: ${{ steps.collect.outputs.skipped }}
     steps:
       - name: Checkout
         uses: actions/checkout@v4
 
-      - name: Collect Desktop platform project files
+      - name: Collect & filter Desktop platform project files
         id: collect
         shell: bash
         run: |
@@ -42,14 +43,39 @@ jobs:
           if [ ! -s "$desktop_projects_tmp" ]; then
             echo "No Desktop platform projects found."
             echo "projects=[]" >> "$GITHUB_OUTPUT"
+            echo "skipped=[]" >> "$GITHUB_OUTPUT"
             exit 0
           fi
-          echo "Discovered Desktop projects:";
-          sed 's/^/  /' "$desktop_projects_tmp"
-          # Build compact single-line JSON array and write to output
-          json=$(jq -R . < "$desktop_projects_tmp" | jq -s -c .)
-          echo "projects=$json" >> "$GITHUB_OUTPUT"
-          rm -f "$desktop_projects_tmp"
+          echo "Testing restore for discovered Desktop projects:"
+          success_tmp=$(mktemp)
+          skipped_tmp=$(mktemp)
+          while IFS= read -r proj; do
+            echo "Attempting restore: $proj"
+            if dotnet restore "$proj" >/dev/null 2>&1; then
+              echo "  OK  $proj"
+              echo "$proj" >> "$success_tmp"
+            else
+              echo "  SKIP (restore failed) $proj"
+              echo "$proj" >> "$skipped_tmp"
+            fi
+          done < "$desktop_projects_tmp"
+          if [ ! -s "$success_tmp" ]; then
+            echo "No projects restored successfully.";
+            echo "projects=[]" >> "$GITHUB_OUTPUT"
+          else
+            json=$(jq -R . < "$success_tmp" | jq -s -c .)
+            echo "projects=$json" >> "$GITHUB_OUTPUT"
+          fi
+          if [ -s "$skipped_tmp" ]; then
+            skipped_json=$(jq -R . < "$skipped_tmp" | jq -s -c .)
+            echo "skipped=$skipped_json" >> "$GITHUB_OUTPUT"
+          else
+            echo "skipped=[]" >> "$GITHUB_OUTPUT"
+          fi
+          echo "Restore filtering complete.";
+          echo "Successful projects:"; cat "$success_tmp" || true
+          echo "Skipped projects:"; cat "$skipped_tmp" || true
+          rm -f "$desktop_projects_tmp" "$success_tmp" "$skipped_tmp"
 
   build:
     needs: discover
@@ -70,8 +96,8 @@ jobs:
           dotnet-version: |
             8.0.x
 
-      - name: Restore (solution-wide)
-        run: dotnet restore
+      - name: Restore project
+        run: dotnet restore "${{ matrix.project }}"
 
       - name: Publish sample
         id: publish
@@ -118,7 +144,11 @@ jobs:
         run: |
           echo "Desktop sample build summary:" >> $GITHUB_STEP_SUMMARY
           if [ "${{ needs.discover.outputs.projects }}" = "[]" ] || [ -z "${{ needs.discover.outputs.projects }}" ]; then
-            echo "- No Desktop platform projects were found." >> $GITHUB_STEP_SUMMARY
+            echo "- No Desktop platform projects were built (no successful restores)." >> $GITHUB_STEP_SUMMARY
           else
             echo "- Projects built: ${{ needs.discover.outputs.projects }}" >> $GITHUB_STEP_SUMMARY
-            echo "- Individual zipped artifacts are available under the workflow run artifacts section." >> $GITHUB_STEP_SUMMARY
+          fi
+          if [ -n "${{ needs.discover.outputs.skipped }}" ] && [ "${{ needs.discover.outputs.skipped }}" != "[]" ]; then
+            echo "- Skipped (restore failed): ${{ needs.discover.outputs.skipped }}" >> $GITHUB_STEP_SUMMARY
+          fi
+          echo "- Individual zipped artifacts are available under the workflow run artifacts section." >> $GITHUB_STEP_SUMMARY