--- image: mcr.microsoft.com/dotnet/core/sdk:3.0-alpine3.11 variables: OBJECTS_DIRECTORY: 'obj' NUGET_PACKAGES_DIRECTORY: '.nuget' SOURCE_CODE_PATH: 'ChaosBot/*/' stages: - build - test cache: key: "$CI_JOB_STAGE-$CI_COMMIT_REF_SLUG" paths: # Specify three paths that should be cached: # # 1) Main JSON file holding information about package dependency tree, packages versions, # frameworks etc. It also holds information where to the dependencies were restored. - '$SOURCE_CODE_PATH$OBJECTS_DIRECTORY/project.assets.json' # 2) Other NuGet and MSBuild related files. Also needed. - '$SOURCE_CODE_PATH$OBJECTS_DIRECTORY/*.csproj.nuget.*' # 3) Path to the directory where restored dependencies are kept. - '$NUGET_PACKAGES_DIRECTORY' # policy: pull-push before_script: - 'dotnet restore --packages $NUGET_PACKAGES_DIRECTORY' only: changes: - ChaosBot/**/* build: stage: build only: changes: - ChaosBot/**/* tags: - docker - hawkeye script: - 'dotnet build --no-restore' tests: stage: test only: changes: - ChaosBot/**/* tags: - docker - hawkeye script: - 'dotnet test --no-restore'