Mocale Release #53
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Mocale Release | |
on: | |
workflow_dispatch: | |
inputs: | |
artifact-name: | |
type: string | |
description: The name of the artifact. | |
default: drop | |
artifacts: | |
type: string | |
description: The path to the artifacts. | |
default: "Artifacts/**/*.nupkg" | |
release-notes: | |
type: string | |
description: The notes for the release. | |
default: "Notes..." | |
required: true | |
artifactErrorsFailBuild: | |
type: boolean | |
description: Whether to fail the build if there are errors in the artifact. | |
default: true | |
jobs: | |
github-release: | |
runs-on: ubuntu-latest | |
env: | |
IS_PRERELEASE: true | |
RELEASE_TITLE: v0.0.1 | |
VERSION_NAME: 0.0.1 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download artifacts | |
id: download-artifact | |
uses: dawidd6/action-download-artifact@v6 | |
with: | |
name: ${{ inputs.artifact-name }} | |
repo: Axemasta/Mocale | |
workflow: mocale-ci.yml | |
path: Artifacts/ | |
search_artifacts: true | |
- name: Process NuGet Version | |
shell: pwsh | |
working-directory: Artifacts/ | |
id: process-version | |
run: | | |
$Artifact = Get-ChildItem -Recurse | Where-Object { $_.Name.EndsWith('.nupkg') -and $_.Name.StartsWith('Mocale.') } | Select-Object -First 1 | |
$ArtifactName = $Artifact.Name | |
$Pattern = '\b\d+\.\d+\.\d+(-\w+)?\b' | |
$Match = [regex]::Match($ArtifactName, $Pattern) | |
if (!$Match.Success) { | |
Write-Host "Unable to parse version number for artifact: $($ArtifactName)" | |
exit 1 | |
} | |
$ArtifactName = $Match.Value | |
$IsPreRelease = $false | |
if ($ArtifactName.EndsWith("-pre")) { | |
$IsPreRelease = $true | |
} | |
if ($IsPreRelease) { | |
echo "IS_PRERELEASE=true" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
} else { | |
echo "IS_PRERELEASE=false" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
} | |
echo "action_state=$ArtifactName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
echo "VERSION_NAME=$ArtifactName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
echo "RELEASE_TITLE=v$ArtifactName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
Write-Host "ArtifactName = $ArtifactName" | |
Write-Host "Is PreRelease = $IsPreRelease" | |
- name: Bump version and push tag | |
id: tag_version | |
uses: mathieudutour/[email protected] | |
with: | |
custom_tag: ${{ env.VERSION_NAME }} | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
- uses: ncipollo/release-action@main | |
name: Create Release | |
with: | |
artifacts: ${{ inputs.artifacts }} | |
artifactErrorsFailBuild: ${{ inputs.artifactErrorsFailBuild }} | |
draft: true | |
generateReleaseNotes: true | |
name: ${{ env.RELEASE_TITLE }} | |
tag: ${{ env.VERSION_NAME }} | |
prerelease: ${{ env.IS_PRERELEASE }} | |
body: ${{ inputs.release-notes }} | |
- name: Publish NuGet | |
run: dotnet nuget push ${{ inputs.artifacts }} --source 'https://api.nuget.org/v3/index.json' --api-key ${{ secrets.NUGET_API_KEY }} --skip-duplicate |