[«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»