Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр  Что обсуждали люди в 2024 году? Самое время вспомнить — через виммельбух Пикабу «Спрятано в 2024»! Печенька облегчит поиск предметов.

Спрятано в 2024

Поиск предметов, Казуальные

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
12
Neurosonya
Neurosonya
Искусственный интеллект
Серия Полезность

Как создать аудиокнигу со своим голосом БЕСПЛАТНО? 2 легких способа⁠⁠

11 месяцев назад
1/3

Научиться создавать крутые изображения https://neuralprofit.ru/

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

  • ElevenLabs -самая популярная бесплатная читалка книг, так же без проблем прочитает статью или любой файл в формате pdf. Есть много языков, в том числе русский. Можно озвучить книгу своим голосом.Работает в качестве приложения для iOS и Android, но придется повозиться с созданием американского акка. Кому это сложно, ниже альтернатива для вас

Больше проверенных сервисов, как использовать ChatGPT для своих задач и правильно составлять промпты и многое другое -  в Закрытом сообществе Нейроучеба.

  • Ebook2audiobookXTTS - cервис с незатейливым названием  преобразует книгу или любой текст в аудиокнигу. Работает бесплатно, есть 16 языков, в том числе русский. Можно озвучить книгу своим голосом. Можно использовать на сайте без регистрации или установить с GitHub

Подпишитесь на НейроProfit и узнайте, как можно использовать нейросети для бизнеса, учебы и работы, не теряя свое время.

Показать полностью 3
[моё] Искусственный интеллект Технологии Сервис Звук Озвучка Голос Книги Аудиокниги Полезное Бесплатно Github Клоны
2
user9930515
user9930515

Я придумал свою систему айпи адресов!⁠⁠

11 месяцев назад

Я хочу создать свою систему IP адресов.

Заинтересованы?

Чекайте идею тут: https://github.com/kucer0043/GiveMeIp

(Уже все это реализовано на Python, в ближайшее время может в репозиториий выложу)

Программирование IP Идея Github Текст
7
8
wladradchenko
Лига программистов

Обзор с видео года программирования⁠⁠

1 год назад

Исследовал интернет и наткнулся на GitHub Unwrapped. Он на основе активности в GitHub автоматически создаёт видео, где можно увидеть часто используемые языки, часы спонтанной работы, звёзды и всё остальное за этот год. Код открыт.

Перейти к видео

Сделано с использованием Remotion — тоже с открытым кодом, которая позволяет автоматизировать создание видео на React. Увидел это и решил, что круто, надо поделиться!

А в конце ролика я добавил ещё новость с которой бы хотел поделиться про своей пет-проект с открытым исходным кодом в основном из-за которого у меня получилась такая статистика и видео.

Показать полностью
[моё] Видеомонтаж Разработка Github Статистика Обзор Автоматизация Программирование Видео
0
44
OwnerSnake
OwnerSnake
pikabu GAMES

Фильтр лута от NeverSink для Path of Exile 2: упрощение поиска нужных предметов⁠⁠

1 год назад

Path of Exile 2 завоевывает популярность, а вместе с ней растет и потребность в удобных инструментах. Разработчик и стример NeverSink предложил решение – новый фильтр лута, опубликованный на Reddit и в других своих социальных сетях.

Фильтр помогает выделять важные предметы, такие как уникальные вещи, руны и фрагменты. В частности, он особенно полезен для эндгейм-контента, где найти нужные предметы без помощи фильтра может быть сложно. Для игроков, знакомых с Filterblade (веб-платформа и фильтр для PoE1), это отличный инструмент от того же автора, теперь адаптированный для Path of Exile 2.

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

Также, если вам интересны новости игровой индустрии, подписывайтесь на наш канал и в Telegram: Игровой террариум / GamingTerrarium
Мы публикуем только самое интересное и в гораздо большем объёме, чем здесь.

Показать полностью 1
Новости игрового мира Компьютерные игры Path of Exile Path of Exile 2 Моды Github Игры
13
5
Neurosonya
Neurosonya
Искусственный интеллект
Серия Полезность

Бесплатный генератор музыки⁠⁠

1 год назад
Бесплатный генератор музыки

Сразу скажу, не Suno и Udio с их расширенным функционалом.  Для этих целей я вам посоветую нейросеть внизу.

OpenMusic подойдет для тех случаев, когда просто нужна музыка, без авторских прав, лишних заморочек, бесплатно и просто на сайте. По поводу ”быстро” - минуты 1,5-2 подождать возможно придется.

Работает по текстовому промпту, ничего лишнего. Можно сгенерировать мелодию в разных стилях, я ввела modern indie house music.

Получившийся трек можно послушать в моем телеграм канале

Полноценную песню со словами на сайте не сгенерит, это будет отрывок 10 секунд. Можно установить с GitHub и использовать локально и без ограничений.


От себя посоветую  Musichero.ai — AI-генератор музыки, который позволяет создавать музыкальные треки из текстовых запросов. Инструмент основан на технологии Suno V3.5 и предоставляет музыку высокого качества. Бесплатно можно 2-5 треков в день, в зависимости от нагрузки. Если пост понравился, не скупитесь, пожалуйста, на реакции - из пока в 4 раза меньше, чем пересылок 🥹

Подпишитесь на НейроProfit и узнайте, как можно использовать нейросети для бизнеса, учебы и работы, не теряя свое время.

Показать полностью
[моё] Искусственный интеллект Звук Песня Генератор Нейромузыка Технологии Udio Suno Github Бесплатно Музыка
7
3
pytker
Лига Devops

Очередной пайплайн сборки для вашего приложения⁠⁠

1 год назад

Статья была написана в январе 2023 и выложена на сайте которого уже нет. Дабы она не канула в лету выкладываю ее здесь.

В этой статье описан “универсальный” пайплайн для сборки golang приложений. Универсальный в кавычках, потому что для сборки десятков разных приложений при помощи одного пайплайна нужно придерживаться  общих стандартов разработки. Которые как бывает не всегда соблюдаются даже в рамках одного проекта.

Шаги сборки


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

  • Получение кода;

  • Запуск тестов;

  • Статический анализ кода;

  • Сборка кода;

  • Сборка докер образа:

  • Деплой деплой образа в registry;

  • Деплой приложения на тестовую среду;

  • Запуск интеграционных тестов;

  • Запуск нагрузочного тестирования;

  • Запуск любых дополнительных проверок которые вы посчитаете нужными;

  • Деплой на прод.

Инструменты


Для реализации пайплайна будут использоваться следующие инструменты:

  • Jenkins - для запуска пайплайна;

    • generic webhook trigger plugin

    • pipeline plugin

    • ssh agent plugin

    • sonarqube scanner plugin

  • Harbor - для хранения docker образов;

  • Sonarqube - для статического анализа кода;

  • Github - для хранения исходников.

В статье не описано развертывание jenkins, harbor, SonarQube.

Пайплайн будет написан при помощи jenkins declarative pipeline.

Сборка будет производится на примере node_exporter

Требования к jenkins нодам

На нодах jenkins должны быть установлены:

  • git;

  • docker;

  • java.

Получение кода.

Для доступа к репозиторию нужно сгенерировать ssh ключ:

  • Генерируем ключи;

  • Заходим в Настроить jenkins > Manage credentials;

  • Выбираем где будет хранится токен. У нас только 1 вариант. System > Global credentials (unrestricted)

  • Нажимаем Add credentials и выбираем ssh username with ptivate key. Вводим ключ  id и описание. В id лучше вводить что то осмысленное;

  • Добавляем публичный ключ в репозиторий.

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

  • sonarProject = код проекта в sonarqube;

  • sonarProjectName = название проекта в sonarqube;

  • gitCommitHash - короткий хэш коммита для использования в качестве версии докер образа;

  • GIT_REPO_BRANCH и GIT_REPO_URL определяются в параметрах запуска.

  • credentialsId: 'jenkins-jenkins' наш ssh ключ созданный выше.

stages {

stage('Get sources') {  //название этапа пайплайна

steps {

cleanWs() // очистка каталога сборки

checkout([$class: 'GitSCM', branches: [[name: params.GIT_REPO_BRANCH]], extensions: [], userRemoteConfigs: [[credentialsId: 'jenkins-jenkins', url: params.GIT_REPO_URL]]])  // клонирование репозитория


script {

// получение информации из git для дальнейшего использования при сборке и в sonarqube

gitRepoPath = params.GIT_REPO_URL.substring(params.GIT_REPO_URL.lastIndexOf(":") + 1)

sonarProject = gitRepoPath.minus(".git").minus("-").minus("_").minus("/")

sonarProjectName = gitRepoPath.minus(".git")

gitCommitHash = sh (script: "git log -n 1 --pretty=format:'%h'", returnStdout: true)

currentBuild.displayName = sonarProjectName + " " + params.GIT_REPO_BRANCH

currentBuild.description = sonarProjectName + " " + params.GIT_REPO_BRANCH + " " + gitCommitHash

}

}

}

Запуск тестов.


На данном этапе запускаются юнит тесты.

  • when  выполнение только при определенном значении переменной которая задается в параметрах запуска;

  • beforeAgent true проверка условия запуска перед загрузкой образа агента;

  • image params.BUILDER_IMAGE - контейнер в котором будут запускатся тесты, задается в параметрах;

  • agent запуск этапа в докер контейнере;

  • args  '-v /home/jenkins/.cache:/home/jenkins/.cache ' монтируется каталог с библиотеками go, для того чтобы не скачивать их при повторном запуске;

  • reuseNode true - запуск на той же ноде, на которой запускались предыдущие шаги.

stage ('Run tests') {

when { 

environment name: 'RUN_TESTS',

value: 'true'

beforeAgent true

}

agent { 

docker {

image params.BUILDER_IMAGE

args  '-v /home/jenkins/.cache:/home/jenkins/.cache '

registryCredentialsId 'docker-registry'

registryUrl "https://harbor.iops-test.com"

reuseNode true

}

}

steps {

sh """

make test

"""

}

}


Тесты на данном этапе запускаются в докер контейнере. Делается это для того чтобы не держать различные инструменты сборки всевозможных версий на одной ноде. В качестве registry используется harbor.


Статический анализ кода.

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

После сканирования кода обработка результатов на стороне сервера sonarqube занимает некоторое время. Обработка может длится довольно долго при большом объеме кода. Так же webhook от сервера sonarqube с результатами  может провалится. Поэтому нужно всегда выставить таймаут.

Настройка SonarQube quality gate

  • Заходим в SonarQube;

  • В верхней панели навигации переходим на вкладку quality gate;

  • Нажимаем Create;

  • Вводим название нашего qg и нажимаем save;

  • В открывшемся окне нажимаем add condition и вводим интересующие нас критерии. При несоответствии этим критериям qg будет считаться не пройденным и наш пайплайн завершится с ошибкой.

  • Нажимаем кнопку set as default. Теперь все проекты будут по умолчанию привязаны к этому qg

Настройка SonarQube webhook

Для того чтобы jenkins мог получать результаты проверки quality gate нужно настроить webhook.

На стороне jenkins:

  • Добавляем токен в credentials c типом secret text, как это было описано выше. токен вводим произвольный;

  • Заходим в Настроить jenkins > Конфигурация системы;

  • В разделе SonarQube servers наш токен в Webhook Secret;

  • Остальные параметры также должны быть заполнены. Server authentication token - берется из настроек пользователя SonarQube;

На стороне SonarQube:

  • Заходим в administration > configurations > webhooks

  • Нажимаем Create;

  • Вводим название, адрес jenkins, токен который мы указывали как Webhook Secret выше. адрес в формате  <jenkins>/sonarqube-webhook/

stage ('Run sonar checks') {

when {

environment name: 'SONAR_CHECKS',

value: 'true'

beforeAgent true

}

agent {

docker {

image 'sonarsource/sonar-scanner-cli'

args  '--rm  '

reuseNode true

}

}

steps{

script{

withSonarQubeEnv('sonar-server') {


sh """

curl -u ${SONAR_AUTH_TOKEN}:  ${SONAR_HOST_URL}/api/projects/create -d 'project=${sonarProject}&name=${sonarProjectName}' # Создаем проект, если его еще нет

/opt/sonar-scanner/bin/sonar-scanner \ # запуск сканера

-Dsonar.projectKey=${sonarProject} \

-Dsonar.sources=./

"""

}

timeout(time: 5, unit: 'MINUTES') { // таймаут на ожидание результатов

def qg = waitForQualityGate() // Reuse taskId previously collected by withSonarQubeEnv

if (qg.status != 'OK') { // завершение пайплайна при непрохождении qualitygate

error "Pipeline aborted due to quality gate failure: ${qg.status}"

}

}

}

}

}

Сборка кода.


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


stage ('build service') {

when {

environment name: 'BUILD_SERVICE',

value: 'true'

beforeAgent true

}

agent {

docker {

image params.BUILDER_IMAGE

args  '-v /home/jenkins/.cache:/home/jenkins/.cache '

registryCredentialsId 'docker-registry'

registryUrl "https://harbor.iops-test.com"

reuseNode true

}

}

steps {

sh """

make build

"""

}

}

Сборка докер образа.

Это последний этап сборки docker образа и его деплоя в harbor.

В качестве сборщика можно использовать образы из dockrhub или любых других внешних registry. Для этого в harbor нужно предварительно создать проект который проксирует запросы во внешние registry.

stage ('build docker image') {

when {

environment name: 'BUILD_IMAGE',

value: 'true'

beforeAgent true

}

steps {

script {

docker.withRegistry('https://harbor.iops-test.com/', 'docker-registry') {

sh """#!/bin/bash

docker build -t harbor.iops-test.com/internal/sgapp:${gitCommitHash} .

docker push harbor.iops-test.com/internal/sgapp:${gitCommitHash}

docker rmi harbor.iops-test.com/internal/sgapp:${gitCommitHash}

"""

}

} 

}

}

Как результат мы имеем собранный образ в нашем registry. Там же его можно проверить на уязвимости.

Для примера взят другой образ.

Создание пайплайна

  • Создаем item c типом pipeline.

  • добавляем наш jenkinsfile c пайплайном который лежит в git.

сохраняем.

Запуск пайплайна


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

При втором запуске появляются параметры выполнения. Заполняем их.

Видно что все кроме сборки образа завершились  успешно. Это произошло потому что dockerfile учитывает сборку находящуюся в его репозитории. Она при выполнении копирует бинарники по другим путям. Конечно если вы пишете автоматизацию сборки сами у вас все это должно совпадать. Для того чтобы это обойти можно написать дополнительные этапы пайплайна для получения dockerfile из отдельного репозитория.


слева на экране мы видимо историю сборок.

щелкнув по значку SonarQube  перейдем в проект  и увидим результаты проверки.

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

Для создания вебхука который будет запускать наш пайплайн зайдем в настройки репозитория с нашим приложением - https://github.com/kilin-s/sgapp/.

  • Заходим в настройки settings > webhook > add webhook;

  • Добавляем ссылку на jenkins в формате <jenkins>/generic-webhook-trigger/invoke?token=abc123

Кроме доступа к jenkins По токену будет определятся пайплайн для запуска.

В нашем пайплайне добавляем следующие строки

triggers {

GenericTrigger(

genericVariables: [

[key: 'GIT_REPO_URL', value: '$.repository.ssh_url'],

[key: 'GIT_REPO_BRANCH', value: '$.ref']

],

causeString: 'Triggered on $ref',

tokenCredentialId: 'go-build-common-hook',

printContributedVariables: true,

printPostContent: false,

silentResponse: false,

shouldNotFlattern: false

)

}

  • tokenCredentialId - токен используемый дя запуска, берется из credentials;

  • genericVariables - запись значений полей из json запроса в параметры запуска.

Для того чтобы webhook начал работать пайплайн нужно запустить еще раз.

Сделаем еще 1 коммит в наш репозиторий для проверки запуска и сборки.

Пайплайн завершился успешно.

Заключение.

Данный пайплайн можно использовать как отправную точку для построения своего ci.

Добавлять любые шаги и проверки. С доработкой использовать его как проверку пул реквестов или просто сборки своих приложений.

ссылки:

sonarqube jenkins extension

репозиторий собираемого приложения

репозиторий с пайплайном

jenkins pipeline syntax

node exporter

harbor

Показать полностью 18
[моё] Гайд Технологии DevOps Jenkins Github IT Длиннопост
11
3
Ghost687
Ghost687

Продолжение поста «Айтишное»⁠⁠26

1 год назад
Продолжение поста «Айтишное»
Ответ на пост Волна постов Скриншот Без перевода Github
1
9
Ghost687
Ghost687

Продолжение поста «Айтишное»⁠⁠26

1 год назад
Продолжение поста «Айтишное»
Показать полностью 1
Ответ на пост Волна постов Скриншот Github Playlist
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии