Рубрики
Uncategorized

Создать шаблоны действий GitHub — новые составные действия Функция исследуется

В то время как я освещал основы композитных шагов, выполняющих действия в этом другом посте и видео, и … с меткой GitHub, DevOps, действия, CICD.

В то время как я освещал основы композитных шагов, выполняющих действия в этом другом Пост и видео , и поэтому я не буду подробно рассказать о тех, кто здесь Сегодня я покажу вам одну из самых важных новых функций в действиях GitHub за последние 6 месяцев, по крайней мере, на мой взгляд: Возможность использовать другие действия в составном действии Анкет

видео

Как обычно, если вы Визуальный ученик , или просто предпочитаю смотреть и слушать вместо чтения, здесь у вас есть Видео со всем объяснением и демонстрацией , что, чтобы быть справедливым, много более полное чем этот пост.

Ссылка на видео: https://youtu.be/4lh_7b5lmjo

Если вы предпочитаете читать, хорошо … давайте просто продолжим:)

Проблема и решение

До сих пор композитные действия могли использовать только сценарии, встроенные либо в YAML, либо в отдельных файлах. И это, конечно, было довольно ограничивающим.

Но теперь они могут вместо этого Ссылка на другие действия также , делая их де-факто эквивалент шаблонов В лазурных трубопроводах, Дженкинсе и так далее.

И, конечно, это также позволяет легко уменьшить дублирование в ваших рабочих процессах, и это идеально подходит для повторяющихся задач.

Сценарий

Хорошо, давайте посмотрим, как мы можем создать композитные действия, которые используют другие действия, и как их использовать. Для этого примера я хотел создать что -то действительно полезное Анкет Я решил пойти с температурой сборки и толчка изображения Docker, что я делаю все время в своих рабочих процессах, и представляю повторяющийся набор задач Анкет

Создать составное действие с действиями

Сначала думайте, что мы должны сделать, это создать action.yml Файл в корне публичного репо, который станет « источник » для нашего составного действия.

Далее мы можем добавить несколько метаданных.

name: "Publish to Docker"
description: "Build a container image and Pushes it to Docker registry"

Эти две строки просто добавляют имя и описание, поэтому мы знаем, что делает наше действие.

Далее нам нужны некоторые входные данные. Нам понадобится, например, имя пользователя и пароль реестра Docker, имя изображения, теги и т. Д.

inputs:
  registry_username:
    description: "Username for image registry"
    required: true
  registry_password:
    description: "Password for image registry"
    required: true
  image_name:
    description: "Name of the image to push"
    required: true
  tag: 
    description: "How to tag the image. Default: latest" 

Как вы можете видеть, мы можем установить входные данные по мере необходимости или оставить их необязательными (в качестве тега).

Последняя часть, прежде чем мы сможем добавить фактическую задачу, мы должны сообщить GitHub, что это файл метаданных для составных действий:

runs:
  using: "composite"
  steps:

Добавьте задачи

Хорошо, мы готовы добавить нашу задачу. Как? Ну, точно так же, как вы делаете в обычном рабочем процессе:

      - name: Setup BuildX
        uses: docker/setup-buildx-action@v1

      - name: Login to the Registry
        uses: docker/login-action@v1
        with:
          username: ${{inputs.registry_username}}
          password: ${{inputs.registry_password}}

      - name: Set the tag
        shell: bash
        run: |
          if [ -z "${{inputs.tag}}" ]
          then
            echo "final_tag=latest" >> $GITHUB_ENV
          else
            echo "final_tag=${{inputs.tag}}" >> $GITHUB_ENV
          fi

      - name: Build and Push the Image
        uses: docker/build-push-action@v2
        with:
          context: .
          push: true
          tags: ${{inputs.registry_username}}/${{inputs.image_name}}:${{env.final_tag}}

Единственное отличие состоит в том, что вам нужно добавить ссылки на действия ( Например Использование: Docker/Setup-Buildx-Action@v1 ) вручную, потому что на правой части экрана нет панели рынка У вас будет рабочий процесс действий.

ℹ Предложение: если вы не помните все имена действий, вы можете составить свои задачи в обычном редакторе рабочего процесса, а затем скопировать их в составное действие

Еще одна вещь, которую стоит отметить в YAML, это то, как вы используете значение входов: $ {{inputs.image_name}}

И это в основном все, что вам нужно сделать для создания составного действия, которое использует в нем действия. Просто совершите, и все готово.

👀 Проверьте N3WT0N/CompositeAction Repo увидеть весь ямл

Используйте составное действие в своем рабочем процессе

Давайте посмотрим, как использовать наше действие в обычном рабочем процессе.

Все, что вам нужно сделать, это ссылаться на это составное действие, используя имя пользователя (или учетную запись организации) и название репо:

- name: Build and Push the image
  uses: n3wt0n/CompositeAction@main
  with:
    registry_username: ${{secrets.REGISTRY_USERNAME}}
    registry_password: ${{secrets.REGISTRY_PASSWORD}}
    image_name: my-awesome-app
    tag: $GITHUB_RUN_NUMBER

В YAML выше, в использует Вы можете видеть, что я ссылаюсь на свое составное действие, используя мое название аккаунта ( n3wt0n ) и Имя репо ( compositeAction ). Плюс, мне нужно использовать Версия Анкет В этом случае я использовал Главный Это означает, что мой рабочий процесс всегда будет использовать последнюю версию композитного действия, доступной на главной ветви. Если вы хотите иметь Статическая версия Вместо этого вам придется Создайте тег в вашем репо и используйте это вместо названия ветви, чтобы вернуть свое составное действие.

Наконец, как вы можете видеть, вы можете передать свои входные значения, используя с ключевое слово

👀 Проверьте n3wt0n/actionstest Repo увидеть весь ямл

Журнал

Последнее, что стоит упомянуть, это то, как все это распечатано в журналах.

Как видите, у нас есть Создайте и нажмите изображение Задача (как я назвал шаг, который использует мое составное действие) но У нас нет деталей шагов в самом составном действии Анкет

Однако у нас есть журналы шагов в реальном журнале:

Выводы

Как видите, эта новая возможность композитных действий очень полезна для Упрощающие повторяющиеся задачи И чтобы убедиться, что все необходимое включено в ваш рабочий процесс с одной ссылкой.

Как я уже упоминал, эта функция для меня является одним из лучших новых дополнений к действиям GitHub за последние несколько месяцев. Ты согласен со мной? Позвольте мне знать в комментариях ниже.

Я также думаю, что когда можно будет использовать пользовательские действия из внутренних и частных репозиториев, что является функцией, которая фактически запланирована на последнюю четверть этого года, как вы можете увидеть здесь, на общественной дорожной карте GitHub, это будет даже даже более могущественный. Дайте мне знать в разделе комментариев ниже, как вы используете или планируете использовать составные действия.

Вы также можете посмотреть это видео , в котором я говорю обо всех основаниях составных шагов.

Мол, поделиться и следуй за мной 🚀 Для большего содержания:

📽 YouTubeКупить мне кофе 💖 Patreon 📧 Информационный бюллетень 🌐 CoderDave.io Веб -сайт 👕 Мерч 👦🏻 Страница Facebook 🐱‍💻 GitHub 👲🏻 Twitter 👴🏻 LinkedIn 🔉 Подкаст

Оригинал: «https://dev.to/n3wt0n/create-github-actions-templates-new-composite-actions-feature-4ibk»