Skip to content

Loop style.

Loop style. #203

Workflow file for this run

name: Pack
on:
push:
branches:
- \d+\.x
tags:
- \d+\.\d+\.\d+
workflow_call:
secrets:
CREATE_RELEASE_PAT:
required: true
jobs:
pack:
runs-on: ubuntu-latest
outputs:
semVer2: ${{ steps.nbgv.outputs.SemVer2 }}
isPreviewRelease: ${{ startsWith(steps.nbgv.outputs.PrereleaseVersionNoLeadingHyphen, 'preview') }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: 'true'
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
- name: Determine semantic version
uses: dotnet/nbgv@master
id: nbgv
- name: Build
run: dotnet build ./${{ github.event.repository.name }}.sln -c Release -p:ContinuousIntegrationBuild=true
- name: Pack
run: dotnet pack ./${{ github.event.repository.name }}.sln -c Release --no-build
- name: Copy NuGet packages to artifacts
uses: actions/upload-artifact@v4
with:
name: NuGetPackages
path: ./**/${{ github.event.repository.name }}.*.nupkg
if-no-files-found: error
- run: echo ${{ steps.nbgv.outputs.NuGetPackageVersion }} > Version
- name: Output version to artifacts
uses: actions/upload-artifact@v4
with:
name: Version
path: Version
if-no-files-found: error
draft-release:
needs: [ pack ]
runs-on: ubuntu-latest
outputs:
releaseUploadUrl: ${{ steps.create_release.outputs.upload_url }}
releaseUploadId: ${{ steps.create_release.outputs.id }}
steps:
- name: Draft release
id: create_release
uses: release-drafter/[email protected]
with:
name: ${{ github.event.repository.name }} ${{ needs.pack.outputs.semVer2 }}
prerelease: ${{ needs.pack.outputs.isPreviewRelease }}
tag: ${{ needs.pack.outputs.semVer2 }}
commitish: ${{ github.ref }}
env:
GITHUB_TOKEN: ${{ secrets.CREATE_RELEASE_PAT }}
release:
if: ${{ needs.pack.outputs.isPreviewRelease == 'false' }}
needs: [ draft-release ]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
name: NuGetPackages
- uses: shogo82148/actions-upload-release-asset@v1
with:
upload_url: ${{ needs.draft-release.outputs.releaseUploadUrl }}
asset_path: '**/${{ github.event.repository.name }}.*.nupkg'
github_token: ${{ secrets.CREATE_RELEASE_PAT }}
- uses: eregon/publish-release@v1
with:
release_id: ${{ needs.draft-release.outputs.releaseUploadId }}
env:
GITHUB_TOKEN: ${{ secrets.CREATE_RELEASE_PAT }}