Проблемы с Circleci, связанные с gitversion

У меня есть конвейер Circleci, который генерирует пакет nuget и загружает его на nuget.org. До сих пор все работало нормально, но внезапно перестало работать. Это ошибка

Вот config.yml

version: 2.1

jobs:

  build-and-test:
    docker:
      - image: mcr.microsoft.com/dotnet/sdk:8.0
    steps:

      - checkout

      - run:
          name: Cambiar directorio
          command: cd ./Repo
         
      - run:
          name: Instalar Node
          command: apk add nodejs

      - run:
          name: Instalar NPM
          command: apk add npm

      - run:
          working_directory: ./Repo
          name: Ejecutar tests
          command: |
            dotnet test
            << pipeline.git.tag >>
      - run:
          working_directory: ./Repo
          name: Compilar version Release
          command: |
            dotnet build --configuration Release

      - run:
          name: Patchear imagen
          command: |
            apk add openssh git jq

      - run:
          name: Generar manifest
          command: |
            dotnet new tool-manifest

      - run:
          name: Instalar GitVersion
          command: |
            dotnet tool install GitVersion.Tool

      - run:
          working_directory: ./Repo/Components
          name: Generar paquete nuget
          command: |
            VERSION=$(dotnet gitversion | jq -r ".SemVer") 
            dotnet pack --configuration Release -p:Version=$VERSION -o ./outputs/packages/
            
      - store_artifacts:
          path: ./Repo/Components/outputs/packages
          destination: packages

      - persist_to_workspace:
          root: ./Repo/Components/outputs/packages
          paths:
            - "*.nupkg"
            - "*.snupkg"
  push:
    docker:
      - image: mcr.microsoft.com/dotnet/sdk:8.0
    steps:
      - attach_workspace:
          at: /tmp/workspace
      - run:
          name: Pushear a Nuget.org
          command: dotnet nuget push /tmp/workspace/*.* --api-key someapikey --skip-duplicate --source https://api.nuget.org/v3/index.json

workflows:
  setup:
    when:
      and:
        - equal: [ main, << pipeline.git.branch >> ]
    jobs:
      - build-and-test:
          filters:
            tags:
              only: /.*/
      - push:
          requires:
            - build-and-test
          context:
            - NuGet
          filters:
            tags:
              only: /^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/

Я провел расследование и недавно обновил систему до .NET Core 8.0. Судя по всему, Gitversion теперь имеет версию 6.0, чтобы быть совместимой с Net 8.0. https://github.com/GitTools/GitVersion/blob/main/BREAKING_CHANGES.md

Я также попробовал заменить библиотеку jq на fx, но получил эту ошибку: SyntaxError: JSON value expected on line 1. Я думаю dotnet gitversion не выводит правильный объект json.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец я решил эту проблему, взглянув на GitVersion.yml. Я использовал gitversion 6 в своем конвейере и gitversion 5 в своей локальной среде, поэтому мне не удалось воспроизвести ошибку. Gitversion 6 содержит критические изменения.

Сначала я проверяю, что файл config.yml из Circleci действителен (для этой задачи я использовал Circleci-cli). Затем я обновил gitversion до V6.0 в своей локальной среде. Затем мне удалось воспроизвести ту же ошибку, о которой сообщил круг ci. В итоге это был искаженный файл (Gitversion.yml), некоторые свойства были переименованы. Убедившись, что файл конфигурации действителен, он снова начал работать. Я больше не вносил никаких изменений, кроме исправления файла конфигурации. Надеюсь, кто-то найдет это полезным.

Другие вопросы по теме