CircleCI:找不到名为“publish-latest”的作业定义。

3
  version: 2.1
  executors:
    docker-publisher:
      environment:
        IMAGE_NAME: 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

请问我在这里做错了什么?当我尝试通过CircleCI运行此yaml文件时,出现以下错误:

!/bin/sh -eo pipefail 调用工作流程时出错:'build-master' 找不到名为 publish-latest 的作业定义

警告:此配置是自动生成的,以显示上面的消息。不要重新运行此作业。重新运行没有效果。 false


CircleCI的YAML文件有严格的缩进要求。令人烦恼的是,所有的“在线YAML检查器”都不关心缩进。 - Fattie
2个回答

3
如marxmacher所述,这看起来像是缩进错误。如果您有CircleCi CLI,您可以运行circleci config validate命令,它将显示配置文件中的任何问题。"最初的回答"

实际上,只需要在 Mac 上运行 brew install circleci,然后就可以开始使用了。 - Fattie

3
似乎你的缩进有问题。publish-latest应该像其他定义的任务一样缩进。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接