Рубрики
Uncategorized

Действия GitHub с Deno

Если вы недавно написали модуль Deno, вы, скорее всего, захотите, чтобы вы могли, чтобы вы могли, тестировать … Теги с Deno, Github, учебником, Devops.

Если вы написали 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

Наконец, мы определяем нашу работу Шаги Отказ

Здесь мы определяем список шагов, каждый с дополнительным Имя Чтобы понять, что делает шаг, а затем некоторые другие ключи, чтобы предоставить инструкции о том, что для запуска на этот шаг:

  1. Сначала мы используем официальный Действия/Оформление @ v2 Действие для выполнения Git Checkout Из нашего хранилища GIT на сервер Build Action Github, чтобы мы могли проверить наш модуль. Это определяется с использованием использует параметр.

  2. Далее мы используем DENOLIB/SETUP-DENO @ V2 Действие для установки и настройки DENO на сервере GitHub Action Build.

    Здесь мы также используем дополнительные с Свойство, чтобы указать переменную DENO-версия , который Setup-deno Действие требует, чтобы узнать, какую версию DENO установить.

    Уведомление здесь мы используем специальный синтаксис $ {{matrix.deno-версия}} Отказ Это называется выражение И он будет оценивать значение внутри двойных фигурных скобок, в данном случае DENO-версия который взят из Матрица Список мы предоставили ранее.

  3. Наконец, мы определяем еще три шага: один к лицу, один, чтобы построить и один, чтобы проверить наш модуль 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»