Showing posts with label CI. Show all posts
Showing posts with label CI. Show all posts

Friday, 3 October 2025

Google AI Studio та Vercel.

Привіт привіт.

Google AI Studio активно пропонує vibe coding з своїм помічником Code Assistant. На виході отримуємо код React (TypeScript). 

Але в плані Free Tier ви мусите запускати свій онлайн застосунок з того ж таки гугл драйва. Виглядає це так

https://ai.studio/apps/drive/1aPqW_yllKk7ZKDpuh1gHpHzej4hH7oQm

При цьому код проекта буде доступний любому бажаючому. Та й саме URL посилання якось не гарно виглядає).

Тому маємо два шляхи, або Deploy проекта в Google Cloud, або Deploy проекта в Github, а звідти розгортання його з Vercel.

Що робимо для Vercel?

1) в Google AI Studio генеруємо свій Google API ключ в плані Free Tier.

2) в Vercel створюємо проект з репозиторію Github який ми задеплоїли з Google AI Studio

3) вставлємо в змінні проекту наш API ключ під назвою VITE_API_KEY

4) повертаємося до  Google AI Studio і в проекті в файлі geminiService.ts робимо заміну рядка

const API_KEY = process.env.API_KEY;

на

const API_KEY = import.meta.env.VITE_API_KEY;

5) також в корні проекту створюємо новий файл vite-env.d.ts з таким наповненням

interface ImportMetaEnv {

  readonly VITE_API_KEY: string;

}

interface ImportMeta {

  readonly env: ImportMetaEnv;

6) робимо ще раз деплой репозиторія на Github

7) все, через хвилину наш проект доступний за новим гарним URL

https://pixel-studio-pro.vercel.app/

Щасти.

Wednesday, 2 August 2023

Траблшутинг Stable Diffusion.

Всем привет.

Бывают случаи когда после очередного обновления Stable Diffusion в лице А1111 перестает работать как надо. 

Частенько Extensions для А1111 используют одни и теже библиотеки и плохо делят их между собой. Поэтому для начала попробуйте отключить (удалять не надо) некоторые из своих расширений и перезапустите А1111. У меня так например не сошлись характерами SD-CN-Animation и ROOP.

Если это не помогло тогда можно откатить свой Stable Diffusion до предыдущего релиза. До какого именно, вам надо определиться самим по истории в репозитории А1111 в Git. В принципе вся процедура тривиальна и хорошо знакома знатокам CI/CD.

Для возврата на другую версию Stable Diffusion WebUI, необходимо в папке с Stable Diffusion выполнить команду:

git checkout <номер нужного релиза A1111>

Номер релиза в Git фигурирует как branch number. Как найти нужный есть много мануалов в сети.

Ввести команду можно так:

- если вы в ручную устанавливали Git то у вас в проводнике Windows появились быстрые команды для Git в popup-меню. Правой кнопкой мыши нажмите на папку с вашей Stable Diffusion и выберете в появившемся меню Git Bash Here. После чего откроется окно с командной строкой в которой уже можно вписать или вставить данную команду,

-  можно в проводнике открыть папку с вашей Stable Diffusion. В адресной строке вверху где показывается весь путь к вашей папки с Stable Diffusion, выделить все и на английской раскладке написать cmd  и нажать Enter. Запустится оболочка командной строки куда также можно вставить команду приведенную выше.

Важно - выполнять команду следует именно в папке Stable Diffusion!

После того как команда выполнена, закройте окно командной стоки, удалите папку venv, так как с последним обновлением обновились зависимости и запустите как обычно, с помощью webui-user.bat. Папка venv создастся сама при запуске А1111, нужные зависимости установятся автоматически или подтянутся из кеша, без повторного скачивания.

Никаких правок в webui-user.bat делать не нужно, git pull тоже можно оставить в скрипте. Однако для портабельной версии следует сократить строку git pull origin master до git pull.

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

git checkout master

Успехов.

Friday, 11 December 2020

Testing Ansible roles with Molecule.

Hi all.

Today we will speaking about how to automate your verifications of code using Python.

Story author - Jairo da Silva Junior.

Test techniques role in software development, and this is no different when we are talking about infrastructure as Code (iaC). Developers are always testing, and constant feedback is necessary to drive development. if it takes too long to get feedback on a change, your steps might be too large, making errors hard to spot. baby steps and fast feedback are the essence of tdd (test-driven development). but how do you apply this approach to the development of ad hoc playbooks or roles?

When you’re developing an automation, a typical workflow would start with a new virtual machine. i will use Vagrant [1] to illustrate this idea, but you could use libvirt [2], docker [3], Virtualbox [4], or Vmware [5], an instance in a private or public cloud, or a virtual machine provisioned in your data center hypervisor (oVirt [6], Xen [7], or Vmware, for example).

When deciding which virtual machine to use, balance feedback speed and similarity with your real target environment.

The minimal start point with Vagrant would be:

vagrant init centos/7 # or any other box

Then add Ansible provisioning to your Vagrantfile:

config.vm.provision "ansible" do |ansible|   

  ansible.playbook = "playbook.yml" 

end

In the end, your workflow would be:

1. vagrant up 2. edit playbook. 

3. vagrant provision 

4. vagrant ssh to verify Vm state. 

5. repeat steps 2 to 4. 

Occasionally, the Vm should be destroyed and brought up again (vagrant destroy -f; vagrant up) to increase the reliability of your playbook (i.e., to test if your automation is working end-to-end). Although this is a good workflow, you’re still doing all the hard work of connecting to the Vm and verifying that everything is working as expected. When tests are not automated, you’ll face issues similar to those when you do not automate your infrastructure. Luckily, tools like testinfra [8] and Goss [9] can help automate these verifications.

Tuesday, 18 August 2020

Оптимизация размеров образов Docker.

Всем привет.

Образы Docker могуть быть очень большими. Многие легко превышают 1 Гб в размере. Как они становятся такими? Должны ли они быть такими? Можем ли мы сделать их меньше, не жертвуя функциональностью?

Все дело в слоях. Образ Docker  похож на супер бигмак, где каждый инградиент этажности увеличивает его массу в килобайтах. Концепция слоев затрагивает различные низкоуровневые технические детали о вещах вроде корневой файловой системы (rootfs), механизма копирования при записи (copy-on-write) и каскадно-объединенного монтирования (union mount). Эта азбука достаточно хорошо раскрыта в другом месте, поэтому я не буду пересказывать ее здесь. Для Важным является понимание того, что каждая инструкция в Dockerfile приводит к созданию нового слоя образа. Бутерброд одним словом!

Зная, что образ - это не что иное, как коллекция других образов, можно прийти к очевидному выводу: размер образа равен сумме размеров образов, его составляющих.

Посмотрим на вывод команды docker history imagename:

$ docker history aformat

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT

d1ea947a9058        6 days ago                                                          119MB               merge sha256:f1fe0e102e804d28b6ae83ba4a3d1beb730eaea48aefc5b4510a3e03e5fe1c76 to sha256:a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e

<missing>           6 days ago          /bin/sh -c tree -L 1                            0B                  

<missing>           6 days ago          /bin/sh -c echo "******************* Hello w…   0B                  

<missing>           6 days ago          /bin/sh -c rm -rf /var/cache/apk/*              0B                  

<missing>           6 days ago          /bin/sh -c apk add tree                         0B                  

<missing>           6 days ago          /bin/sh -c apk add git && apk add npm && apk…   0B                  

<missing>           10 days ago         /bin/sh -c apk --no-cache add --update bash     0B                  

<missing>           10 days ago         /bin/sh -c #(nop)  MAINTAINER Nyukers <nyuke…   0B                  

<missing>           2 months ago        /bin/sh -c #(nop)  CMD ["/bin/sh"]              0B                  

<missing>           2 months ago        /bin/sh -c #(nop) ADD file:c92c248239f8c7b9b…   5.57MB           

Мы можем увидеть все слои образа aformat вместе с командами, которые привели к их созданию, и их размером.

Что же следует учесть для уменьшения размера образа Docker?

Версия на печать

Популярное