Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build-kernel-pool-providers-packages | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| package_version: | |
| description: "Package version" | |
| required: false | |
| release: | |
| types: [published] | |
| jobs: | |
| build-provider-package: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| package-path: | |
| - "./SemanticKernelPooling.Connectors.Google/SemanticKernelPooling.Connectors.Google.csproj" | |
| - "./SemanticKernelPooling.Connectors.HuggingFace/SemanticKernelPooling.Connectors.HuggingFace.csproj" | |
| - "./SemanticKernelPooling.Connectors.MistralAI/SemanticKernelPooling.Connectors.MistralAI.csproj" | |
| - "./SemanticKernelPooling.Connectors.OpenAI/SemanticKernelPooling.Connectors.OpenAI.csproj" | |
| steps: | |
| - name: Wait for NuGet packages to be available | |
| run: sleep 200 # Delays for 200 seconds, or 5 minutes | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v3 | |
| with: | |
| dotnet-version: "9.0.x" | |
| - name: Determine Package Version | |
| id: get-version | |
| run: | | |
| if [ "${{ github.event.release.tag_name }}" ]; then | |
| echo "package_version=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT | |
| else | |
| echo "package_version=${{ github.event.inputs.package_version }}" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Restore dependencies | |
| run: dotnet restore ${{ matrix.package-path }} -p:UsePackages=true | |
| - name: Build package | |
| run: dotnet build ${{ matrix.package-path }} --configuration Release -p:UsePackages=true | |
| - name: Pack package | |
| run: dotnet pack -c Release -p:PackageVersion=${{ steps.get-version.outputs.package_version }} /p:PackageReleaseNotes="See https://raw.githubusercontent.com/alonf/SemanticKernelPooling/master/README.md" ${{ matrix.package-path }} -p:UsePackages=true --output ./nupkgs | |
| - name: Publish packages with retry | |
| env: | |
| NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} | |
| run: | | |
| for pkg in ./nupkgs/*.nupkg; do | |
| for i in {1..3}; do | |
| dotnet nuget push ./nupkgs/*.nupkg --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json && break || echo "Failed to push $pkg, attempt $i, retrying in 30 seconds..." && sleep 30; | |
| done | |
| done |