Forge
yaml72c0d4fb
1# Trusted Publishing (nuget.org OIDC). Политика: Owner AI-Guiders, Repo hybrid-codebase-index-core,
2# Workflow file: publish-nuget.yml. Профиль nuget.org: LonelySoul.
3name Publish NuGet
4
5on
6 push:
7 tags:
8 - 'v*'
9 workflow_dispatch:
10 inputs:
11 version:
12 description: 'SemVer без префикса v (например 0.1.1)'
13 required: true
14 type: string
15
16permissions
17 contents: read
18 id-token: write
19
20env
21 DOTNET_VERSION: '10.0.x'
22
23jobs
24 publish:
25 runs-on: ubuntu-latest
26 steps:
27 - uses: actions/checkout@v4
28
29 - uses: actions/setup-dotnet@v4
30 with:
31 dotnet-version: ${{ env.DOTNET_VERSION }}
32
33 - name: Resolve package version
34 id: ver
35 shell: bash
36 run: |
37 set -euo pipefail
38 if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
39 V="${{ github.event.inputs.version }}"
40 else
41 V="${GITHUB_REF_NAME#v}"
42 fi
43 if [ -z "$V" ]; then
44 echo "Empty version" >&2
45 exit 1
46 fi
47 echo "version=$V" >> "$GITHUB_OUTPUT"
48
49 - name: Pack
50 run: |
51 dotnet pack HybridCodebaseIndex.Core.csproj -c Release -o ./nupkg \
52 -p:Version=${{ steps.ver.outputs.version }} \
53 -p:PackageVersion=${{ steps.ver.outputs.version }}
54
55 - name: NuGet login (OIDC → short-lived API key)
56 uses: NuGet/login@v1
57 id: nuget_login
58 with:
59 user: LonelySoul
60
61 - name: Push to nuget.org
62 run: >
63 dotnet nuget push ./nupkg/*.nupkg
64 --api-key "${{ steps.nuget_login.outputs.NUGET_API_KEY }}"
65 --source https://api.nuget.org/v3/index.json
66 --skip-duplicate
67
View only · write via MCP/CIDE