Skip to content

release pipeline updated #103

release pipeline updated

release pipeline updated #103

Workflow file for this run

name: Release
on:
push:
branches:
- dev
- main
jobs:
test:
runs-on: windows-latest
name: Testing
strategy:
matrix:
dotnet: ['net8.0', 'net9.0', 'net462', 'net48','net8.0' ]
steps:
- name: Checkout code base
uses: actions/checkout@v2
- uses: actions/setup-dotnet@v3
with:
dotnet-version: '9.0.x'
- name: Run tests
run: dotnet test --verbosity normal -f ${{ matrix.dotnet }}
release:
name: Releasing
runs-on: windows-latest
needs:
- test
steps:
- name: Checkout repo
uses: actions/checkout@v2
- uses: actions/setup-dotnet@v3
with:
dotnet-version: '9.0.x'
- uses: actions/setup-node@v3
with:
node-version: '20'
- name: Add plugin for conventional commits
run: npm install conventional-changelog-conventionalcommits
working-directory: ./.github/workflows
- name: Add plugin for executing bash commands
run: npm install @semantic-release/exec -D
working-directory: ./.github/workflows
- name: Dry Run Semantic to get next Version nummber
working-directory: ./.github/workflows
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_AUTHOR_NAME: thygesteffensen
GIT_AUTHOR_EMAIL: [email protected]
run: |
echo "RELEASE_VERSION=$((npx semantic-release --dry-run).Where({ $_ -like '*Release note*' }) | Out-String | Select-String '[0-9]+\.[0-9]+\.[0-9]+([-][a-zA-z]+[.][0-9]*)?' | % { $_.Matches } | % { $_.Value })" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Print release verison
run: echo ${env:RELEASE_VERSION}
- name: Cleaning
run: dotnet clean
if: ${{ env.RELEASE_VERSION }}
- name: Restore NuGet packages
run: dotnet restore ExpressionEngine.sln
if: ${{ env.RELEASE_VERSION }}
- name: Package Parser
run: dotnet pack -c Release -p:PackageVersion=${env:RELEASE_VERSION} -o ./artifacts
if: ${{ env.RELEASE_VERSION }}
- name: Install Xml to Markdown tool
run: dotnet new tool-manifest && dotnet tool install EAVFW.Extensions.Docs.TransformToMarkdown --version 1.0.0
if: ${{ env.RELEASE_VERSION }}
- name: Generate docs
run: dotnet tool run tomd --input ExpressionEngine/bin/Release/net8.0/ExpressionEngine.xml --output artifacts/Documentation.md
if: ${{ env.RELEASE_VERSION }}
- name: Release to GitHub and NuGet
working-directory: .\\.github\\workflows
env:
CI_NUGET_API_KEY: ${{ secrets.NUGETAPIKEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
if: ${{ env.RELEASE_VERSION }}