Skip to content

chore: Fix CI/CD setup #77

chore: Fix CI/CD setup

chore: Fix CI/CD setup #77

Workflow file for this run

name: MockServer .NET Client
on:
workflow_dispatch:
push:
env:
PROJECT_NAME: 'MockServerClientNet'
NUPKG_OUTPUT: ${{ github.workspace }}/nupkg
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Setup .NET
uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # 4.0.1
with:
dotnet-version: 8.x.x
- name: Build
run: dotnet build
- name: Tests
run: dotnet test
release:
runs-on: ubuntu-latest
needs: build-and-test
if: github.ref == 'refs/heads/master'
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 4.1.7
- name: Setup .NET ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@6bd8b7f7774af54e05809fcc5431931b3eb1ddee # 4.0.1
with:
dotnet-version: 8.x.x
- name: Release
id: release
uses: cycjimmy/semantic-release-action@v4
with:
tag_format: ${version}
working_directory: ./src/MockServerClientNet
extra_plugins: |
@semantic-release/commit-analyzer
@semantic-release/release-notes-generator
@semantic-release/github
@semantic-release/git
@semantic-release/exec
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Publish
if: ${{ steps.release.outputs.new_release_version }}
run: |
dotnet clean
dotnet pack src/${{ env.PROJECT_NAME }}/${{ env.PROJECT_NAME }}.csproj -c Release -o ${{ env.NUPKG_OUTPUT }}
dotnet nuget push ${{ env.NUPKG_OUTPUT }}/*.nupkg -k ${{ secrets.NUGET_API_KEY }}