name: ci on: push: branches: [main, master] pull_request: jobs: build-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup .NET 8 uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Restore run: dotnet restore BasePlatformDotnet/yh-platform-net.sln - name: Build run: dotnet build BasePlatformDotnet/yh-platform-net.sln --no-restore -c Release - name: Test run: dotnet test BasePlatformDotnet/yh-platform-net.sln --no-build -c Release --logger "console;verbosity=normal" - name: Pack run: dotnet pack BasePlatformDotnet/yh-platform-net.sln --no-build -c Release -o BasePlatformDotnet/artifacts publish: # 仅主分支 push 时发版到 Nexus 私服(PR 不触发) if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') needs: build-test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup .NET 8 uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Pack run: dotnet pack BasePlatformDotnet/yh-platform-net.sln -c Release -o BasePlatformDotnet/artifacts - name: Push to Nexus # Nexus 的 NuGet 推送认证走 HTTP Basic(账号+密码),不校验 api-key; # 且 Nexus 为 http 源,SDK 8 需在 nuget.config 显式 allowInsecureConnections=true。 # 动态生成带凭据的 nuget.config 并指定 --configfile,避免凭据入 git。 run: | cat > nuget-push.config < EOF dotnet nuget push "BasePlatformDotnet/artifacts/*.nupkg" --source nexus-nuget --configfile nuget-push.config --api-key nexus