diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..7d5045b8 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,25 @@ +The MIT License (MIT) +===================== + +Copyright © `2020` `First Bit Semenovskaya, Первый Бит Семеновская` + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the “Software”), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..74d18734 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# Jenkins shared library for 1C:Enterprise 8 + +Общие положения: + +* в активной разработке и поиске "своего пути" по разработке библиотеки; +* формат конфигурационного файла **не** стабилизирован; +* обратная совместимость **пока** не гарантируется, внимательно читайте changelog; +* количество stage будет со временем увеличиваться; +* использовать на свой страх и риск; +* любая помощь приветствуется. + +Ограничения: + +1. Для шага подготовки требуется любой агент с меткой `agent`. +1. Для запуска шага анализа SonarQube требуется агент с меткой `sonar`. +1. Для запуска шагов, работающих с 1С (подготовка, синтаксический контроль и т.д.) требуется агент с меткой, совпадающей со значением в поле `v8version` файла конфигурации. +1. В качестве ИБ используется файловая база, создаваемая в `./build/ib`, без данных авторизации. Переопределение "в следующих сериях". +1. Stage "Дымовые тесты" пока пустой. + +## Подключение + +Инструкция по подключению библиотеки: https://jenkins.io/doc/book/pipeline/shared-libraries/#using-libraries + +## Примеры Jenkinsfile + +Если в настройках подключения shared-library включен флаг "Load implicitly": + +```groovy +pipeline1C() +``` + +В обратном случае: + +```groovy +@Library('jenkins-lib') _ + +pipeline1C() +``` + +> Да, вот и весь пайплайн. Конфигурирование через json. + +## Конфигуирование + +По умолчанию применяется [файл конфигурации из ресурсов библиотеки](resources/globalConfiguration.json) + +Поверх него накладывается конфигурация из файла `jobConfiguration.json` в корне проекта, если он присутствует. + +Пример переопределения: + +* указывается точная версия платформы (и соответственно метка агента, см. ограничения) +* идентификаторы credentials для пути к хранилищу и к паре логин/пароль для авторизации в хранилище +* включаются шаги запуска статического анализа и синтаксического контроля + +```json +{ + "v8version": "8.3.14.1976", + "secrets": { + "storagePath": "f7b21c02-711a-4883-81c5-d429454e3f8b", + "storage" : "c1fc5f33-67d4-493f-a2a4-97d3040e4b8c" + }, + "stages": { + "sonarqube": true, + "syntaxCheck": true + } +} +```