Skip to content

New Release

New Release #2

Workflow file for this run

name: New Release
on:
milestone:
types: [closed]
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Get Project Version
id: get_version
uses: mod-posh/[email protected]
with:
Filename: '${{ vars.PROJECT_NAME }}/${{ vars.PROJECT_NAME }}.csproj'
verbose: "verbose"
- name: Create Release Notes
uses: mod-posh/[email protected]
with:
milestone_number: ${{ github.event.milestone.number }}
verbose: 'verbose'
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Pull Latest Changes
run: git pull origin ${{ github.ref_name }}
shell: bash
- name: Create Release
uses: mod-posh/[email protected]
with:
name: 'Release v${{ env.VERSION }}'
filename: 'RELEASE.md'
version: ${{ env.VERSION }}
verbose: 'verbose'
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Install PowerShell
run: |
sudo apt-get update
sudo apt-get install -y powershell
- name: Install XMLDocMD Tool
run: dotnet tool install --global xmldocmd
- name: Build Project
run: dotnet build ${{ vars.PROJECT_NAME }}/${{ vars.PROJECT_NAME }}.csproj --configuration Release
- name: Publish Project
run: dotnet publish ${{ vars.PROJECT_NAME }}/${{ vars.PROJECT_NAME }}.csproj --configuration Release --output ./publish
- name: Generate Documentation
run: |
xmldocmd ./publish/${{ vars.PROJECT_NAME }}.dll Docs --visibility private --clean --namespace ${{ vars.PROJECT_NAMESPACE }} --namespace-pages
env:
PATH: ${{ github.runner.tool_cache }}/.dotnet/tools:$PATH:~/.dotnet/tools
- name: Run markdownlint-cli2-action
uses: DavidAnson/markdownlint-cli2-action@v16
with:
globs: '**/*.md'
fix: true
- name: Run Inline PowerShell Commands
run: |
pwsh -command "
$Project = [xml](Get-Content -Path "${{ github.workspace }}/${{ vars.PROJECT_NAME }}/${{ vars.PROJECT_NAME }}");
$PackageId = $Project.Project.PropertyGroup.PackageId;
$readMe = Get-Item -Path "${{ github.workspace }}\README.md"
$TableHeaders = "| Latest Version | Nuget.org | Issues | License | Discord |"
$Columns = "|-----------------|----------------|----------------|----------------|----------------|"
$VersionBadge = "[![Latest Version](https://img.shields.io/github/v/tag/${{ github.repository_owner }}/${{ vars.PROJECT_NAME }})](${{ github.repository }}/${{ vars.PROJECT_NAME }}/tags)"
$GalleryBadge = "[![Nuget.org](https://img.shields.io/nuget/dt/$($PackageId))](https://www.nuget.org/packages/$($PackageId))"
$IssueBadge = "[![GitHub issues](https://img.shields.io/github/issues/${{ github.repository_owner }}/${{ vars.PROJECT_NAME }})](${{ github.repository }}/${{ vars.PROJECT_NAME }}/issues)"
$LicenseBadge = "[![GitHub license](https://img.shields.io/github/license/${{ github.repository_owner }}/${{ vars.PROJECT_NAME }})](${{ github.repository }}/${{ vars.PROJECT_NAME }}/blob/master/LICENSE)"
$DiscordBadge = "[![Discord Server](https://assets-global.website-files.com/6257adef93867e50d84d30e2/636e0b5493894cf60b300587_full_logo_white_RGB.svg)](https://discord.com/channels/1044305359021555793/1044305781627035811)"
Write-Output $TableHeaders | Out-File $readMe.FullName -Force
Write-Output $Columns | Out-File $readMe.FullName -Append
Write-Output "| $($VersionBadge) | $($GalleryBadge) | $($IssueBadge) | $($LicenseBadge) | $($DiscordBadge) |" | Out-File $readMe.FullName -Append
Get-Content -Path "$($script:Root)\${{ vars.PROJECT_NAME }}.md" |Out-File -FilePath $readMe.FullName -Append
"
- name: Commit Documentation Changes
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "Update documentation for release v${{ env.VERSION }}"
git push origin ${{ github.ref_name }}
if: success()