Как Gitlab-CI и OneScript могут отсортировать массив (Часть 1)

Публикация № 1552117 18.11.21

Разработка - DevOps и автоматизация разработки

Gitlab Gitlab-CI devops CI/CD

С приходом в 1С EDT мы получили git. С git-ом пришел и gitlab, а он уже дает инструменты по CI. Что такое CI? Ну все же знают, как обычно просят обновить прод? Желательно ночью? Желательно проверив на копии, что ничего не сломаем? Ну так вот: CI – это личный помощник, который все сделает сам. Надо только правильно его попросить...

Часть 1 (вы здесь)

Часть 2

В этом году я первый раз был на Infostart Event 2021 и сразу докладчиком. Презентация у меня была про Gitlab-CI, но больше обзорная про то, что "в Gitlab можно сделать вот это вот все, а как это сделать можно узнать в документации". Чтобы рассказать про все настройки, 30 минут было бы мало. К счастью, в формате статьи время у меня не ограничено. Сразу скажу: это учебный (и в некотором смысле даже шуточный) пример, он сделан не для того, чтобы дать готовые скрипты, а чтобы, повторив эти шаги, вы поняли, какие инструменты нам дает Gitlab-CI. И это на примере, для которого даже не нужно будет ставить платформу.

И должен сказать пару слов на тему "зачем нам CI": сейчас, с приходом в 1С EDT, мы получили git. Использовать его удобно, намного лучше, чем хранилище. С git-ом пришел и gitlab, а он уже дает инструменты по CI. Что такое CI? Ну все же знают, как обычно просят обновить прод? Желательно ночью? Желательно проверив на копии, что ничего не сломаем? Ну так вот: CI – это личный помощник, который возьмет ваш проект EDT из gitlab и сам протестирует и зальет его на прод. Надо только правильно его попросить...

 

Часть 1: Наш первый проект

Предварительно нам надо будет установить то, с чем мы будем работать:

Git (для версионирования) – https://git-scm.com/

Тут стоит после установки указать некоторые настройки. Для этого откроем Git Bash (или CMD) и выполним три команды:

 

 

Первыми двумя мы устанавливаем имя и почту, которые отображаются в коммитах, третий — снимает ограничение на длину путей для git в windows (по умолчанию 260 символов, но git поддерживает до 4096).

OneScript (для выполнения скриптов) – https://oscript.io/

После установки надо в консоли выполнить "opm install --all" - данная команда установит все пакеты (ну или можете по потребности устанавливать что вам нужно).

VSCode (для написания скриптов) - https://code.visualstudio.com/

После установки необходимо перейти в плагины и скачать Language 1C (BSL)

 

 

Теперь перейдем на https://gitlab.com/ , далее нажимаем Login в верхнем правом углу и, если аккаунта еще нет, то нажимаем "Register now"

 

 

После входа под своим пользователем мы переходим на https://gitlab.com/dashboard/projects и нажимаем "New project" → "Create blank project". Заполняем все поля по образцу. Здесь я указал Visibility level как "Public" чтобы при чтении статьи можно было сверяться с моим репозиторием, но для себя можете указать "Private"

 

 

И нажимаем "Create project". После этого Gitlab нам дает шаблоны того, что нам стоит сделать, открыв консоль:

 

 

"Git global setup" мы выполнили еще при установке Git, а вот "Create a new repository" нам как раз и нужен, ведь у нас еще нет какого-то кода. В папке, где будет лежать наш проект, через контекстное меню в проводнике выбираем "Git Bash Here" и пока вводим только первую строку, в моем случае это "git clone https://gitlab.com/ffSaschaGff/possum_app.git", после этого у нас появится папка, в которой, если у вас отображаются скрытые папки, вы увидите подпапку .git

Давайте теперь откроем наш проект в VS Code – в папке с ".git" в контекстном меню выбрать "Открыть с помощью Code" и создадим файл .gitlab-ci.yml

 

 

Именно в этом файле мы будем указывать, что, когда и где должен делать наш CI. Описание структуры файла можно найти https://docs.gitlab.com/ee/ci/yaml/ , но мы пока не будем спешить. Итак, какие stages (этапы сборки) будут у нашего проекта? Ну давайте начнем с тестирования и сборки:

stages:

  - test

  - build

И определим для каждого Stage свою работу (Job), в каждой из которых будет вызываться свой скрипт:

test:

  stage: test

  script: oscript ./ci/scripts/test.os

build:

  stage: build

  script: oscript ./ci/scripts/build.os

В итоге получим такой файл (отступы важны - они определяют структуру):

 

 

Осталось создать файлы ci/scripts/test.os и ci/scripts/build.os, пока что пусть они просто выводят сообщения о том, что было бы сделано:

 

 

Что же, давайте отправим наши изменения в удаленный репозиторий! Переходим на "Source control" → нажимаем "Stage All Changes" → вводим сообщение первого коммита → жмем на галку, чтобы создать коммит:

 

 

Теперь осталось отправить коммит в удаленный репозиторий: нажимаем на меню (…) и выбираем Push

 

 

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

 

 

И мы видим, что он завершился с ошибкой:

 

 

Давайте нажмем на первый красный круг в столбце Stages и откроем Job "test". Мы увидим, что ошибка в том, что не была найдена команда oscript, а сама работа была исполнена на каком-то Runner: #44028 (fa6cab46) shared-runners-manager-3.gitlab.com.

 

 

Скрипты, которые мы пишем для CI, выполняются не где-то там на сервере Gitlab, а на раннерах — удаленных компьютерах, где запущен gitlab-runner. Давайте перейдем в настройки → CI/CD

 

 

Здесь нам надо дойти до раздела "Runners" и нажать "Expand", после чего отключить "Shared runner", которые нам дает gitlab, а дальше развернем и зарегистрируем свой:

 

 

В папке рядом с проектом создадим еще одну и назовем "runner", дальше с https://docs.gitlab.com/runner/install/windows.html качаем из п.2 файл нужной разрядности и сохраняем в папку назвав "gitlab-runner.exe". Далее открываем консоль как администратор и переходим в папку c раннером "cd ваш_путь_к_папке", и выполняем команду "gitlab-runner.exe register". После этого он попросить сначала ввести:

Адрес сервера Gitlab — https://gitlab.com/

Токен — был на странице с настройками на предыдущем скриншоте

Имя раннера — у меня lockal-runner

Теги через запятую – пока нажмем Enter, к ним мы вернемся позже

И исполнительshell

Если все сделано правильно, то мы увидим сообщение, что раннер был зарегистрирован:

 

 

Запускать скрипты мы будем с использованием powershell, так что теперь откроем папку (консоль не закрываем, она еще понадобится) с раннером и видим в ней файл config.toml. Откроем его любым редактором и заменим shell = "pwsh" на shell = "powershell"

Теперь запустим его как службу, выполнив в консоли (вы же ее не зарыли?"gitlab-runner.exe install" и "gitlab-runner.exe start". После этого, если мы снова вернемся в настройки CI/CD на Gitlab, то мы увидим наш раннер в списке:

 

 

Давайте перейдем список сборок (Pipelines) и перезапустим тот, который до этого завершился с ошибкой:

 

 

И, если все было сделано правильно, то вы увидите, что pipeline завершился успешно и и в каждой из работ вывелось сообщение в консоль:

 

 

Хмммм, но мы же не это вводили. Видимо проблемы с кодировкой. Надо всего лишь перед каждым скриптом выполнять 2 команды:

[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
[Console]::InputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")

Но дописывать их в каждый Job руками не очень хорошо. Вот бы была у нас возможность указать какое-то поведение по умолчанию? Да, мы можем так сделать. В секции default мы можем определить то, что будет добавляться к каждому Job-у, если это в нем не переопределено. Если мы туда добавим команды в секцию before_script, то они будут выполнятся перед каждой Job. Остается только закоммитить изменения и сделать push:

 

 

Перейдем в Gitlab и посмотрим пайплайны. Когда новый появится и выполнится, то мы увидим, что текст в Job-ах стал читаем:

 

 

Сообщения — это конечно хорошо, но давайте что-то соберем. Только что именно? Ну значит пришло время написать наше приложение. Создадим в корне проекта папку src. В ней создадим файл possum.os, а так же папку src/Модули с файлом Сортировка.os

 

 

Как вы уже поняли, наше приложение-опоссум будет что-то сортировать. Для начала в possum.os напишем:

#Использовать cmdline
#Использовать "Модули/.."

Процедура Инициализировать()
    Параметры = ПолучитьПараметры();
    Если Параметры["Команда"] = "sort" Тогда
        МассивЧисел = ПолучитьМассивЧисел(Параметры["Значение"]);       
        Результат = Сортировка.Отсортировать(МассивЧисел);
        Сообщить(Результат);
    Иначе
        ВызватьИсключение "хссссс";
    КонецЕсли;      
КонецПроцедуры

Функция ПолучитьМассивЧисел(ИсходнаяСтрока)
    ТипЧисло = Новый ОписаниеТипов("Число");
    МассивСтрок = СтрРазделить(ИсходнаяСтрока, ",");
    МассивЧисел = Новый Массив;
    Для каждого ЧислоСтрокой Из МассивСтрок Цикл
        МассивЧисел.Добавить(ТипЧисло.ПривестиЗначение(ЧислоСтрокой));
    КонецЦикла; 
    Возврат МассивЧисел;
КонецФункции    

Функция ПолучитьПараметры()
    Парсер = Новый ПарсерАргументовКоманднойСтроки();
    Парсер.ДобавитьПараметр("Команда");
    Парсер.ДобавитьПараметр("Значение");
    
    Параметры = Парсер.Разобрать(АргументыКоманднойСтроки);
    Возврат Параметры;
КонецФункции    

Инициализировать();

А в Сортировка.os реализуем опоссумовую сортировку: на каждом шаге мы даем нашему пушистому зверьку переставить 2 элемента массива. Если после этого массив отсортирован, то значит опоссум справился. Если же нет, то он просто пока не закончил и надо еще немного подождать.

Функция Отсортировать(СортируемыйМассив) Экспорт
    ГСЧ = Новый ГенераторСлучайныхЧисел(42);
    Пока Не МассивОтсортирован(СортируемыйМассив) Цикл
        Позиция1 = ГСЧ.СлучайноеЧисло(0, СортируемыйМассив.Количество());
        Позиция2 = ГСЧ.СлучайноеЧисло(0, СортируемыйМассив.Количество());
        Буфер = СортируемыйМассив[Позиция1];
        СортируемыйМассив[Позиция1] = СортируемыйМассив[Позиция2];
        СортируемыйМассив[Позиция2] = Буфер;
    КонецЦикла;
    Возврат СортируемыйМассив;  
КонецФункции

Функция МассивОтсортирован(ПроверяемыйМассив)
    Для Н = 0 По ПроверяемыйМассив.Количество() - 2 Цикл
        Если ПроверяемыйМассив[Н] > ПроверяемыйМассив[Н + 1] Тогда
            Возврат Ложь;
        КонецЕсли;  
    КонецЦикла; 

    Возврат Истина;
КонецФункции

Попробуем запустить, чтобы проверить, что сортировка замечательно работает: Terminal → New Terminal и выполним скрипт

 

 

Теперь давайте изменим скрипт build.os:

#Использовать 1commands

Команда = Новый Команда;

Команда.УстановитьСтрокуЗапуска("oscript -make ./src/possum.os ./possum.exe");
Команда.Исполнить();

Сообщить("Я собрался!");

А в .gitlab-ci.yml в Job build:

build:
  stage: build
  script: oscript ./ci/scripts/build.os
  artifacts:
    paths:
      - ./possum.exe
    expire_in: 1 week

Что значит этот artifacts? Мы говорим, что в корне репозитория может быть файл possum.exe и если он есть, то мы его сохраняем, он будет доступен для скачивания из pipeline и в последующих Job-ах. Так же мы должны указать сколько он будет храниться — 1 неделю. Давайте закоммитим изменения и отправим их в удаленный репозиторий:

 

 

Давайте откроем Gitlab и посмотрим последний pipeline:

 

 

Если мы все сделали правильно, то мы сможем скачать архив с собранным possum.exe

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

git clone https://gitlab.com/ffSaschaGff/possum_app.git .
git checkout ca1712c711c0626df5079ae80939325d05b158ff

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

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lunjio 65 18.11.21 13:45 Сейчас в теме
С приходом в 1С EDT мы получили git. С git-ом пришел и gitlab, а он уже дает инструменты по CI. Что такое CI? Ну все же знают, как обычно просят обновить прод? Желательно ночью? Желательно проверив на копии, что ничего не сломаем? Ну так вот: CI – это личный помощник, который все сделает сам. Надо только правильно его попросить...

Git самый удобный контроль версий, спору нет. CI - continuos integrtion, сам протестирует, главное попросить ? звучит заманчиво конечно ) В целом спасибо за статью, но вот автоматическое тестирование и заливание средствами непрерывной интергации в 1С, для меня до сих пор что-то как Hyper Loop, теоретически все круто вроде, но до сих пор не ясно как сделать так, чтобы люди в лепешку не смялись когда торможение будет происходить на такой скорости экстренное )
2. SaschaG 166 18.11.21 13:51 Сейчас в теме
(1) Спасибо. Ну начинать не спеша. Главное запустить, преодолеть порог вхождения, а там добавишь сборку, добавишь тесты и уже втянулся и хочешь еще больше автоматизировать свою работу.
Iscarimet; pavlov_dv; artbear; +3 Ответить
3. lunjio 65 18.11.21 13:58 Сейчас в теме
(2) Да, но вот как допустим подготовить тесты под изменение формы документа, где нужно протестировать под разными пользователями, с разными правами и т.п ? Для меня есть другие языки программировани, на которых очень понятные и расширенные инструменты тестирования. Касательно 1С можно тестами процедуры проверить, а вот касательно интерфейса, для меня тут кажется из двух зол меньшее надо выбирать, руками тестировать. Почему ? Да потому что нет нормальных инструментов для написания тестов, либо запись мышкой предлагают, в то время как в Xamarin у каждого элемента есть AutomationID где ты из кода можешь какой угодно сценарий прописать.
4. SaschaG 166 18.11.21 14:02 Сейчас в теме
(3) ну мы сценарные тесты через ванессу делаем - справляется отлично. Да, нужен человек с компетенциями и я сталкивался, когда на этом все глохло, но выигрыш от автотестов чувствуется. Ну невозможно руками перед каждым релизом все прокливать. А так смотришь только упавшие сценарии и отправляешь или QA тесты править, или разработчику чинить
5. lunjio 65 18.11.21 14:06 Сейчас в теме
(4) А вы считали затраты по тестам и ручного тестирования относительно времени ? Может гораздо выгоднее руками протестировать после того как доработал, чем писать тесты, еще под каждую доработку и тесты подгонять.
8. SaschaG 166 18.11.21 17:48 Сейчас в теме
(5) тестами имеет покрывать как минимум основные бизнес-процессы и сценарии пользователей. Никогда не знаешь где всплывет "это маленькое изменение". Приемочное тестирование при сдаче задачи мы проводим руками, но если при поломке этого функционала пользователи работать не смогут, то имеет смысл покрыть его тестами, чтобы случайно не сломать через 2-3-4 релиза, когда все все забудут. Да, на поддержание тестов тоже нужно тратить время, но тут вопрос в какую сумму компания оценивает час простоя.
buganov; pavlov_dv; +2 Ответить
6. aximo 1963 18.11.21 14:30 Сейчас в теме
Вот у меня появилась такое предположение сейчас, что EDT создавался для того (в том числе), чтобы перетянуть в отрасль 1с программистов С, С++, PHP-шников и прочих.

Вот наняли как-то мы "чистых" программистов на написание бизнес приложения - а они мне и готовят спустя некоторое время - мы не можем найти ставку 6% (налог на прибыль) в ставках НДС на товары. В результате имеем, что имеем.
9. dhurricane 18.11.21 17:50 Сейчас в теме
(6)
Вот у меня появилась такое предположение сейчас, что EDT создавался для того (в том числе), чтобы перетянуть в отрасль 1с программистов С, С++, PHP-шников и прочих.
Точно нет. :-)

Вот наняли как-то мы "чистых" программистов на написание бизнес приложения - а они мне и готовят спустя некоторое время - мы не можем найти ставку 6% (налог на прибыль) в ставках НДС на товары. В результате имеем, что имеем.
Собственно, а зачем Вы нанимали "чистых" программистов не под "чисто-программистские" задачи?
7. aximo 1963 18.11.21 14:37 Сейчас в теме
но из-за уважения к труду вложенного в написание статьи - плюс
Оставьте свое сообщение

См. также

Получаем статистику по git-репозиторию в разрезе разработчиков

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    724    ardn    3    

22

SonarQube: про объемы, ветки, покрытие кода и интеграцию с Gitlab

DevOps и автоматизация разработки Рефакторинг и качество кода Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Опыт применения SonarQube в нескольких командах. Плюс некоторые тонкости: уменьшение объемов базы SQ, интеграция, покрытие кода.

26.02.2023    1804    kraynev-navi    10    

41

DevOps для Плейстоцена. Скрещивание обычных форм толстого клиента с практиками CI/CD

DevOps и автоматизация разработки Бесплатно (free)

Плейстоцен — эпоха четвертичного периода, начавшаяся 2.588 миллионов лет назад и закончившаяся 11,7 тысяч лет назад. В 1С этот период характеризуется обычными формами, использованием толстого клиента и вызовом «Предупреждение» без таймаутов прямо из модулей проведения документов. О том, как внедрять инженерные практики для огромного монолита легаси и тестировать функциональность без менеджера и клиента тестирования под разными пользователями, на конференции Infostart Event 2021 Moscow Premiere рассказал ведущий программист компании BCS FinTech Сергей Голованов.

20.02.2023    1203    Golovanoff    17    

13

Жизнь платформы 1C:Предприятие в кластере Kubernetes

Сервера DevOps и автоматизация разработки Облачные сервисы, хостинг Бесплатно (free)

Во многих сферах запуск приложений в Kubernetes является де-факто стандартом архитектуры, так как это позволяет быстро и эффективно задействовать ресурсы, не затрачивая на это большие деньги. Но с платформой 1С:Предприятие не все так просто, но потенциально возможно. Руслан Жданов на митапе «DevOps в 1С: CI/CD. Непрерывная интеграция и поставка решений на 1С» рассказал про то, как с помощью Kubernetes организовать в облаке управление кластером из серверов 1С и реализовать там тестирование приложений на 1С или запуск скриптов на OneScript.

24.01.2023    5162    ZhdanovR    3    

22

Концепция ландшафта 1С-систем на предприятии

DevOps и автоматизация разработки Управление ИТ-подразделением Бесплатно (free)

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

09.12.2022    1153    roman72    13    

7

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

В курсе обобщен опыт работы аналитика на проектах в течение пяти лет, в нескольких фирмах. Подходы к написанию документов унифицированы и по возможности не привязаны к конфигурациям 1С.

3 500 рублей

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    4766    kamisov    20    

81

Что, если Continuous Integration – это прежде всего практика, а не набор инструментов?

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Бесплатно (free)

Рано или поздно многие компании приходят к практикам DevOps. И начало этому – Continuous Integration. О том, что происходит в команде специалистов 1С, когда они переходят на Git, и почему простое внедрение CI-инструментов не решает проблему подходов к разработке, в докладе на Infostart Event 2021 Post-Apocalypse рассказал руководитель компании ПрогТехБизнес Александр Анисков.

07.12.2022    1368    vandalsvq    0    

23

Управление хранилищами без боли

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Бесплатно (free)

Когда хранилищ много, возникает вопрос удобного управления ими. Андрей Овсянкин на онлайн-митапе «Инструменты автоматизации рутины в 1С-разработке» рассказал, как настроить перенос хранилища на новую версию платформы без перепрописывания путей у каждого разработчика, и как безболезненно обеспечить для хранилища запрет коммита с пустым комментарием.

28.11.2022    6249    Evil Beaver    11    

85

Как избавиться от большого количества комментариев в коде с использованием EDT + Git

Рефакторинг и качество кода DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Публикация освещает вопрос улучшения качества и читабельности кода путем отказа от излишних комментариев. Рассматривается пример из опыта работы команды разработки на EDT + Git. Команда работает в EDT меньше года. Конфигурация сильно доработана и не обновляется типовыми релизами.

15.11.2022    976    shastin87    5    

9

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Быстро в Jenkins

DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Написать свою сборочную линию для решения на 1С – задача нетривиальная: собрать конфигурацию из исходников, конвертировать между форматами, запустить множество инструментов, агрегировать результаты, сформировать отчеты... А хочется ведь просто ЗапуститьСвоюСборку()... Можно? Можно! О том, как создать сборочную линию за 5 минут в формате «Далее-далее-готово» на конференции Infostart Event 2021 Moscow Premiere рассказал Никита Федькин.

21.06.2022    5991    nixel    49    

81

APDEX 1C + Prometheus + Grafana + Superset, а точнее наоборот

DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Вы не задумывались о том, что расчет APDEX должен быть онлайн? Онлайн для всех - от бизнес-пользователей до команды разработки. Если задумывались - то в статье мы расскажем, зачем это делать, и поделимся наработками, как подключить 1С+APDEX к такой штуке, как Prometeus.

16.02.2022    7269    digital-samolet    42    

95

Как Gitlab-CI и OneScript могут отсортировать массив (Часть 2)

DevOps и автоматизация разработки Бесплатно (free)

Продолжение сквозного примера настройки Gitlab-CI - вывод результатов теста, условия запуска и таймауты.

12.12.2021    2312    SaschaG    4    

16

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Как начать разработку проекта 1С, чтобы легко перейти к DevOps-практикам

DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Многие рутинные операции при работе над проектом 1С можно автоматизировать – довериться готовым инструментам и уменьшить количество нажимаемых кнопок. О том, как с помощью готового шаблона проекта настроить окружение для разработки на митапе «DevOps в 1С» рассказал технический директор Инфостарта Артур Аюханов.

22.06.2021    8419    artbear    2    

72

Микросервисы на Golang. Часть 6. Докеризация, Начальная оркестрация, CD\CI

DevOps и автоматизация разработки Конфигурации 1cv8 Бесплатно (free)

Создадим микросервис, поместим его в докер, проведем его масштабирование на нескольких виртуальных машинах с помощью оркестрации Docker Swarm, выполним также CD\CD микросервиса с помощью GitHub Action (Микросервис взят с прода, обрезан лишний функционал) будет показан пример его взаимодействия с 1С клиентом.

21.06.2021    2851    dmitry-irk38    3    

6

Docker для 1Сника

DevOps и автоматизация разработки Платформа 1С v8.3 Бесплатно (free)

На онлайн митапе «DevOps в 1С» Руслан Жданов рассказал, для чего 1С-нику нужен Docker, как его применять, какие сервисы можно вынести в контейнеры и как организовать взаимодействие контейнеров друг с другом.

07.06.2021    12394    ZhdanovR    34    

41

Осторожный DevOps

DevOps и автоматизация разработки Платформа 1С v8.3 Бесплатно (free)

Начальник отдела разработки в компании «Билайн» Игорь Сухоруков на Meetup Infostart DevOps поделился особенностями работы своего ИТ-подразделения и рассказал о том, как устроено производство и внедрение ПО в режиме нон-стоп в компании, подразделения которой работают по всей России: от Москвы до Владивостока.

24.05.2021    4025    ig1082    4    

32

Ненавязчивая локальная разработка с traefik2, docker и letsencrypt

Групповая разработка (Git, хранилище) DevOps и автоматизация разработки Бесплатно (free)

Перевод статьи по проксированию HTTP траффика до сервисов развернутых в docker контейнерах. Оригинал от 24.09.2020.

16.05.2021    4997    malikov_pro    0    

8

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Шпаргалка установки сервера взаимодействия без MSI(9.0.33) использованием Postgresql в docker-compose

DevOps и автоматизация разработки Платформа 1С v8.3 Бесплатно (free)

Какой бы не был бизнес - он нуждается в коммуникации. У кого-то Telegram, у других - Whatsapp, у кого то - электронные письма. Возникла задача наладить общение между пользователями базы 1С без мессенджеров. Скачав самую свежую версию на момент написания статьи 9.0.33, обнаружились некоторые подводные камни при установке.

07.04.2021    2900    yaroslavkravets    2    

24

Тестируем в Docker

DevOps и автоматизация разработки Бесплатно (free)

Чтобы продукт гарантированно отвечал функциональным требованиям, нужно писать для него тесты и часто их запускать. О том, через какие этапы проходит компания, которая хочет автоматизировать тестирование – от одного клиента на локальной машине до запуска тестов по запросу в Kubernetes, на INFOSTART MEETUP Ekaterinburg.Online рассказал Андрей Крапивин.

29.03.2021    7556    Scorpion4eg    8    

52

1С on demand – скажи "нет" постоянным билд-агентам

DevOps и автоматизация разработки Бесплатно (free)

Каждый, кто пытался запускать на своем компьютере тесты для 1С, сталкивался с тем, что процесс тестирования не позволяет что-то делать параллельно. О том, как изолировать тестовые окружения и организовать «Агент по запросу» с помощью Docker на примере Jenkins CI, рассказал ведущий разработчик компании «Первый БИТ» Никита Грызлов.

25.01.2021    5479    nixel    12    

68

DevOps: бери и делай!

DevOps и автоматизация разработки Бесплатно (free)

В последнее время тема DevOps становится актуальной благодаря бесплатным инструментам автоматизации для проектов на 1С. О том, как вести разработку по DevOps и какие при этом могут возникнуть проблемы и сложности, рассказал разработчик Инфостарта Павел Олейников.

15.01.2021    5681    OPM    2    

38

Практика применения DevOps. Автоматизированная сборочная линия

DevOps и автоматизация разработки Бесплатно (free)

В четвертой части мастер-класса «Практика применения DevOps» на конференции Infostart Event 2019 Inception выступил Валерий Пронин. Он рассказал, как развернуть автоматизированную сборочную линию, которая будет контролировать качество кода в проекте и в зависимости от прохождения порога отдавать релиз в виде cf-файла либо отправлять письмо об ошибках.

16.12.2020    7512    proninvvp    5    

65

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Практика применения DevOps. Автоматизация процессов разработки, инструментарий и работа с Git

DevOps и автоматизация разработки Бесплатно (free)

Автоматизация процессов разработки с применением DevOps-практик помогает получать более качественный и осмысленный результат. На конференции Infostart Event 2019 Inception в ходе мастер-класса «Практика применения DevOps» команда Инфостарта разложила «по полочкам» инструментарий, который используется для каждого из процессов DevOps, и показала, как работать с ними на практике. В первой части выступил Павел Олейников – он сделал обзор инструментов, которые можно использовать при автоматизации процессов разработки, и рассказал про работу с Git (в том числе в EDT).

03.12.2020    6389    OPM    3    

44

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 4 - NoSQL (MongoDB, Redis)

DevOps и автоматизация разработки Бесплатно (free)

Если в ИТ-инфраструктуре есть NoSQL решения, с которыми требуется взаимодействовать из 1С, можем использовать прослойку на Golang в стиле RESTful

21.09.2020    7054    dmitry-irk38    12    

35

Взаимодействие 1С со сторонними продуктами посредством REST и Golang (middleware). Часть 2 - Docker

DevOps и автоматизация разработки Бесплатно (free)

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

07.09.2020    4865    dmitry-irk38    0    

18

DevOps в команде специалистов 1С или сказ о том, как желтые котики хотели лучше работать…

DevOps и автоматизация разработки Бесплатно (free)

Основные компоненты, на которых строится идея DevOps – это сотрудничество, доверие, инструменты и масштабируемость. И команда специалистов 1С, не подготовленная к соблюдению этих принципов, может столкнуться с проблемами при внедрении DevOps-практик. Как преодолеть эти сложности, и какие выгоды в результате применения DevOps-инструментов может получить компания, на конференции Infostart Event 2019 Inception рассказал руководитель отдела автоматизации предприятий ОП «Синимекс-Воронеж», Эмиль Карапетян.

04.09.2020    10342    amon_ra    2    

25

Управление конфигуратором в режиме агента с помощью python

Инструменты администратора БД Архивирование (backup) DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Управление конфигуратором 1С:Предприятие в режиме агента. Опыт применения с реализацией на языке python. Результат получен с использованием интерактивной сессии оболочки через invoke_shell().

06.08.2020    2974    Alex10166    2    

20

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

"Война и мир" или DevOps в большом Enterprise

DevOps и автоматизация разработки Бесплатно (free)

DevOps – это концепция разработки и поставки программного обеспечения, которая расширяет практики гибкой разработки Agile на весь жизненный цикл продукта. Но как применить эту концепцию в крупной компании, где любое изменение традиционно должно проходить большое количество согласований и проверок? Про свой опыт внедрения DevOps в большом Enterprise на конференции Infostart Event 2019 Inception рассказал руководитель направления DevOps в «Дирекции региональных продаж Газпром нефть» Марат Биккин.

08.05.2020    5010    squad    1    

13

Использование vanessa-runner/deployka в сборочных линиях Jenkins

DevOps и автоматизация разработки Бесплатно (free)

Библиотеки (shared-libraries) для Jenkins, пример сборочной линии.

26.03.2020    5515    ImHunter    3    

25

Пайплайны Jenkins - программирование и настройка. Загружаемые модули. Цикл "Многопоточный CI для 1С", часть 5

DevOps и автоматизация разработки Бесплатно (free)

Рассмотрим создание пайплайнов Jenkins и библиотек собственных методов, язык Groovy, подходы к хранению настроек и обработке ошибок.

17.03.2020    35393    Vladimir Litvinenko    18    

68

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Собираем образ виртуальной машины с PostgreSQL и платформой 1С. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 2

DevOps и автоматизация разработки Бесплатно (free)

Автоматизируем установку и конфигурирование Linux, PostgreSQL, 1C, Apache, Java с возможностью выбора версий дистрибутивов. Упаковываем результат в образ виртуальной машины.

28.02.2020    13797    Vladimir Litvinenko    11    

89

CI/CD для 1С проектов, унифицировано, с кастомизацией

DevOps и автоматизация разработки Бесплатно (free)

Тема CI/CD в связке с 1С не нова, но многих пугает сложность использования и поддержки, необходимость обучения команды. Про то, как унифицировать и упростить поддержку сборочных конвейеров для большого количества решений, в своем докладе на конференции Infostart Event 2019 Inception рассказал начальник отдела компании BIA-Technologies Валерий Максимов.

20.02.2020    10939    theshadowco    13    

76

DevOps. Как это выглядит у нас

DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

DevOps в департаменте разработки 1С в крупной компании.

01.10.2019    13155    Repich    19    

57

Сказ про то, как я DevOps-ом занимался (OneScript, Deployka, Jenkins)

OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 ИТ-компания Бесплатно (free)

Решаем задачу: автоматизировать обновление тестовых баз 1С из хранилища конфигурации при появлении в нём новых изменений. Данная статья родилась в муках хождения по граблям и поиска безопасного форватора среди подводных камней. Изложение постарался представить в виде инструкции для новичка, в которой собрал всё, с чем пришлось столкнуться. Сам я не DevOps-ер, ни на что не претендую, просто делюсь опытом :)

17.06.2018    27766    stas_ganiev    37    

137