GitVersion.MsBuild fails on shallow clones ('Repository is a shallow
clone. Git repositories must contain the full history.') because it
walks the git log to compute the SemVer version.
Drop --depth 1 from both the PR ref fetch and the submodule update
so the runner's working tree has full history. The repo is small
enough that the cost is negligible.
59 lines
1.5 KiB
YAML
59 lines
1.5 KiB
YAML
# This workflow will build a .NET project
|
|
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
|
|
name: Dotnet build and test
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
logLevel:
|
|
description: 'Log level'
|
|
required: true
|
|
default: 'warning'
|
|
type: choice
|
|
options:
|
|
- info
|
|
- warning
|
|
- debug
|
|
tags:
|
|
description: 'Test scenario tags'
|
|
required: false
|
|
type: boolean
|
|
push:
|
|
branches: [ "main" ]
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
|
|
jobs:
|
|
log-the-inputs:
|
|
runs-on: debian-latest
|
|
steps:
|
|
- run: |
|
|
echo "Log level: $LEVEL"
|
|
echo "Tags: $TAGS"
|
|
echo "Environment: $ENVIRONMENT"
|
|
env:
|
|
LEVEL: ${{ inputs.logLevel }}
|
|
TAGS: ${{ inputs.tags }}
|
|
|
|
build:
|
|
|
|
runs-on: docker
|
|
|
|
steps:
|
|
- name: Clone yavsc
|
|
run: |
|
|
cd /src
|
|
git clone https://forgejo.pschneider.fr/notazof/yavsc.git _src
|
|
cd _src
|
|
if [ -n "${GITHUB_REF:-}" ]; then
|
|
git fetch origin "$GITHUB_REF"
|
|
git checkout FETCH_HEAD
|
|
fi
|
|
git submodule update --init --recursive
|
|
echo "Checked out at $(git rev-parse HEAD) on $(git branch --show-current 2>/dev/null || echo detached HEAD)"
|
|
- name: Restore dependencies
|
|
run: cd /src/_src && dotnet restore
|
|
- name: Build
|
|
run: cd /src/_src && dotnet build --no-restore
|
|
- name: Test
|
|
run: cd /src/_src && dotnet test --no-build --verbosity normal
|