|
@@ -21,11 +21,12 @@ jobs:
|
|
|
runs-on: macos-latest
|
|
runs-on: macos-latest
|
|
|
outputs:
|
|
outputs:
|
|
|
projects: ${{ steps.collect.outputs.projects }}
|
|
projects: ${{ steps.collect.outputs.projects }}
|
|
|
|
|
+ skipped: ${{ steps.collect.outputs.skipped }}
|
|
|
steps:
|
|
steps:
|
|
|
- name: Checkout
|
|
- name: Checkout
|
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
|
|
|
|
|
|
- - name: Collect Desktop platform project files
|
|
|
|
|
|
|
+ - name: Collect & filter Desktop platform project files
|
|
|
id: collect
|
|
id: collect
|
|
|
shell: bash
|
|
shell: bash
|
|
|
run: |
|
|
run: |
|
|
@@ -42,14 +43,39 @@ jobs:
|
|
|
if [ ! -s "$desktop_projects_tmp" ]; then
|
|
if [ ! -s "$desktop_projects_tmp" ]; then
|
|
|
echo "No Desktop platform projects found."
|
|
echo "No Desktop platform projects found."
|
|
|
echo "projects=[]" >> "$GITHUB_OUTPUT"
|
|
echo "projects=[]" >> "$GITHUB_OUTPUT"
|
|
|
|
|
+ echo "skipped=[]" >> "$GITHUB_OUTPUT"
|
|
|
exit 0
|
|
exit 0
|
|
|
fi
|
|
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:
|
|
build:
|
|
|
needs: discover
|
|
needs: discover
|
|
@@ -70,8 +96,8 @@ jobs:
|
|
|
dotnet-version: |
|
|
dotnet-version: |
|
|
|
8.0.x
|
|
8.0.x
|
|
|
|
|
|
|
|
- - name: Restore (solution-wide)
|
|
|
|
|
- run: dotnet restore
|
|
|
|
|
|
|
+ - name: Restore project
|
|
|
|
|
+ run: dotnet restore "${{ matrix.project }}"
|
|
|
|
|
|
|
|
- name: Publish sample
|
|
- name: Publish sample
|
|
|
id: publish
|
|
id: publish
|
|
@@ -118,7 +144,11 @@ jobs:
|
|
|
run: |
|
|
run: |
|
|
|
echo "Desktop sample build summary:" >> $GITHUB_STEP_SUMMARY
|
|
echo "Desktop sample build summary:" >> $GITHUB_STEP_SUMMARY
|
|
|
if [ "${{ needs.discover.outputs.projects }}" = "[]" ] || [ -z "${{ needs.discover.outputs.projects }}" ]; then
|
|
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
|
|
else
|
|
|
echo "- Projects built: ${{ needs.discover.outputs.projects }}" >> $GITHUB_STEP_SUMMARY
|
|
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
|