From cc86e3d6e9badd0496132ce062639ab59da1f885 Mon Sep 17 00:00:00 2001 From: cct0831 Date: Sun, 22 Mar 2026 10:52:15 +0800 Subject: [PATCH] ci(nuget): switch smoke test to local nupkg source Removes flaky 'Wait for package visibility' step that depends on GitHub Packages feed propagation delay. Smoke test now installs directly from local ./nupkgs directory. Closes #714 Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/publish-nuget.yml | 41 ++++------------------------- 1 file changed, 5 insertions(+), 36 deletions(-) diff --git a/.github/workflows/publish-nuget.yml b/.github/workflows/publish-nuget.yml index d280284a..b6fa2210 100644 --- a/.github/workflows/publish-nuget.yml +++ b/.github/workflows/publish-nuget.yml @@ -66,48 +66,17 @@ jobs: --source ${{ env.PACKAGE_SOURCE }} \ --skip-duplicate - - name: Setup NuGet source for smoke test - run: | - dotnet nuget add source "${{ env.PACKAGE_SOURCE }}" \ - --name github-wtm \ - --username "${{ github.actor }}" \ - --password "${{ secrets.GITHUB_TOKEN }}" \ - --store-password-in-clear-text - - - name: Wait for package visibility - env: - PKG_VERSION: ${{ steps.version.outputs.version }} - run: | - set -euo pipefail - attempts=10 - delay=15 - for i in $(seq 1 $attempts); do - result="$(dotnet package search WalkingTec.Mvvm.Core \ - --source "${{ env.PACKAGE_SOURCE }}" \ - --exact-match \ - --format json)" - if python3 -c 'import json, sys; payload = json.loads(sys.argv[1] or "{}"); version = sys.argv[2]; raise SystemExit(0 if any(item.get("version") == version for search_result in payload.get("searchResult", []) for package in search_result.get("packages", []) for item in package.get("versions", [])) else 1)' "$result" "$PKG_VERSION" - then - echo "Package version $PKG_VERSION is visible in feed." - exit 0 - fi - echo "Package version $PKG_VERSION not visible yet (attempt $i/$attempts)." - sleep "$delay" - done - echo "Package version $PKG_VERSION did not become visible in time." >&2 - exit 1 - - name: Smoke test package install env: PKG_VERSION: ${{ steps.version.outputs.version }} run: | set -euo pipefail - mkdir smoke - cd smoke + mkdir smoke && cd smoke dotnet new console --framework net10.0 - dotnet add package WalkingTec.Mvvm.Core --version "$PKG_VERSION" --source "${{ env.PACKAGE_SOURCE }}" - dotnet add package WalkingTec.Mvvm.Mvc --version "$PKG_VERSION" --source "${{ env.PACKAGE_SOURCE }}" - dotnet add package WalkingTec.Mvvm.TagHelpers.LayUI --version "$PKG_VERSION" --source "${{ env.PACKAGE_SOURCE }}" + dotnet nuget add source "${{ github.workspace }}/nupkgs" --name local-nupkgs + dotnet add package WalkingTec.Mvvm.Core --version "$PKG_VERSION" --source local-nupkgs + dotnet add package WalkingTec.Mvvm.Mvc --version "$PKG_VERSION" --source local-nupkgs + dotnet add package WalkingTec.Mvvm.TagHelpers.LayUI --version "$PKG_VERSION" --source local-nupkgs dotnet restore dotnet build -c Release --no-restore