В этой статье мы хотим использовать несколько инструментов из Universe Github, чтобы запустить веб -сайт с Angular. Мы создадим профессиональный конвейер, включая управление версиями, непрерывное развертывание и веб -хостинг. Лучше всего, для общественных хранилищ, это не будет стоить вам ни одного цента!
Оглавление:
- 1. Все части объяснены
- 2. Простое угловое приложение
- 3. Хостинг исходного кода на GitHub
- 4. Первое развертывание на страницах GitHub
- 5. Автоматизация развертывания с помощью действий GitHub
- 6. Дополнительный: Пользовательские домены
- Резюме
Вступление
Все старты сложны, поэтому мы постараемся объяснить все шаги в подробности, чтобы вы в конечном итоге могли придумать полностью развернутое угловое приложение. Во время нашего путешествия мы будем чувствовать себя комфортно с Angular-Cli-GHPages
и GitHub действий и посмотрите, как они работают вместе. Мы создадим и настроем токены и github Action Yaml файлы, чтобы развернуть наше угловое приложение непосредственно на страницы GitHub, бесплатную службу веб -хостинга от GitHub.
1. Все части объяснены
1.1. Управление версией GIT и GitHub
Управление версиями позволяет отслеживать вашу работу и поможет вам легко распознать внесенные вами изменения, будь то программный код, текст, изображения или другие данные. Это также абсолютно необходимо, если вы хотите эффективно работать вместе в команде. Git является бесплатным программным обеспечением для управления распределенной версией и в настоящее время является самым популярным решением. Ведущей платформой вокруг GIT является GitHub, которая принадлежит Microsoft с конца 2018 года.
1.2. Действия GitHub
Действия GitHub является решением для трубопроводов CI/CD (непрерывная интеграция и непрерывная доставка). С действиями мы можем проверить, создавать и выпускать наш код, оставаясь в экосистеме Github. Github недавно выпустил этот продукт на рынок и теперь напрямую конкурирует с Travis CI, Circleci или Appveyor. Подобно другим современным инструментам CI/CD, отдельные шаги сохраняются в файле в формате YAML.
1.3. GitHub Pages
Вы можете использовать GitHub Pages Чтобы размещать веб -сайт непосредственно из репозитория GitHub. Этот веб -сайт может либо содержать полностью статический контент (то есть чистые HTML -файлы и активы, но без сценариев, работающих на сервере), или вы можете использовать Jekyll для преобразования файлов разметки в статический контент. Поскольку мы работаем с Angular, нам не нужна Jekyll в качестве статического генератора сайтов. Хорошим компаньоном для углового является генератор статического сайта Скалли , что мы обязательно рассмотрим в предстоящей статье.
1.4. Агулярные клинисты
Angular-Cli-GHPages это проект, созданный Йоханнесом Хоппе, одним из двух авторов этой статьи. Его угловая книга использует новый репозиторий GitHub в каждой главе (так что есть довольно много репо 😅). Таким образом, он разработал решение, которое делает как можно проще, чтобы принести угловое приложение на страницы GitHub. Проект существует с 2016 года, и если бы он был начат сегодня, у него, безусловно, было бы лучшее имя. По словам GitHub, 7100 проектов уже развертывают свои приложения с помощью Angular-Cl-GHPages.
1.5. GitHub планы
Следующая информация основана на деталях из Страница ценообразования Анкет
бесплатный план дает тебе:
- Неограниченные общественные репозитории
- Неограниченные частные репозитории
- Только 3 сотрудника для частных репозитории
- 2000 Total Github Action Minites/Month
Pro Plan дает тебе:
- Все, что включено в бесплатный план
- Неограниченные сотрудники
- 3000 Всего действия действия в месяц
Еще в 2016 году Github мигрировал с цены на основе количества репозиториев в новую схему, которая рассматривает количество пользователей. Наследие планы Не иметь доступа к действиям GitHub.
Эта статья будет различать несколько раз между частными и общественными репо. Причина этого связана с следующим пунктом, который мы должны учитывать:
GitHub Pages доступен…
- В общественных репозиториях с GitHub Free.
- на публике и Частный Репозитории с GitHub Pro и всеми другими платными планами.
Бесплатно | ✅ ️ | ✅ ️ | ✅ ️ | ❌ |
Pro и выше | ✅ ️ | ✅ ️ | ✅ ️ | ✅ ️ |
Наследие оплачиваемые планы | ❌ | ✅ ️ | ✅ ️ | ? |
Пожалуйста, зарегистрируйте учетную запись на github.com, если вы еще этого не сделали. Для этой статьи достаточно использовать бесплатный план!
Кстати, это звучит немного похоже на рекламу. Но мы никоим образом не связаны с GitHub. Мы просто страстные пользователи GitHub и рекомендуем их сервис на основе нашего опыта.
2. Простое угловое приложение
Мы предполагаем, что большинство наших читателей уже работали с Angular. Однако для того, чтобы эта статья была максимально полной полной, мы очень скоро настроим простой веб -сайт на основе Angular.
Если вы еще этого не сделали, установите Node.js , Google Chrome и необязательно Visual Studio Code Анкет Позже нам также нужно Git для развертывания.
Установите последнюю версию Angular CLI во всем мире и создайте новый угловой проект.
Теперь мы хотим внести небольшие изменения в исходный код. С командой
код
Мы открываем текущий каталог в Visual Studio Code редактор. Конечно, вы также можете открыть папку через меню VS -кода.Мы меняем содержание
AppModule
иAppComponent
Немного и позвоните HTTP API. При этом мы хотим доказать, что поисковая система Google может правильно ползать наш веб -сайт — даже с данными, загруженными с удаленного управления.Например, мы могли бы загрузить книгу из нашего бэкэнда по адресу https://api.angular.schule Анкет
Это соответствующий шаблон:
Этот пример загружает данные из удаленного API. Мы надеемся, что позже мы сможем найти как обычный текст, так и загруженную книгу в индексе нашей предпочтительной поисковой системы. Мы также добавили Bootstrap CSS Чтобы результат выглядел так:
3. Хостинг исходного кода на GitHub
Теперь мы заботимся об управлении версиями. Это очень просто, потому что Angular CLI уже создал для нас местный репозиторий GIT.
Перво -наперво: давайте сохраним последние изменения.
Давайте Критом репозиторий GitHub. В верхнем правом углу любой страницы GitHub используйте раскрывающееся меню ➕ и выберите Новый репозиторий Анкет
Выберите короткое, запоминающееся имя для вашего репозитория. В нашем примере мы будем называть это
все-github-demo
.На данный момент выберите репозиторий public Анкет Обратите внимание, что исходный код общественных репозиториев виден общественности. Поскольку мы хотим использовать бесплатный план GitHub, мы должны держать его на публике, иначе мы потеряем доступ к бесплатному хостингу страниц GitHub.
Поскольку у нас уже есть исходный код, вы должны не Инициализируйте репозиторий с помощью ReadMe.
После того, как вы нажали «Создать репозиторий», появится страница подтверждения. Теперь вы можете подключиться к GitHub, используя SSH или HTTPS. Оба пути будут работать, но GitHub рекомендует https Анкет Если вы полностью потерялись в аутентификации против GitHub, попробуйте клонировать другой репозиторий с GitHub Desktop первый. Для оставшейся статьи мы предполагаем, что общение было успешно установлено.
Чтобы добавить GitHub в качестве нового пульта для нашего местного репозитория, используйте
git удаленное добавление
Команда:Заменить
(или название организации) и
с вашим именем пользователя от GitHub и названием вашего нового репозитория. (В нашем примере этоНаконец, мы можем перенести весь репозиторий на GitHub:
-
4. Первое развертывание на страницах GitHub
Теперь мы готовы разместить наше первое приложение на страницах GitHub. Для этого проект должен быть скомпилирован сначала, а скомпилированные активы должны быть направлены в новую ветку. Эта функциональность предоставляется Агулярные клинисты
. GitHub автоматически активирует хостинг, если в этом филиале есть имя GH-Pages
— Что является настройкой по умолчанию для Angular-Cli-GHPages
Анкет
Следующая команда добавляет
Angular-Cli-GHPages
к вашему проекту.Теперь мы можем развернуть наш проект на страницы GitHub со всеми настройками по умолчанию. Проект будет автоматически встроен в производственный режим:
Развертывание создаст временный репозиторий GIT и будет совершать/выдвигать все файлы из
Dist/все-github-demo
в филиал с именемGH-Pages
АнкетОднако в этом примере мы не предоставили целевой репозиторий. В этом случае развертывание предполагает, что текущий рабочий каталог уже является хранилищем GIT, и что мы хотим перенести изменения в тот же репозиторий с именем
источник
. Мы подготовили это раньше с командойgit удаленное добавление
, так что здесь нечего делать для нас.Приложение должно быть доступно в
https://
скоро. Если это не сразу доступно, вы должны сначала подождать мгновение..github.io/ / Если мы теперь проверим результаты (в нашем случае по адресу https://angular-schule.github.io/everything-github-demo/ ), мы увидим пустую страницу! 😲 Но нет проблем, мы открываем консольную панель Chrome Devtools, нажимая
Контроль+shift+i
(Windows, Linux) илиКоманда+опция+i
(Mac). Мы сразу же видим некоторые красные ошибки 404 для всех файлов:Не удалось загрузить ресурс: сервер ответил статусом 404 ()
Причина этого: приложение настроено так, как если бы оно работает в корневом пути домена. Однако это не так! Наше приложение находится в
/
Путь, поэтому все ссылки сломаны. Конечно, это регулируется — давайте попробуем развертывание во второй раз с/ -База-Хреф
вариант:Подсказка: Пожалуйста, не забудьте действительно добавить зацепленную черту. Это не сработает без!
Теперь вы должны увидеть наше приложение, которое работает на страницах GitHub! Вы можете убедиться, что все прошло хорошо, зайдя в Настройки репо. Прокрутите там вниз к GitHub Pages раздел. Следующее должно появиться здесь:
Подсказка: Вы также можете увидеть настройку для пользовательского домена здесь. Пожалуйста, не пытайтесь установить значение. Сначала это будет работать, но настройка не является постоянной, потому что
Angular-Cli-GHPages
будет перезаписать это снова.Теперь добавьте, совершайте и протолкните изменения:
5. Автоматизация развертывания с помощью действий GitHub
Мы не хотим останавливаться здесь и все время запускать развертывание вручную. В идеале рабочего процесса будет внесение изменений в приложение, и тогда развертывание будет обрабатываться для нас автоматически. Для этого мы хотим использовать действия GitHub, которые теперь доступны для всех репозиториев. Так что больше не нужно регистрироваться, мы можем начать прямо сейчас! 🚀
Как и во всех системах CI/CD, мы должны подумать о том, как предоставить необходимые разрешения на запись нашему репо.
5.1 обо всех токенах
Самый простой способ предоставить доступ к репозиторию — это реализовать это с помощью токенов. Токены могут использоваться вместо пароля для git over https ( Это то, что мы хотим сделать ), или можно использовать для аутентификации в API GitHub ( angular-cli-ghpages прямо сейчас не использует GitHub API вообще ).
⚠ Предупреждение: Относитесь к токенам, как пароля, и держите их в секрете. Всегда используйте токены в качестве переменных среды вместо жесткой кодировки в свой код!
В GitHub есть несколько типов жетонов, которые мы должны тщательно различать. Следующие два актуальны для нас:
Gh_token
/Личный токен доступа: Как следует из названия, личные токены предоставляют права, которые есть у конкретного пользователя. Чтобы предотвратить выпуск слишком большого количества прав, диапазон функций может быть ограничен так называемыми «областями». Кроме того, области не могут предоставить никакого дополнительного разрешения, кроме тех, которые пользователь уже имеет. Узнайте больше о Доступные прицелы здесь Анкет Нам понадобитсяРепо
Access Scope, который предоставляет доступ ко всем Частные и общественные хранилища. Использование такого токена опасно, потому что всегда возможно, что потенциально кто -то с плохими намерениями может получить доступ к токену. В этом случае злой человек получит больше прав, чем мы должны выпустить — потому что для развертывания нам нужен только доступ на запись Во многих проектах этот токен хранится в переменной среды под названиемGh_token
или когда -тоPersonal_token
.Github_token
/Установка Токена доступа: GitHub предоставляет этот вид токена для аутентификации от имени действий GitHub. Когда вы включаете действия GitHub, GitHub автоматически устанавливает приложение GitHub в вашем репозитории и делает этот «токен доступа к установке» доступным в секрете. Это здорово, потому что нет необходимости настраивать что -либо дополнительное. Кроме того, разрешения токена являются ограничен репозиторием это содержит рабочий процесс. Токен доступа к установке истекает через 60 минут. GitHub приносит токен для каждой работы, прежде чем начала работа. Это довольно удивительно, потому что есть очень ограниченные возможности того, что может воспользоваться злым человеком. Для получения дополнительной информации см. « Аутентификация с GitHub_Token «.Git через ssh: Как уже упоминалось, GitHub рекомендует Https Анкет Конечно, мы могли бы игнорировать этот совет и сохранить закрытый ключ в качестве секрета и использовать его для аутентификации через SSH. Тем не менее, этот ключ по -прежнему будет связан с одним пользователем и предоставит доступ к записи ко всем репозиториям пользователя. Мы вообще не рекомендуем этот вариант, потому что на самом деле это не очень часто поддерживать общественные ключи на GitHub, как это делает это с токенами, которые были, по крайней мере, разработаны для целей управления правами …
В идеальном мире Github_token
сделал бы всю работу за нас. Однако для public Репозитории У него нет разрешения на создание каких -либо последовательных событий, таких как сборки GitHub. Это означает, что мы можем на самом деле подтолкнуть к нашему GH-Pages
ветвь с использованием Github_token
и все изменения будут видны в контроле версий. Но это не запустило бы сборку страниц GitHub, чтобы веб -сайт вообще не изменился ( См. Выпуск № 73 и Этот комментарий ) Однако еще больше путать ситуацию для частные репозитории Токен работает по желанию …
TL; DR Эта таблица дает вам обзор:
Ненужный | Github_token | Https | 🤩 | ❌ | ✅ ️ |
Нужно | Gh_token | Https | 😐 | ✅ ️ | ✅ ️ |
Нужно | (Частный SSH -ключ) | SSH | 😓 | ✅ ️ | ✅ ️ |
Если вы используете частный репозиторий, решение должно быть ясным. Для бесплатных/публичных репозиториев вы можете использовать токен для личного доступа и в идеале рассмотреть следующий совет.
Дополнительный совет: Если вы хотите использовать Общественные репо и поэтому используйте токены личного доступа (известный как gh_token
или Personal_token
), мы рекомендуем создать дополнительную учетную запись пользователя, которая предназначена только для использования для развертывания.
Затем эта учетная запись должна получить доступ только к репозиториям, где есть что развернуть. Это снова повышает безопасность, и у нас есть достаточно хорошее решение для общественных репозиториев.
5.2 Автоматизируйте публичное репо (через gh_token)
5.2.1 Настройка личного доступа Токен
Если мы используем общественный репозиторий (как описано в предыдущих инструкциях), мы хотим использовать токен личного доступа. Процедура следующая:
Создать Личный доступ Токен с доступом к репо И обязательно скопируйте свой новый токен в буфер обмена. Вы не сможете увидеть это снова позже! Если вы хотите запомнить токен позже, сохраните его только в безопасном месте (например, менеджер паролей). Пожалуйста, убедитесь, что в токене есть следующие разрешения:
Откройте Repo вашего Angular App Github.
Перейти к Настройки > Секреты и нажмите на Добавить новый секрет Анкет
Секреты являются зашифрованными переменными среды и подвергаются воздействию выбранных действий GitHub. GitHub автоматически отредактирует секреты, напечатанные в журнале, но вы должны избегать печати секретов в журнал намеренно.
Создать секрет с именем
Gh_token
и вставьте свой токен (который вы скопировали на шаге 1) в значение поле. Если вы предпочитаете, вы также можете выбрать имяPersonal_token
Для всех дальнейших шагов. Завершите эту главу, нажав зеленый Добавить секрет кнопка.Совершенно хорошо не хранить токен где -либо еще. Вы всегда можете создать новые токены и просто выбрасывать старые.
5.2.2 Установите рабочий процесс действия GitHub
Теперь у нас есть все, чтобы создать автоматический рабочий процесс, который сделает для нас работу в будущем. Использование действий GitHub бесплатно для общественных хранилищ, как упоминалось ранее.
Снова в нашем репо, мы идем в Действия и нажмите на Установите рабочий процесс самостоятельно .
Откроется редактор. Сохранить имя файла (например,
main.yml
) как оно есть, и просто замените весь содержимое на следующий пример:К счастью, шаг
Действия/проверка@v2
Проверка хорошего репозитория GIT, где удаленноеПроисхождение
уже скорректируется. Тем не менее, имя пользователя и электронная почта не установлены. Поэтому мы должны включить эти два значения через параметры. Обязательно замените «Отображается имя пользователя» (например, «Я бот») и your.mail@example.org с значимыми значениями в приведенном выше примере. В этом месте вам не нужно указывать какое -либо настоящее имя и почту. Тем не менее, вы не хотите переусердствовать, потому что предоставленные значения будут показаны в истории GIT позже.Если вы хотите, чтобы действия GitHub выполняли модульные тесты и сквозные тесты, вам нужно будет сделать несколько небольших дополнительных конфигураций в вашем угловом приложении. Необходимые изменения описаны в Угловая документация CLI Анкет Точнее:
- Тебе нужно Обновите тестовые конфигурации для кармы и транспорта
- Вы должны настроить конкретный Версия драйвера Chrome Анкет В противном случае тесты E2E не будут сбои с сообщением об ошибке, подобно следующим:
... E/Launcher - Session Не создана: эта версия Chromedriver только поддерживает Chrome версию 79
После того, как эти изменения были внесены, вы можете разделать разделам для испытаний в приведенном выше примере.
Мы также можем контролировать, когда наши рабочие процессы запускаются: может быть полезно не иметь нашего рабочего процесса на каждом толчке к каждой ветви в репо. Например, этот рабочий процесс работает только на Push Events to
Мастер
иВыпуск
ветви. Здесь мы видим очень распространенное соглашение о группировке ветвей с помощью чернила (например, выпуск/42). Многие клиенты GIT будут отображать эти группы, такие как папки.
В качестве другого примера мы можем настроить Cronjob для запуска сценария каждый день недели с понедельника по пятницу в 02:00:
Для получения дополнительной информации см.
События, которые запускают рабочие процессы и Синтаксис рабочего процесса для действий GitHub Анкет Нажмите на
Начать коммит , добавьте сообщение и описание, если хотите, и нажмите на Совершить новый файл Анкет Это добавит файл конфигурации в репо. Готово!
🚀.
Это действие будет работать само по себе в первый раз, и каждый раз, когда вы перемещаете свои изменения в GitHub.
5.3 Автоматизируйте частное репо (через github_token)
Следующий пример является дополнительным, потому что мы обещали для этой статьи, что вам не нужно платить цент. Как уже говорилось, использование частных репо с действиями GitHub и страницами GitHub возможно только из Pro Plan и выше. Тем не менее, большое преимущество заключается в том, что нам не нужно тратить какое -либо время и усилия, чтобы настроить токен. Github_token
уже есть, и нам вообще не нужно беспокоиться об этом.
За кулисами GitHub повторно использует существующую функцию, известную как приложения GitHub. В отличие от программ, которые аутентифицируются с «токеном личного доступа», приложения не работают от имени конкретного пользователя, что здорово. Чтобы это произошло, GitHub автоматически устанавливает приложение GitHub на репозиторий и создает соответствующий «токен доступа к установке» с именем Github_token
Доступно в секрете. GitHub приносит новый токен для каждой работы до начала работы. Потрясающий!
ℹ Примечание
Как уже упоминалось выше, Github_token
(Инсталляционный токен доступа) запустит выпуск нового веб -сайта, только если действие работает в Частный репозиторий Анкет В общественном репо создается коммит, но сайт не меняется. Смотрите это Сообщество Github Post для получения дополнительной информации. Если ваш репо является общедоступным, вы все равно должны использовать Gh_token
(Токен личного доступа).
Если вы еще этого не сделали, прочитайте текст об общем использовании рабочего процесса. Рабочий процесс выглядит очень похожим, но теперь мы должны использовать другой токен. Вот более короткий пример, без тестов:
name: Deploy to GitHub Pages via angular-cli-ghpages on: [push] jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Use Node.js 10.x uses: actions/setup-node@v1 with: node-version: 10.x - name: Prepare and deploy env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | npm install npm run ng -- deploy --base-href=/everything-github-demo/ --name="" --email=your.mail@example.org
И вуаля! 🚀
Это все, что нужно, чтобы развернуть последнюю версию Angular App для GitHub Pages с каждым толчком.
6. Дополнительный: Пользовательские домены
Наконец, мы хотели бы вскоре описать, как вы можете использовать свой собственный домен. Github Pages поддерживает пользовательские домены, размещая конкретные Cname
Файл в корневом каталоге GH-Pages
ветвь — и Angular-Cli-GHPages
Создаст этот файл для вас автоматически. GitHub также предоставляет Подробные инструкции для этого Анкет
6.1 Настройка субдомена
Настройка субдомена не очень сложно. И если у вас уже есть домен, вам не нужно делать какие -либо новые инвестиции. В нашем примере приложение должно быть доступно через домен все-github-demo.angular.schule
Анкет
Сначала мы должны изменить DNS для домена, настроив так называемый
Cname
записывать. ЭтоCname
Запись должна указывать на домен, который выглядит так:.github.io
(или название организации) в нашем случаеУгловой Шекуле
Анкет В качестве примера, на следующем скриншоте показана необходимая настройка для поставщика DNS Cloudflare.com :Теперь мы должны настроить
Нг развернут
Команда немного! Используя наш собственный домен, нам больше не нужно использовать подкаталог. Вместо этого мы указываем параметр-cname
и поместите приложение в корневой каталог!При следующем развертывании веб -сайт будет известен по новому адресу.
Важно, чтобы у вас был сертификат SSL, потому что в противном случае Chrome сообщит вашим посетителям, что ваш сайт не защищен:
Довольно уродливо, не так ли? Хорошая новость: в настоящее время вам больше не нужно тратить деньги на сертификат SSL! GitHub предоставляет вам бесплатный сертификат SSL. Чтобы сделать это возможным, они сотрудничают с letsencrypt.org. Вы можете внести необходимые изменения в настройках репозитория. Перейти к Настройки > Страницы GitHub и выберите Применение https , чтобы включить шифрование HTTPS для вашего сайта:
Это может занять до 24 часов, прежде чем эта опция будет доступна. Как только изменение применяется, теперь вы можете просматривать веб -сайт через https: https ://everything-github-demo.angular.schule — Пожалуйста, не стесняйтесь попробовать!
Подсказка: Вы не должны менять пользовательский домен через веб -интерфейс GitHub. В следующий раз, когда вы развернете приложение, эта настройка будет перезаписана. Всегда используйте
-cname
параметр для этого.
6.2 Настройка домена Apex
Настройка домена вершины, например Все github-demo.com
(этого домена не существует, не стесняйтесь быть первым 😉) , очень похож на процедуру для поддомена. Нам нужно использовать то же самое -cname
Параметр, как описано ранее, но мы должны сделать несколько различных настройки в DNS.
Во -первых, перейдите к своему поставщику DNS и создайте либо Псевдоним
а A
записывать.
Если ваш провайдер уже использует новый стандарт, вам следует рассмотреть возможность использования Псевдоним
записывать. Псевдоним
Тип записи (также известный как или
Сплюснутый Cname
) предоставляет способ указать имя хоста в записях DNS, которое
Чтобы создать Псевдоним
Запись, укажите свой домен Apex на
(или название организации) в нашем случае Угловой Шекуле
Анкет В качестве примера, на следующем скриншоте показана необходимая настройка для поставщика DNS Cloudflare.com :
Мы также должны установить Cname
запись для www
, как многие люди всегда вводят в этот субдомен. Окончательные настройки должны выглядеть так:
Чтобы создать A
Запись , укажите свой домен Apex на следующие IP -адреса от GitHub:
185.199.108.153 185.199.109.153 185.199.110.153 185.199.111.153
Эти IP -адреса были одинаковыми в течение многих лет, но вы все равно должны сравнивать их с Список в документации GitHub Анкет
Резюме
Мы надеемся, что вы повеселились с этим учебником и что ваш Угловое приложение Теперь строится автоматически через Действия GitHub — и успешно работает по GitHub Pages Анкет Если у вас есть какие -либо вопросы, пожалуйста, свяжитесь с нами через Twitter. Мы также очень рады получить ваше предложение о улучшении в качестве пиара.
Вы можете проверить полный демонстрационный код здесь: ☞ https://github.com/angular-schule/everything-github-demo/
Спасибо Дхармену Шах
Особая спасибо, перейти к Йоханнес Хоппе за то, чтобы дать мне возможность написать эту статью.
Спасибо Йоханнесу Хоппе
Спасибо Дхармен Шах за участие в Angular-Cli-GHPages
и для начала этой статьи. Я также хотел бы поблагодарить Эдрик Чан , который был очень вовлечен в обоих Angular-Cli-GHPages
и при оказании помощи в этой статье. 👍
Только с помощью Дхармена и Эдрика мне удалось наконец добиться полной поддержки действий GitHub в v0.6.2 Ангел-Кли-Глаж .
Спасибо обоим
Мы хотели бы поблагодарить Фердинанд Малчер Для просмотра статьи и предоставления критических отзывов и Дэнни Коппенгаген Для любезного вычислить эту статью.
Эта статья была написана двумя людьми.
О Йоханнеса Хоппе
Йоханнес является одним из двух основателей Angular. Schule и основной разработчик Angular-Cli-GHPages. Недавно он был признан экспертом по разработчику Google (GDE).
О Дхармене Шах
Дхармен является разработчиком JavaScript с полным стеком из Ахмедабада, Индия, с основными навыками в JavaScript и CSS. Он любит работать с обоими угловыми и реагирующими. Dharmen вносит свой вклад в некоторые проекты с открытым исходным кодом, а также внес свой вклад в документацию «Англо-клик-гмаж». Кстати, он гурман и любит слушать музыку, особенно поп -музыку на хинди.
Оригинал: «https://dev.to/angular/everything-github-continuous-integration-deployment-and-hosting-for-your-angular-app-25j3»