Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.82 KiB
Newer Older
Klaus Fischer's avatar
Klaus Fischer committed
include:
  - project: 'fit-connect/pipeline'
    ref: main
    file: 'reuse.gitlab-ci.yml'

stages:
  - lint
  - test
Klaus Fischer's avatar
Klaus Fischer committed
  - build
  - nuget-pack
Marco Holz's avatar
Marco Holz committed
reuse:
  extends: .reuse
  variables:
    DOCKER_REGISTRY_READ: $DOCKER_PULL_REGISTRY

Klaus Fischer's avatar
Klaus Fischer committed
build:
Klaus Fischer's avatar
Klaus Fischer committed
  stage: build
  image: mcr.microsoft.com/dotnet/sdk:6.0
Klaus Fischer's avatar
Klaus Fischer committed
  script:
    - cp $CREDENTIALS ./Tests/MockContainer/credentials.json
    - dotnet build FitConnect

nuget-pack:
Klaus Fischer's avatar
Klaus Fischer committed
  stage: nuget-pack
Klaus Fischer's avatar
Klaus Fischer committed
  image: mcr.microsoft.com/dotnet/sdk:6.0
Klaus Fischer's avatar
Klaus Fischer committed
  artifacts:
Klaus Fischer's avatar
Klaus Fischer committed
    paths:
      - ./artifacts
    expire_in: 30 days
Klaus Fischer's avatar
Klaus Fischer committed
    - cp $CREDENTIALS ./Tests/MockContainer/credentials.json
    - GIT_COMMIT_ID=$CI_COMMIT_SHORT_SHA
    - sed -i -e "s|<PackageVersion>.*</PackageVersion>|<PackageVersion>$CI_COMMIT_TAG</PackageVersion>|" FitConnect/FitConnect.csproj
    - FILE_VERSION=$(echo "$CI_COMMIT_TAG" | sed 's/\-.*//')
    - sed -i -e "s|<AssemblyVersion>.*</AssemblyVersion>|<AssemblyVersion>$FILE_VERSION</AssemblyVersion>|" FitConnect/FitConnect.csproj
    - sed -i -e "s|<FileVersion>.*</FileVersion>|<FileVersion>$FILE_VERSION</FileVersion>|" FitConnect/FitConnect.csproj
    - sed -i -e "s|public const string PackageVersion = \".*\";|public const string PackageVersion = \"$CI_COMMIT_TAG\";|" FitConnect/ProjectSpecification.cs
    - sed -i -e "s|public const string CommitId = \".*\";|public const string CommitId = \"$CI_COMMIT_SHORT_SHA\";|" FitConnect/ProjectSpecification.cs
    - dotnet pack FitConnect -c Release -o ./artifacts
Klaus Fischer's avatar
Klaus Fischer committed
    - dotnet nuget push ./artifacts/FitConnect.$CI_COMMIT_TAG.nupkg --api-key $NUGET_API_KEY -s https://api.nuget.org/v3/index.json
Klaus Fischer's avatar
Klaus Fischer committed

test:
  stage: test
  image: mcr.microsoft.com/dotnet/sdk:6.0
  script:
Klaus Fischer's avatar
Klaus Fischer committed
    - cp $CREDENTIALS ./Tests/MockContainer/credentials.json
    - dotnet test Tests/E2ETest
    - dotnet test Tests/IntegrationTests
    - dotnet test Tests/BasicUnitTest