Nano Hash - криптовалюты, майнинг, программирование

Может ли рабочий процесс CircleCI создать образ Docker на первом этапе, а затем протестировать этот образ Docker на втором этапе?

Я новичок в рабочих процессах CircleCI, и я хотел бы создать рабочий процесс из двух шагов.

  1. На первом этапе (задание сборки) создается и помещается образ Docker в реестр Docker с определенным тегом. После успешного завершения первого шага он запустит второй шаг рабочего процесса и передаст тег образа Docker.
  2. Шаг секунд затем загрузит изображение, переданное на шаге 1 (например, с использованием переменной ENV). Что-то вроде
version: 2
    jobs:
      build:
        docker:
          - image: docker.repo.ch/image:${TAG}

Есть ли какой-то механизм для передачи значения в качестве параметра от одного задания сборки другому в рамках рабочего процесса CircleCI?


  • вы собираетесь протолкнуть его в реестр докеров или просто передавать с работы на работу? 30.01.2020
  • Идея состоит в том, чтобы отправить образ на шаге 1 в реестр докеров и использовать (вытащить) его на шаге 2. 31.01.2020
  • отредактировал соответственно 31.01.2020

Ответы:


1

Поскольку каждый шаг выполнения представляет собой новую оболочку, переменные среды не используются совместно с другими шагами. Если вам нужно, чтобы переменная среды была доступна более чем на одном шаге, экспортируйте значение с помощью BASH_ENV.

https://circleci.com/docs/2.0/env-vars/#setting-an-environment-variable-in-a-step

Экспорт переменной в следующее задание:

workflows:
  version: 2
  pass_tag:
    jobs:
    - create_tag
    - use_tag:
        requires:
        - create_tag

executors:
  node:
    docker:
      - image: circleci/node:4.8.2

jobs:
  create_tag:
    executor: node
    steps:
    - run: echo "export MY_TAG=$CIRCLE_SHA1" >> $BASH_ENV
  use_tag:
    executor: node
    steps:
    - run: echo $MY_TAG

Отправьте и используйте образы докеров:

используйте CircleCI orbs (как библиотеку) для создания и отправки изображения:

version: 2.1
orbs:
    aws-ecr: circleci/[email protected]

workflows:
  version: 2
  example:
   jobs:
      - aws-ecr/build-and-push-image:
          account-url: DEV_AWS_ECR_ACCOUNT_URL
          aws-access-key-id: DEV_ACCESS_KEY_ID
          aws-secret-access-key: DEV_SECRET_ACCESS_KEY
          create-repo: true
          repo: '${CIRCLE_PROJECT_REPONAME}'
          region: AWS_DEFAULT_REGION
          tag: '${CIRCLE_SHA1}'
      -  pull_image:
          requires:
              - aws-ecr/build-and-push-image

jobs:
    pull_image:
        *** pull and use your image here ***
30.01.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..