Если вы написали DENO Модуль Недавно, вы, скорее всего, захотите, чтобы вы могли, чтобы вы могли, чтобы вы могли, чтобы тестировать и построить его в автоматизированный процесс!
Если вы используете публику Github Репозиторий для хранения вашего кода, то вам повезет! Вы можете использовать Действия GitHub Для автоматизации всех ваших потребностей CI/CD для вашего проекта GitHub 🎉
В вашем проекте добавьте следующую структуру каталога и файлы:
. ├── .github/ │ └── workflows/ │ └── test.yml │ ... // other folders and files
А ..gitub
каталог в корне вашего проекта, содержащий A рабочие процессы
каталог, и, наконец, A test.yml
Файлы в рабочие процессы
каталог.
Это test.yml
Файл будет содержать все инструкции для нашего действия GitHub для тестирования DENO.
Добавьте следующее в свой test.yml
файл:
name: Test Deno Module on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest strategy: matrix: deno-version: [1.2.2, 1.3.0] steps: - name: Git Checkout Deno Module uses: actions/checkout@v2 - name: Use Deno Version ${{ matrix.deno-version }} uses: denolib/setup-deno@v2 with: deno-version: ${{ matrix.deno-version }} - name: Lint Deno Module run: deno fmt --check - name: Build Deno Module run: deno run --reload mod.ts - name: Test Deno Module run: deno test --allow-none
Здесь многое здесь! Так что давайте сломаемся 😄
name: Test Deno Module
Сначала мы добавляем Имя
Имущество для test.yml
файл. Вы можете изменить это на что-то отношение к вашему модулю. GitHub отображает это как имя вашего рабочего процесса на странице действий вашего репозитория.
on: push: branches: [main] pull_request: branches: [main]
Далее мы устанавливаем на
Свойство, чтобы определить, какие триггеры мы хотели бы автоматически начать рабочий процесс нашего действия. Для этого примера мы выбрали этот рабочий процесс всякий раз, когда Git push
сделано в Главная
Филиал, а также всякий раз, когда есть запрос на тягу, который желает объединить изменения в Главная
ветвь.
Если вместо этого вы хотели, что действия для запуска на каждый толчок, независимо от того, какую ветку используется, вы можете сделать что-то вроде:
on: push
Или если вы хотели, чтобы это вызвать на каждом нажатии и потянуть запрос, независимо от того, какая ветка используется, вы можете сделать:
on: [push, pull_request]
Вы также можете указать несколько ветвей, или другой ветвь для Главная
ветвь.
Наконец мы определяем основную часть нашего рабочего процесса действий GitHub, Работа
раздел:
jobs: test: runs-on: ubuntu-latest strategy: matrix: deno-version: [1.2.2, 1.3.0] // ... remainder of workflow file
Здесь мы определяем A Работа
Собственность и добавить одну работу под названием Тест
Отказ Эта работа состоит в том, что мы будем использовать, чтобы запустить нашу литу, тестирование и сборку.
В Тест
объект, который мы определяем бежит на
Свойство, которое давайте GitHub знать, какую машинную ОС мы хотим использовать, в этом случае Ubuntu-Neighle
, но есть и Windows-Neighle
, MacOS-Neighle
и другие на выбор.
Далее мы определяем Стратегия
Объект, который позволяет нам определить список версий DENO, которые мы хотим, чтобы этот рабочий процесс запущен. Каждая из последующих шагов выполняется для каждого значения в прилагаемом массиве, в этом примере мы выбрали для тестирования некоторых из версии 1.x.x релизы Deno.
steps: - name: Git Checkout Deno Module uses: actions/checkout@v2 - name: Use Deno Version ${{ matrix.deno-version }} uses: denolib/setup-deno@v2 with: deno-version: ${{ matrix.deno-version }} - name: Lint Deno Module run: deno fmt --check - name: Build Deno Module run: deno run --reload mod.ts - name: Test Deno Module run: deno test --allow-none
Наконец, мы определяем нашу работу Шаги
Отказ
Здесь мы определяем список шагов, каждый с дополнительным Имя
Чтобы понять, что делает шаг, а затем некоторые другие ключи, чтобы предоставить инструкции о том, что для запуска на этот шаг:
Сначала мы используем официальный
Действия/Оформление @ v2
Действие для выполненияGit Checkout
Из нашего хранилища GIT на сервер Build Action Github, чтобы мы могли проверить наш модуль. Это определяется с использованиемиспользует
параметр.Далее мы используем
DENOLIB/SETUP-DENO @ V2
Действие для установки и настройки DENO на сервере GitHub Action Build.Здесь мы также используем дополнительные
с
Свойство, чтобы указать переменнуюDENO-версия
, которыйSetup-deno
Действие требует, чтобы узнать, какую версию DENO установить.Уведомление здесь мы используем специальный синтаксис
$ {{matrix.deno-версия}}
Отказ Это называется выражение И он будет оценивать значение внутри двойных фигурных скобок, в данном случаеDENO-версия
который взят изМатрица
Список мы предоставили ранее.Наконец, мы определяем еще три шага: один к лицу, один, чтобы построить и один, чтобы проверить наш модуль Deno. Здесь мы используем
Беги
Свойство, которое позволяет нам запустить любую команду, нам нравится использовать оболочку сервера Build.Для льмина мы используем
DENO FMT --check
Команда и флаг, который проверит, правильно ли наш код отформатирован, и выйдите из ошибки, если нет. Если это ошибки, вы можете исправить форматирование кода Module Deno, запустивDENO FMT
командование (без каких-либо флагов).Для создания нашего модуля мы бежим
DENO RUN --reload Mod.ts
, гдеMod.ts
Является главной поворотой/отправной точкой нашего кода (измените файл в зависимости от установки вашего репозитория). Здесь мы используемнаград
Флаг, чтобы убедиться, что мы полностью восстановим модуль и все его сторонние модули. Это, чтобы убедиться, что мы случайно не полагаемся на кэшированную версию модуля или каких-либо сторонних зависимостей, поскольку это даст нам ложное впечатление о том, будет ли модуль создать правильно на компьютере нового модуля.Для тестирования мы используем
DENO TEST --ALLE-NOTE
Команда, которая запускает все тесты, доступные в вашем репозитории.- Нет - нет
Флаг означает, что команда не потерпит неудачу, если ваш репозиторий не имеет никаких тестов. Если вы хотите, чтобы проверить тест, если он не сможет найти какие-либо тесты, просто удалите флаг.
Если какой-либо из вышеупомянутых шагов отключается, рабочий процесс действий GitHub сообщит об ошибках с сообщениями журналов.
Вот и все! 🎉 🎉
Этот рабочий процесс будет работать с любым проектом Deno сразу, пока он использует Главная
ветвь как это главная ветвь. Все, что вам нужно сделать, это скопировать test.yml
Файл в правильное место в вашем хранилище и Git push.
код в Github.
Затем вы можете проверить свои действия, используя Действия
Страница на вашем репо GitHub, и каждый запрос на потяну в Главная
ветвь и каждый коммит к Главная
Получите статус проверки галочка или пересечения в зависимости от успеха или сбоя.
Если вы хотите узнать больше о действиях GitHub, проверьте их Рабочие процессы синтаксические документы Отказ
Это выглядит! Хотел бы услышать ваши мысли и как вы находитесь на Deno, и если вы сделали все крутые с Действием GitHub — бросьте свои комментарии и вопросы ниже!
Оригинал: «https://dev.to/craigmorten/github-actions-with-deno-5fnd»