Архив рубрики: Scripting/coding

HowTo и примеры использования bash, C, Python, Ruby и т.д.

SonarQube: запуск в Docker и вызов из Jenkins Pipeline

18 июня 2019
 

 Задача — запустить SonarQube, что бы Jenkins выполнял проверку кода. Jenkins работает в Docker, билды запускаются тоже Docker. Основная проблема, которая возникла во время запуска SonarQube из Docker Compose, это то, что контейнер с SonarQube внутри себя запускает процесс с Elastisearch (что, вроде как, нарушает главный принцип использования конейнеров — 1 сервис на один контейнер).… Читать далее »

Jenkins: запуск PHPUnit из Codeception по Pull Reguest в Github и Allure-репорты

6 июня 2019
 

 Задача — запускать PHPUnit для тестов кода бекенда. Сам PHPUnit будет запускаться из Codeception. Задача в Jenkins должна триггериться из Github, при создании Pull Request — используем Github Pull-Request Builder плагин. Для просмотра отчётов о тестах — используем Allure. Jenkins запущен в Docker-контейнере, и все процессы будет запускать в контейнерах. Проверка тестов Что бы получить… Читать далее »

Golang: указатели — подробный разбор

20 апреля 2019
 

 Я уже когда-то добавлял пост про указатели в C — C: указатели — подробный разбор, но было это достаточно давно, да и Си всё-таки не совсем Go, хотя в плане указателей разницы нет. Тем не менее — рассмотрим указатели в отдельном посте. Что такое указатель? Кратко, указатель — это переменная, которая хранит адрес памяти другой… Читать далее »

Go: проверка списка публичных репозиториев в Github и уведомления в Slack. Сравнение списков в Go. Первый опыт с Golang.

13 апреля 2019
 

 Задача — написать утилиту, которая будет запускаться по крону из Jenkins и проверять список публичных репозиториев организации в Github. Создание Docker-образа и Jenkins-джобы — в посте Jenkins: проверка публичных репозиториев Github-организации. Затем она должна сравнивать полученный список со списком разрешённых, и если списки не совпадают — слать алерт в Slack. Идея состоит в том, что… Читать далее »

Atom: полезные плагины

8 апреля 2019
 

 Давно пользуюсь vim практически для всего, кроме крупных проектов на Python (которые последнее время случаются крайней редко), для которого использую PyCharm. Тот же PyCharm использую при написании JSON-шаблонов для CludFormation (см. плагин aws-cloudformation). Для Go сначала пользовался vim с плагином vim-go, но недавно потрогал Atom — вполне понравился, попробую исопльзовать его. Собственно в этом посте… Читать далее »

Redis: репликация, часть 3 — redis-py и работа с Redis Sentinel из Python

1 апреля 2019
 

 В продолжение постов о настройке и использовании Redis репликации с использованием Redis Sentinel — пример работы из Python. Предыдущие и последующие посты серии: Redis: репликация, часть 1 — обзор. Replication vs Sharding. Sentinel vs Cluster. Топология Redis. Redis: репликация, часть 2 — Master-Slave репликация, и Redis Sentinel Redis: репликация, часть 4 — написание Ansible роли… Читать далее »

What is: chroot — системный вызов и утилита в Linux

23 марта 2019
 

 chroot() был добавлен в Version 7 Unix в 1979 году и используется для изоляции файловой системы. По сути, является предшественником вообще всей идеи нынешней контейнеризации, только в современных системах используются namespaces и cgroups, а раньше применяли chroot для создания изолированного от хоста рабочего окружения, которое могло использоваться для тестирования. Собственно, ch и root и является… Читать далее »

Golang: Go in Practice — заметки на полях, часть 2 — CLI приложение на Go

14 февраля 2019
 

 Предыдущая часть — Golang: Go in Practice – заметки на полях, часть 1 – введение. Стандартная библиотека Go включает в себя пакеты для создания приложения с поддержкой опций командной строки. В отличии от стандартных, принятых в Linux/BSD, стилей — в пакете из стандартной библиотеке Go используются одинарные или двойные дефисы как взаимозаменяемые. Т.е. тут не… Читать далее »

Golang: unrecognized import path «math/bits» (import path does not begin with hostname)

12 февраля 2019
 

 При импорте пакета — возникает ошибка вида «unrecognized import path «math/bits» (import path does not begin with hostname)«. Гуглим, находим обсуждение тут>>>, радуемся, что в репозиториях Debian 9 последняя доступная версия 1.7. Проверяем версию Go: Выполняем установку вручную. Удаляем установленный пакет: Со страницы загрузок — загружаем архив с новой версией, распаковываем его: Перемещаем каталог go… Читать далее »

Golang: Go in Practice — заметки на полях, часть 1 — введение

4 февраля 2019
 

 Ещё весной начал учить Go, но потом перешёл на новую работу, забот и без того хватало, и Go забросил. Тем не менее — встречается он сейчас много где (Docker, Prometheus, Terraform etc), а потому знать его желательно. Да и вообще — иногда надо поучить что-то новое, ибо становится скучно. Попробую вести «конспекты» книги Go in Practice … Читать далее »