SSG リリース


序章



Static Site Generator(ssg) 過去 12 週間のタスクの開発のパズルの最後のピースは、アプリケーションのリリースです. SSG のほとんどの機能が正常に実行されました.今度は、パッケージ マネージャーを使用してアプリケーションをリリースします.

NuGet パッケージ マネージャー



NuGet は、Microsoft がビジュアル スタジオ開発拡張機能としてリリースした無料のオープン ソース パッケージ マネージャー プログラムです.リリースアプリケーションは非常にシンプルです. .nupkg ファイルを生成し、このファイルを NuGet Web サイトにアップロードしてください.アプリケーションをリリースするための次の手順は次のとおりです.
  • <propertyGroup> プロジェクト ファイル (.csproj) を構成する

  •   <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net5.0</TargetFramework>
        <RootNamespace>kimchi_ssg</RootNamespace>
        <PackAsTool>true</PackAsTool>
        <PackageId>Kimchi-ssg</PackageId>
        <Version>1.0.1</Version>
            <Authors>Minsu Kim</Authors>
        <IsPackable>true</IsPackable>
        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
        <Description>Simple .NET application to generate static HTML file(s) from text and MarkDown</Description>
        <PackageLicenseExpression>MIT</PackageLicenseExpression>
        <PackageProjectUrl>https://github.com/mkim219/kimchi-ssg</PackageProjectUrl>
      </PropertyGroup>
    


    Visual Studio が .nupkg ファイルを生成しない場合、<IsPackable>true</IsPackable> ファイルを生成するには .nupkg が必要です.
  • .nupkg ファイルを生成するには 2 つの方法があります

  • Visual Studio
  • Build > Pack {Your application}
  • CLI で dotnet pack {C# project file} を入力します.詳細については、このページ https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-pack を参照してください.

  • CLI で、成功メッセージに .nupkg ファイルが作成されたパスが示される
  • Nuget に移動し、アカウント
  • を作成します
  • ログイン後 Nuget Upload
  • アップロード .nupkg !

  • GitHub アクション



    次のステップは、リリースを自動化するための GitHub Action を作成することです.まず、API キーを生成するために NuGet の Web サイトにアクセスします. API キーを取得したら、CI で使用できるシークレット環境キーを setting > secrets > add new repository secret に作成します.

    C# 用の非常に便利な公開テンプレートを見つけました. https://github.com/marketplace/actions/publish-nuget.このテンプレートは、プロジェクト バージョンがリリースされたときに、パッケージを自動的にビルド、パック、公開するアクションを提供します.次のコードは、既存の .yml ファイルに追加されます

        - name: publish on version change
          id: publish_nuget
          uses: rohith/publish-nuget@v2
          with:
            PROJECT_FILE_PATH: ./kimchi-ssg/kimchi-ssg.csproj
            PACKAGE_NAME: Kimchi-ssg
            VERSION_REGEX: '^\s*<Version>(.*)<\/Version>\s*$'
            NUGET_KEY: ${{secrets.KIMCHI_SSG_NUGET_KEY}}
    


    GitHub アクションが C# プロジェクト ファイルのバージョン更新を検出したとき. NuGet パッケージのバージョンは自動的に更新されます.

    フィードバック



    NuGet 経由でパッケージをリリースした後、開発者として IT 企業で働いている友人とレビューするように変更しました.彼は Linux を使っているのでパス環境が Window とは違うというエラーを見つけました.また、彼は私の README.md が不明確で曖昧であるとアドバイスしてくれました. Linux 環境で発生する問題と README.md を修正して、読者がより理解しやすいようにしました.

    リリース



    私の最初のリリースは here です. NuGet コンソールに移動し、 dotnet tool install --global Kimchi-ssg --version 1.0.3 と入力します.