Программа WeChat Mini для автоматизации строительства

Апплет WeChat
Программа WeChat Mini для автоматизации строительства

Болевые точки

  • Метод развития (метод развития филиала)
  • Процесс отправки (1, локальный тест завершен => 2, мастер слияния => 3, получить последний код мастера => 4, открыть инструменты разработчика => 5, локальная сборка => 6, загрузить код (указать номер версии и примечания) ) = > 7. Проверка вручную в общедоступном фоновом режиме WeChat => 8. Релиз)

решение

Jenkins — это программное обеспечение с открытым исходным кодом для CI&CD, используемое для автоматизации различных задач, включая создание, тестирование и развертывание программного обеспечения. Jenkins поддерживает различные методы запуска через системные пакеты, Docker или автономную программу Java.

Мы автоматизируем построение небольших программ, создавая рабочие места на jenkins. 2, 3, 4, 5 и 6 вышеупомянутого процесса обзора автоматически компилируются, развертываются и загружаются одним щелчком мыши, освобождая рабочую силу.

Дизайн

  • Создание службы Jenkins (инструменты разработчика WeChat имеют только версию для Windows и версию для Mac, поэтому вам необходимо перестроить службу jenkins на mac mini), обратитесь к официальному веб-сайту jenkins за подробностями, вам необходимо установить jdk, стандартный jdk заблокирован, вы можете использовать openjdk, и вы также можете добиться успеха в установке; самая мощная функция jenkins - это его система плагинов. Установите плагины, которые вам нужны, в соответствии с вашими потребностями. Только когда соответствующие плагины установлены, соответствующие параметры появятся, когда вы создаете задание.Подробности смотрите в разделе о системе плагинов на официальном сайте jenkins Запустите jenkins, используйте команду jenkins для запуска
  • Создать задание (автоматическое построение апплета может создать задание свободного стиля. В процессе создания задания нужно обратить внимание на «многопараметрическое построение», «конфигурацию адреса gitlab», «процесс сборки», «пост- операция сборки" и т.д.)
  • Сценарии (текущая сборка ветки, код извлечения, сборка запуска npm, запуск, вход в командную строку, загрузка из командной строки)
  • Проверка процесса

Настройка службы Дженкинс

  • Устройство Mac Mini
  • скачать Дженкинс
  • 1) Установите iterm2 (терминальная система на Mac, вы также можете использовать собственный терминал Mac)
  • 2) Установите доморощенный (доморощенный — это инструмент управления пакетами Ruby на Mac, который позволяет разработчикам легко устанавливать различное программное обеспечение для разработки без установки и настройки других зависимостей)
  • 3) Используйте homebrew для установки jenkins (удаление процесса ручной загрузки конфигурации; проблема: используйте команду brew cask install caskroom/versions/java8 для поиска различных ошибок, решение: brew cask install acceptopenjdk8, успешно установите java8 (разница между openjdk и oracle jdk) не большие)
  • 4) Чтобы установить jenkins, вы должны сначала установить java8, то есть jdk1.0.8, потому что jenkins работает в среде java8;
  • 5) npm install jenkins успешно установил jenkins
  • 6) После успешной установки используйте команду jenkins для запуска службы jenkins.После успешного запуска службы введите в браузере http://localhost:8080.Поскольку для первого запуска jenkins требуется пароль, выполнить команду:

cat ~/.jenkins/secrets/initialAdminPassword (скопируйте указанный на странице путь, выполните команду cat, отобразится пароль)

  • 7) После ввода пароля открывается интерфейс jenkins и установка проходит успешно.

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

создать работу

В jenkins можно создавать различные типы заданий, как показано ниже:


Мы можем создать проект FreeStyle. Информацию о процессе создания вакансий см. на официальном сайте Jenkins.

Пакет

Для платформы упаковки с непрерывным наследованием каждая упаковка требует четырех шагов: запуск сборки, извлечение кода, выполнение сборки и обработка после сборки.

Идеи построения автоматизации небольших программ

Обычный процесс выпуска мини-программы

Готовый код-"Локальная сборка-"Войти в инструменты разработчика WeChat (вход по QR-коду)-"Загрузить-"Обзор фона WeChat-"Опубликовать

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

Воплощение шагов упаковки Jenkins

1. Конфигурация информации о работе


Напишите здесь четко, какова основная цель созданного в настоящее время задания.

2. Параметризированный процесс построения

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


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

Примечание. Если вам нужно управлять кодом с помощью git, вам необходимо установить подключаемый модуль git и настроить путь к git, иначе не будет возможности git для управления исходным кодом.

Сценарий сборки Следующим шагом является написание сценария сборки. Обычный процесс должен быть таким: Определить, является ли текущий параметр пустым — «вернуть —», если он пуст, в противном случае определить текущую ветку сборки — «вытащить код удаленного хранилища — «выполнить установку npm —» выполнить команду npm run build — " вызов линии для открытия инструментов разработчика WeChat — «Загрузка из командной строки» — «Фоновая отправка WeChat».

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

Инструмент разработчика апплета имеет только метод входа в систему для сканирования QR-кода, поэтому проблема входа может быть решена только путем интеграции QR-кода входа в Jenkins.

Авторизоваться

Командная строка предоставляет два метода входа в систему, один из которых заключается в преобразовании QR-кода для входа в base64 для пользователя, а другой — в печати QR-кода в командной строке. Выполните команду /Applications/wechatwebdevtools.app/Contents/Resources/app.nw/bin/cli -l в терминале iterm, и QR-код для входа будет напечатан на терминале, при условии, что вам нужно открыть настройки порта инструменты разработчика. 

Настройки -> Настройки безопасности — «Сервисный порт —» открыть

Однако выполнение этой команды непосредственно в скрипте не выведет QR-код в консольный вывод jenkins, а выведет кучу символов юникода, что невыполнимо.

Таким образом, вы можете получить QR-код base64 через http, а затем преобразовать его в файл изображения с помощью скрипта Python. Ниже приведен сценарий оболочки этого раздела.

echo '生成微信开发者工具登录二维码'
WX_CLI=/Applications/wechatwebdevtools.app/Contents/Resources/app.nw/bin/cli
$WX_CLI -o
PORT=$(cat ~/Library/Application\ Support/微信web开发者工具/Default/.ide)
curl http://127.0.0.1:$PORT/login?format=base64 > ~/qrcode.txt
$(python ~/tools/base64tojpeg.py ~/qrcode.txt ~/.jenkins/workspace/项目名称/qrcode.jpg)
echo [QRCode generated succeed]$BUILD_NUMBER

Скрипт для base64tojepg.py

#!/usr/bin/python
import os,base64,sys 
if len(sys.argv) == 3:
    inputFileName=sys.argv[1]
    outputFileName=sys.argv[2]
    allstr=open(inputFileName).read()
    idx=allstr.find(',')
    bstr=allstr[idx+1:]
    imgdata=base64.b64decode(bstr)
    file=open(outputFileName,'wb')
    file.write(imgdata)
    file.close()
else:
    print('Useage: python base64tojpeg.py inputFileName outputFileName')

Установить отображение QR-кода для входа

Добавьте описание сборки после этапа сборки и установите только что сгенерированное изображение QR-кода в интерфейсе сборки.


Размазанные части — это ip-адрес и название проекта соответственно.


Примечание. Здесь необходимо установить плагин установки описания.


загрузить

Загрузка должна вызываться после входа в систему, поэтому добавьте шаг сборки после приведенного выше описания сборки в качестве оболочки части загрузки.

#sh ~/wechat_cli.sh
WX_CLI=/Applications/wechatwebdevtools.app/Contents/Resources/app.nw/bin/cli
echo "版本号是${UPLOAD_VERSION}"
echo "描述是${UPLOAD_DESC}"

PRO_ROOT=$(pwd)/build/ZZWAMain
echo "PRO_ROOT是${PRO_ROOT}"
PORT=$(cat ~/Library/Application\ Support/微信web开发者工具/Default/.ide)

$WX_CLI -l --login-qr-output base64@qrcode.txt
echo '上传到微信后台'

$WX_CLI -u ${UPLOAD_VERSION}@/Users/用户名/.jenkins/workspace/项目名/项目名 --upload-desc ${UPLOAD_DESC}


#clean up
rm /Users/用户名/.jenkins/workspace/项目名/qrcode.jpg
rm /Users/用户名/qrcode.txt
cp /Users/用户名/expired.png /Users/用户名/.jenkins/workspace/项目名/qrcode.jpg

Настройки разрешений

Дженкинсу нужен только один администратор.Администратор имеет супер-разрешения.Как администратор службы jenkins, он может просматривать сценарии, изменять сценарии, изменять разрешения и ряд операций. Как пользователь jenkins, обычным разработчикам нужно только иметь разрешение на создание проекта.

QR-код, необходимый для входа

Установите обычный текст QR-кода

тест после загрузки

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