実現したいこと
- C#でNuGetパッケージを作成する。
- GitHubでコードを管理する。
- GitHubActionsで、当該リポジトリのGitHubPackagesに配置する。
起きた事象
GitHubActions内にてNuGetパッケージをPushする。
- 環境変数
${GITHUB_TOKEN}=${{ secrets.GITHUB_TOKEN }}${NUGET_SOURCE}= GitHubPackageのURL- 例:
"https://nuget.pkg.github.com/{organization-name}/index.json"
- 例:
dotnet nuget push '*.nupkg'-k${GITHUB_TOKEN}-s${NUGET_SOURCE}--skip-duplicate404エラーが返ってくる。
Pushing {package-name}.nupkg to 'https://nuget.pkg.github.com/{organization-name}'...
PUT https://nuget.pkg.github.com/{organization-name}/
NotFound https://nuget.pkg.github.com/{organization-name}/ 377ms
error: Response status code does not indicate success: 404 (Not Found).原因・対処
NuGetパッケージとなるC#プロジェクトの .csprojファイルを確認します。
- RepositoryUrl
- このURLがGitHubのリポジトリURLと一致していない場合、404エラーが返ってきます。
<ProjectSdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>netstandard2.1</TargetFramework>
...
<RepositoryUrl>https://github.com/{organization-name}/{repository-name}</RepositoryUrl>
...
</PropertyGroup><ItemGroup>
...
</ItemGroup></Project>備考
個人リポジトリでもOrganizationsリポジトリでも同様と思われます。
また、今回はGitHubActionsでのエラーでしたが、ローカルからCLIでPushしようとしても同様にエラーになります。
NuGetパッケージを作成する場合は、PropertyGroupをきちんと記述したほうがいいですね。