Yaml:yaml文件中的格式错误。预期' ',但发现'

问题描述 投票:0回答:2
  version: 2.1
  executors:
    docker-publisher:
      environment:
        IMAGE_NAME: vinaya.nayak/mocking-service
      docker:
        - image: circleci/buildpack-deps:stretch
  jobs:
    build:
       executor: docker-publisher
       steps:
         - checkout
         - setup_remote_docker
         - run:
            name: Build Docker image
            command: |
              docker build -t $IMAGE_NAME:latest .
         - run:
            name: Archive Docker image
            command: docker save -o mocking.tar $IMAGE_NAME
         - persist_to_workspace:
              root: .
              paths:
                - ./mocking.tar
  publish-latest:
      executor: docker-publisher
      steps:
        - attach_workspace:
            at: /tmp/workspace
        - setup_remote_docker
        - run:
            name: Load archived Docker image
            command: docker load -i /tmp/workspace/mocking.tar
        - run:
            name: Publish Docker Image to Docker Hub
            command: |
                  echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USERNAME" --password-stdin
                  docker push docker.kfz42.de/v2/java/mocking-service/$IMAGE_NAME:latest .
workflows:
  version: 2
  build-master:
    jobs:
      - build:
          filters:
           branches:
             only: master
      - publish-latest:
          requires:
            - build
          filters:
            branches:
              only: master

有人可以帮我解决我的yaml文件错误吗?我收到以下错误。我甚至尝试使用yaml格式化程序,yaml格式化程序说这是一个有效的yaml文件

!/ bin / sh -eo pipefail无法解析YAML expect'',但在'string'中找到'',第39行,第1列:工作流程:警告:此配置是自动生成的,以显示上面的消息。不要重新运行这份工作。重新运行将无效。 false退出代码1

yaml circleci
2个回答
0
投票

您的文件以缩进为两个空格的键值对开始,因此您有一个根级别节点作为映射。只要所有其他根级别也缩进两个空格,那就没问题了。

workflows没有缩进,这就是解析器期望新文档的原因。


1
投票
  version: 2.1
  executors:
    docker-publisher:
      environment:
        IMAGE_NAME: vinaya.nayak/mocking-service
      docker:
        - image: circleci/buildpack-deps:stretch
  jobs:
    build:
       executor: docker-publisher
       steps:
         - checkout
         - setup_remote_docker
         - run:
            name: Build Docker image
            command: |
              docker build -t $IMAGE_NAME:latest .
         - run:
            name: Archive Docker image
            command: docker save -o mocking.tar $IMAGE_NAME
         - persist_to_workspace:
              root: .
              paths:
                - ./mocking.tar
  publish-latest:
      executor: docker-publisher
      steps:
        - attach_workspace:
            at: /tmp/workspace
        - setup_remote_docker
        - run:
            name: Load archived Docker image
            command: docker load -i /tmp/workspace/mocking.tar
        - run:
            name: Publish Docker Image to Docker Hub
            command: |
                  echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USERNAME" --password-stdin
                  docker push docker.kfz42.de/v2/java/mocking-service/$IMAGE_NAME:latest .
  workflows:
    version: 2
    build-master:
      jobs:
        - build:
            filters:
             branches:
               only: master
        - publish-latest:
            requires:
              - build
            filters:
              branches:
                only: master

我通过用2个空格缩进workflows来解决上述问题

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.