Рубрики
Uncategorized

Настройка непрерывной доставки с помощью действий GitHub

Действия GitHub получают большую непрерывную интеграцию, но как насчет непрерывной доставки? В этом по … Tagged with GitHub, Githubactions, DevOps.

[«28-github-Actions»] (серия 26 деталей)

Действия GitHub получают большую непрерывную интеграцию, но как насчет непрерывной доставки?

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

Использование графика визуализации

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

График отображает каждое задание в рабочем процессе. Значок слева от названия работы указывает статус работы. Линии между заданиями указывают на зависимости.

Зависимые рабочие места

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

В этом примере задания настройки, строительство и тестирование проводятся последовательно, при этом сборка и тест зависят от успешного завершения задания, которая предшествует им:

jobs:
  setup:
    runs-on: ubuntu-latest
    steps:
      - run: ./setup_server.sh
  build:
    needs: setup
    runs-on: ubuntu-latest
    steps:
      - run: ./build_server.sh
  test:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - run: ./test_server.sh

Среда

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

Узнайте больше о окружающей среде.

Стройте и разверните

Используйте филиалы развертывания, чтобы ограничить, какие филиалы могут развернуться в окружающей среде. Ниже приведены варианты развертывания филиалов для среды:

  • Все филиалы: все филиалы в репозитории могут развернуться в окружающей среде.

  • Защищенные ветви: только ветви с включенными правилами защиты филиалов могут развернуться в окружающей среде. Если правила защиты от филиала не определены ни для какой отрасли в репозитории, то все ветви могут развернуться. Для получения дополнительной информации о правилах защиты филиала см. «О защищенных ветвях».

  • Выбранные филиалы: только филиалы, которые соответствуют указанным вашим шаблонам имен, могут развернуться в среде.

Вы можете провести определенные события для конкретных филиалов. Вы настраиваете YAML, чтобы включить имена ветвей, чтобы запустить CI -проверки на ветвях, которые вам нужны. Ниже приведен пример с текстом заполнителя для окружающей среды и команд. Пожалуйста, используйте это, чтобы вы начали, но обязательно замените текст на свой сборник и развертывание.

# This is a basic workflow to help you get started with Actions

name: CI/CD

# Controls when the action will run. 
on:
  # Allows you to run this workflow manually from the Actions tab
  [workflow_dispatch, pull_request, push]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  build:
    runs-on: ubuntu-latest
    steps:

      - uses: actions/checkout@v2

      - name: Run a one-line script
        run: echo Hello, world!

      - name: Run a multi-line script
        run: |
          echo Add other actions to build,
          echo test, and deploy your project.

  deploy-staging:
    needs: [build]
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    environment: 
      name: staging
      url: http://staging.int.foo.com

    steps:

      - uses: actions/checkout@v2


      - name: Run a one-line script
        run: echo Hello, world!

      - name: Run a multi-line script
        run: |
          echo Add other actions to build,
          echo test, and deploy your project.

  test-site:
    needs: [deploy-staging]
    runs-on: ubuntu-latest
    name: Test on ${{ matrix.browser }}
    strategy:
      matrix:
        browser: ['edge', 'chrome', 'mozilla']
    steps:
      - name: Run a one-line script
        run: echo Hello, world!

      - name: Run a multi-line script
        run: |
          echo Add other actions to build,
          echo test, and deploy your project.

  deploy-production:
    needs: [test-site]
    if: github.ref == 'refs/heads/main'

    runs-on: ubuntu-latest
    environment: 
      name: production
      url: http://www.foo.com

    steps:

      - uses: actions/checkout@v2

      - name: Run a one-line script
        run: echo Hello, world!

      - name: Run a multi-line script
        run: |
          echo Add other actions to build,
          echo test, and deploy your project.

  deploy-review:
    needs: [build]
    if: github.event_name == 'pull_request'

    runs-on: ubuntu-latest
    environment: 
      name: review
      url: http://review-23.lab.foo.com

    steps:

      - uses: actions/checkout@v2

      - name: Run a one-line script
        run: echo Hello, world!

      - name: Run a multi-line script
        run: |
          echo Add other actions to build,
          echo test, and deploy your project.

Это часть моей серии 28 дней действий. Чтобы получить уведомление о большем количестве советов по действию GitHub, следуйте организации GitHub прямо здесь, на Dev. Узнайте, как строить действия с Node.js

Синхронизировать вилки вверх по течению, используя действия GitHub

Брайан Дуглас ・ 28 февраля ・ 2 мин прочитал

[«28-github-Actions»] (серия 26 деталей)

Оригинал: «https://dev.to/github/setup-continuous-delivery-with-github-actions-4pea»