Infragistics Ignite UI for BlazorというUIコンポーネントを使用したアプリケーションを構築しつつ、Github Actionsによる自動デプロイを構成したいという要望はあると思います。しかしながら、Ignite UI for Blazorは有償コンポーネントであり、これが独自のNugetサーバにありなおかつ認証があります。
Github Actionのワークフローの中でNugetソースを追加しつつ、ビルドして自動デプロイする方法を紹介します。
Ignite UIは開発者ユーザ単位のライセンス体系を取っています。あくまでも、本記事は技術的には可能であるという検証記事です。
ライセンス的に正しいかどうかは購入元サポートに問い合わせをしましょう。
まずは、動作可能なIgnite UI for Blazorを使用したアプリケーションソースをプッシュしておきます。
App Serviceのリソースを作ります。
このときに一緒にGithub Actionsのテンプレートを作っておくと何かと便利ですのでデプロイの項で作成しておきます。
ここで、継続的デプロイを有効化し、先ほどソースを格納したGithubリポジトリを指定します。
こうすると、このApp Serviceにデプロイする基本的な内容でActionsが作成されます。
App Serviceが作成されると自動的にこのActionsが動きますがIgnite UI for Blazorのパッケージが見つからないためビルドに失敗します。
ここで、Nuget ソースを追加することが必要となります。
ソースにInfragistics社のID/PASSを直接書くのは好ましくありません。
シークレットに書きましょう。
Settings > Environments > New environments
で新規に環境を作ります。ここの名前は何でもよいです。仮に「production」としておきます。
そして、そのなかに、シークレットのキーをUSER, PASSという名前を作りその内容はNugetパッケージアクセス用のIDとパスワードとします。
まず、先ほどシークレット情報を格納したのでこれを取り出すために環境情報を指定する必要があります。
先ほどの例ですと、環境名のところにproductionが入ります。
jobs:
build:
runs-on: ubuntu-latest
environment:
name: {環境名}
次に、Nuget ソースを追加したいので「dotnet build」を実行している直前あたりで次の記述を追加しておきます。
- name: Get IgniteUI
run: dotnet nuget add source https://packages.infragistics.com/nuget/licensed -n Infragistics -u "${{ secrets.user}}" -p "${{ secrets.pass }}" --store-password-in-clear-text
こうしたところ、Nuget ソースを追加できビルドが成功しました。