Skip to content

πŸš€ v0.0.3-beta - Repository Restructure #1

πŸš€ v0.0.3-beta - Repository Restructure

πŸš€ v0.0.3-beta - Repository Restructure #1

Workflow file for this run

name: πŸ“¦ Publish Package
on:
release:
types: [published]
workflow_dispatch:
inputs:
version:
description: 'Version to publish (e.g., 1.0.0)'
required: true
default: '0.0.3-beta'
env:
DOTNET_VERSION: '7.0.x'
PROJECT_PATH: 'src/Component/Component.csproj'
jobs:
publish:
name: πŸš€ Build & Publish
runs-on: ubuntu-latest
permissions:
contents: write # For uploading release assets
packages: write # For GitHub Packages
steps:
- name: πŸ“₯ Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: βš™οΈ Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: πŸ” Determine Version
id: version
run: |
if [ "${{ github.event_name }}" == "release" ]; then
VERSION="${{ github.event.release.tag_name }}"
# Remove 'v' prefix if present
VERSION="${VERSION#v}"
else
VERSION="${{ github.event.inputs.version }}"
fi
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "πŸ“¦ Package Version: $VERSION"
- name: πŸ“¦ Restore dependencies
run: dotnet restore ${{ env.PROJECT_PATH }}
- name: πŸ—οΈ Build
run: dotnet build ${{ env.PROJECT_PATH }} --configuration Release --no-restore
- name: πŸ“¦ Pack Component
run: |
dotnet pack ${{ env.PROJECT_PATH }} \
--configuration Release \
--no-build \
--output ./packages \
/p:PackageVersion=${{ steps.version.outputs.VERSION }} \
/p:IncludeSymbols=true \
/p:SymbolPackageFormat=snupkg
- name: πŸ“‹ List Packages
run: |
echo "πŸ“¦ Created packages:"
ls -la ./packages/
# ═══════════════════════════════════════════════════════════
# 1️⃣ Publish to NuGet.org
# ═══════════════════════════════════════════════════════════
- name: πŸš€ Push to NuGet.org
run: |
dotnet nuget push ./packages/*.nupkg \
--api-key ${{ secrets.NUGET_API_KEY }} \
--source https://api.nuget.org/v3/index.json \
--skip-duplicate
continue-on-error: false
# ═══════════════════════════════════════════════════════════
# 2️⃣ Publish to GitHub Packages
# ═══════════════════════════════════════════════════════════
- name: πŸ“¦ Push to GitHub Packages
run: |
dotnet nuget push ./packages/*.nupkg \
--api-key ${{ secrets.GITHUB_TOKEN }} \
--source https://nuget.pkg.github.com/JsonViewer-Component/index.json \
--skip-duplicate
continue-on-error: true
# ═══════════════════════════════════════════════════════════
# 3️⃣ Upload to GitHub Release Assets
# ═══════════════════════════════════════════════════════════
- name: πŸ“Ž Upload Release Assets
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: |
./packages/*.nupkg
./packages/*.snupkg
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# ═══════════════════════════════════════════════════════════
# 4️⃣ Upload as Workflow Artifacts
# ═══════════════════════════════════════════════════════════
- name: πŸ“€ Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: nuget-packages-${{ steps.version.outputs.VERSION }}
path: ./packages/*
retention-days: 90
# ═══════════════════════════════════════════════════════════
# πŸ“ Summary
# ═══════════════════════════════════════════════════════════
- name: πŸ“ Create Summary
run: |
echo "## πŸ“¦ Package Published Successfully!" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Package Info" >> $GITHUB_STEP_SUMMARY
echo "| Property | Value |" >> $GITHUB_STEP_SUMMARY
echo "|----------|-------|" >> $GITHUB_STEP_SUMMARY
echo "| **Name** | JsonViewer.Blazor |" >> $GITHUB_STEP_SUMMARY
echo "| **Version** | ${{ steps.version.outputs.VERSION }} |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### πŸ“ Published To" >> $GITHUB_STEP_SUMMARY
echo "- βœ… [NuGet.org](https://www.nuget.org/packages/JsonViewer.Blazor/${{ steps.version.outputs.VERSION }})" >> $GITHUB_STEP_SUMMARY
echo "- βœ… [GitHub Packages](https://github.com/JsonViewer-Component/Blazor/packages)" >> $GITHUB_STEP_SUMMARY
if [ "${{ github.event_name }}" == "release" ]; then
echo "- βœ… [Release Assets](https://github.com/JsonViewer-Component/Blazor/releases/tag/${{ github.event.release.tag_name }})" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "### πŸ“₯ Install" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
echo "dotnet add package JsonViewer.Blazor --version ${{ steps.version.outputs.VERSION }}" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY