pipeline updates #102
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: Release | |
on: | |
push: | |
branches: | |
- dev | |
- main | |
jobs: | |
test: | |
runs-on: windows-latest | |
name: Testing | |
strategy: | |
matrix: | |
dotnet: ['net6.0', 'net7.0', 'net462', 'net48','net8.0' ] | |
steps: | |
- name: Checkout code base | |
uses: actions/checkout@v2 | |
- uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: '8.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: '8.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 }} |