Skip to content

Commit

Permalink
Update publish-nuget.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
MadL1me authored May 19, 2024
1 parent 51bad46 commit 9518dbf
Showing 1 changed file with 76 additions and 7 deletions.
83 changes: 76 additions & 7 deletions .github/workflows/publish-nuget.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name: Publish .NET Template

on:
push:
branches: [ "main" ]
branches:
- main

jobs:
build:
Expand All @@ -18,20 +19,88 @@ jobs:
dotnet-version: 8.0.x

- name: Restore dependencies
run: dotnet restore src/template/Aspnext.Template.csproj
run: dotnet restore src/template/Aspnext.Template/Aspnext.Template.csproj

- name: Build the project
run: dotnet build src/template/Aspnext.Template.csproj --no-restore --configuration Release
run: dotnet build src/template/Aspnext.Template/Aspnext.Template.csproj --no-restore --configuration Release

- name: Pack the project
run: dotnet pack src/template/Aspnext.Template.csproj --no-build --configuration Release --output ./nupkg
run: dotnet pack src/template/Aspnext.Template/Aspnext.Template.csproj --no-build --configuration Release --output ./nupkg

- name: Publish to NuGet
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
run: dotnet nuget push "./nupkg/*.nupkg" --api-key $NUGET_API_KEY --source https://api.nuget.org/v3/index.json --skip-duplicate
- name: Publish to Github Nuget Registry

- name: Publish to GitHub Packages
env:
NUGET_GH_API_KEY: ${{ secrets.GITHUB_TOKEN }}
run: dotnet nuget push "./nupkg/*.nupkg" --api-key $NUGET_GH_API_KEY --source https://nuget.pkg.github.com/MadL1me/index.json --skip-duplicate
run: dotnet nuget push "./nupkg/*.nupkg" --api-key $NUGET_GH_API_KEY --source https://nuget.pkg.github.com/${{ github.repository }}/index.json --skip-duplicate

- name: Determine NuGet Package Name
id: get_nupkg_name
run: echo "PACKAGE_NAME=$(basename ./nupkg/*.nupkg)" >> $GITHUB_ENV

- name: Create or Update GitHub Release
id: create_update_release
uses: actions/github-script@v6
with:
script: |
const { context, github } = require('@actions/github');
const tagName = context.ref.replace('refs/heads/', 'v');
const releaseName = `Release ${tagName}`;
const releaseBody = 'Release description from merge request.';
async function createOrUpdateRelease() {
try {
const release = await github.rest.repos.getReleaseByTag({
owner: context.repo.owner,
repo: context.repo.repo,
tag: tagName
});
const updatedRelease = await github.rest.repos.updateRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: release.data.id,
tag_name: tagName,
name: releaseName,
body: releaseBody,
draft: false,
prerelease: false
});
return updatedRelease.data.upload_url;
} catch (error) {
if (error.status === 404) {
const newRelease = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: tagName,
name: releaseName,
body: releaseBody,
draft: false,
prerelease: false
});
return newRelease.data.upload_url;
} else {
throw error;
}
}
}
return createOrUpdateRelease();
result-encoding: string
result: upload_url

- name: Upload NuGet Package to GitHub Release
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_update_release.outputs.upload_url }}
asset_path: ./nupkg/*.nupkg
asset_name: ${{ env.PACKAGE_NAME }}
asset_content_type: application/octet-stream

0 comments on commit 9518dbf

Please sign in to comment.