Проверка CircleCI с использованием orb: не удается найти определение для работы - PullRequest
0 голосов
/ 03 августа 2020

Я создал и опубликовал circleci orb dev:

>circleci orb publish myorb.yml mynamespace/myorb@dev:alpha2
Orb `mynamespace/myorb@dev:alpha2` was published.
Please note that this is an open orb and is world-readable.
Note that your dev label `dev:alpha2` can be overwritten by anyone in your organization.
Your dev orb will expire in 90 days unless a new version is published on the label `dev:alpha2`.

Поскольку я обнаружил, что невозможно увидеть шары dev под регистрацией, я попытался использовать cli для его перечисления, вот что я получаю:

 >circleci orb list vydev --uncertified
 Orbs found: 1. Includes all certified and uncertified orbs.

 mynamespace/myorb (Not published)

Когда я пытаюсь проверить валидацию моего файла config.yml, я получаю эту ошибку:

 >circleci config validate
 Error: Error calling workflow: 'myworkflow'
 Cannot find a definition for job named myorb/job1

Вот файл myorb.yml:

version: 2.1
description: My orb

commands:
  job1:
    description: "job1"
    steps:
      - checkout:
          path: ~/repo
      - run:
          name: Validate code
          command: |
            printf "Validating code\n"
        
  job2:
    steps:
      - checkout:
          path: ~/repo
      - run:
          name: Zip source code
          command: |
            s3_prefix="$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/branches/$CIRCLE_BRANCH"
            sha1="$(echo $CIRCLE_SHA1 | cut -c -7)"
            ls -al
            more commands
      - persist_to_workspace:
          root: ./
          paths:
            - "*"
  job3:
    steps:
      - attach_workspace:
          at: /tmp/workspace
      - run:
          name: Upload source to S3
          command: |
            s3_bucket="mybucket"
            ls -al
            more commands

executors:
  exe1:
    description: using defined version 
    parameters:
      version:
        type: string
        default: ${version} 
        description: Version of code
    docker:
      - image: << parameters.version >>
    working_directory: /tmp/workspace
  exe2:
    description: buildpackages
    docker:
      - image: myimage:latest 
    working_directory: /tmp/workspace   
  exe3:
    description: using ECR CLI
    docker:
      - image: myimage:v1
    working_directory: /tmp/workspace

и config.yml, как показано ниже:

version: 2.1
orbs:
  myorb: mynamespace/myorb@dev:alpha2
workflows:
  myworkflow:
    jobs:
      - myorb/job1:
          executor: 
            name: myorb/exe1
            version: 0.12.24
          filters:
            branches:
              only: master
      - myorbm/job2:
          executor: 
            name: myorb/exe2
          filters:
            branches:
              only: master
      - myorb/job3:
          executor: 
            name: myorb/exe3
          filters:
            branches:
              only: master
          requires:
            - myorb/job1
            - myorb/job2

Кто-нибудь знает, чего здесь не хватает?

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 04 августа 2020

В приведенном вами примере вы определяете команды и называете их так, как если бы они были заданиями .

Ошибка указывает, что нет заданий под это имя, а там нет. Однако есть команды.

Команды должны использоваться в заданиях.

https://circleci.com/docs/2.0/orbs-faq/#difference -between-commands-and-jobs

Как создавать задание: https://circleci.com/docs/2.0/reusing-config/#authoring -параметризованные-задания

Живые примеры:

Узел «тест» Задание : https://github.com/CircleCI-Public/node-orb/blob/master/src/jobs/test.yml

Узел "install-packages" Команда : https://github.com/CircleCI-Public/node-orb/blob/master/src/commands/install-packages.yml

...