Size: a a a

2020 June 26

АС

Артур Саляхов... in Go-go!
Anton Kucherov
Это хорошо, но почему вдруг набор shell команд стал костылями (Тем более что любой CI/CD Pipeline в сущности выполняет набор shell команд)? Где проходит грань между "перебором" и "костылями"? 🤔
Грань очень тонкая и спорить на тему что является, а что не является костылем не самая хорошая мысль. Основной посыл моего сообщения был про то, что делать деплой по таскам из VS Code это не лучший путь для построения автоматизации вокруг проекта, даже если он и «пет проджект». Вокруг столько удобных сервисов, изучение которых будет большим плюсом в список навыков для разработчика.
источник

AK

Anton Kucherov in Go-go!
Артур Саляхов
Грань очень тонкая и спорить на тему что является, а что не является костылем не самая хорошая мысль. Основной посыл моего сообщения был про то, что делать деплой по таскам из VS Code это не лучший путь для построения автоматизации вокруг проекта, даже если он и «пет проджект». Вокруг столько удобных сервисов, изучение которых будет большим плюсом в список навыков для разработчика.
Почему не лучший путь? Особенно с учетом того, что вводные были следующими:
1) Человек работает один (Соотвественно Continuous Integration не нужен. Не с кем интегрироваться проще говоря)
2) Задачи автоматически деплоить что либо при коммите в репозиторий не стоит (Соответсвенно Continuous Deployment не нужен).
🤔
источник

s

snip in Go-go!
Anton Kucherov
Почему не лучший путь? Особенно с учетом того, что вводные были следующими:
1) Человек работает один (Соотвественно Continuous Integration не нужен. Не с кем интегрироваться проще говоря)
2) Задачи автоматически деплоить что либо при коммите в репозиторий не стоит (Соответсвенно Continuous Deployment не нужен).
🤔
когда деплой завязан на редктор кода это не лучший путь
источник

s

snip in Go-go!
и подсказки в данном случае были вполне уместные, от вынести в баш скрипт до использования ci/cd
источник

AK

Anton Kucherov in Go-go!
А я и не опровергал их уместность. Я хочу понять почему в конкретной ситуации решение которое человек нашел стало "костылями"?
источник

s

snip in Go-go!
потому что лишняя зависимость в виде редактора кода
источник

АС

Артур Саляхов... in Go-go!
Anton Kucherov
Почему не лучший путь? Особенно с учетом того, что вводные были следующими:
1) Человек работает один (Соотвественно Continuous Integration не нужен. Не с кем интегрироваться проще говоря)
2) Задачи автоматически деплоить что либо при коммите в репозиторий не стоит (Соответсвенно Continuous Deployment не нужен).
🤔
Лет десять назад я бы еще мог спокойно на такое смотреть, но сейчас это уже больше вредно. Почему сразу не приучать себя к git flow и ci/cd? Хороший повод, чтобы прокачать себя в этом направлении 🤨
источник

AK

Anton Kucherov in Go-go!
> Почему сразу не приучать себя к git flow и ci/cd?

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

AK

Anton Kucherov in Go-go!
Тот же git flow так вообще мешает внедрению CI/CD и создает больше проблем. Хочется выстроить полноценный CI/CD процесс - есть trunk based development. Но там тоже свои подводные камни, свои плюсы и минусы. И так во всем. Везде trade-off.
источник

p

pragus in Go-go!
Юрий Вельмесов
Коллеги, сегодня ночью спрашивал как билдить, заливать билд и выполнять какие то пост/пре операции на удаленном сервер и мне @onokonem посоветовал сделать вот так:

go build -o app && ssh cloud sudo systemctl stop server-dev && scp app cloud:/home/velmesov/dev/backend && ssh cloud sudo systemctl start server-dev

всё круто, но каждый раз вводить это тоже такое себе, как вариант в .bashrc пихнуть в алиас.

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

В общем оказывается у меня под рукой было, а я не знал :)

Вот  дока и примеры кому интересно:
https://code.visualstudio.com/docs/editor/tasks

https://github.com/golang/vscode-go/blob/master/docs/tasks.md
Makefile
источник

DM

Dmitry M in Go-go!
Юрий Вельмесов
Коллеги, сегодня ночью спрашивал как билдить, заливать билд и выполнять какие то пост/пре операции на удаленном сервер и мне @onokonem посоветовал сделать вот так:

go build -o app && ssh cloud sudo systemctl stop server-dev && scp app cloud:/home/velmesov/dev/backend && ssh cloud sudo systemctl start server-dev

всё круто, но каждый раз вводить это тоже такое себе, как вариант в .bashrc пихнуть в алиас.

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

В общем оказывается у меня под рукой было, а я не знал :)

Вот  дока и примеры кому интересно:
https://code.visualstudio.com/docs/editor/tasks

https://github.com/golang/vscode-go/blob/master/docs/tasks.md
ansistrano
источник

͏

͏͏͏͏ in Go-go!
Юрий Вельмесов
Коллеги, сегодня ночью спрашивал как билдить, заливать билд и выполнять какие то пост/пре операции на удаленном сервер и мне @onokonem посоветовал сделать вот так:

go build -o app && ssh cloud sudo systemctl stop server-dev && scp app cloud:/home/velmesov/dev/backend && ssh cloud sudo systemctl start server-dev

всё круто, но каждый раз вводить это тоже такое себе, как вариант в .bashrc пихнуть в алиас.

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

В общем оказывается у меня под рукой было, а я не знал :)

Вот  дока и примеры кому интересно:
https://code.visualstudio.com/docs/editor/tasks

https://github.com/golang/vscode-go/blob/master/docs/tasks.md
ci/cd
источник

ЕА

Егор Андреевич... in Go-go!
Кто пытался подружить приватные репозитории гитлаба с gitlab-ci, подскажите, как боролись, проблема следующая:

в окружении прописаны:
export GOPROXY=direct
export GO111MODULE=on
export GOPRIVATE=gitlab.com/xxxx/*
git config --global url."https://$CI_USERNAME:$CI_PASSWORD@gitlab.com".insteadOf "https://gitlab.com"

Настройки выше нормально работают в контейнере, но при проделке всего того же на голой машине при подтягивании зависимостей получаю "unknown revision", сталкивался кто-нибудь?
источник

VK

Vadik Karmanov in Go-go!
А в го мод что прописал?
источник

VK

Vadik Karmanov in Go-go!
Для приватного репо тэги делал?
источник

MM

Mansur Mansurov in Go-go!
Егор Андреевич
Кто пытался подружить приватные репозитории гитлаба с gitlab-ci, подскажите, как боролись, проблема следующая:

в окружении прописаны:
export GOPROXY=direct
export GO111MODULE=on
export GOPRIVATE=gitlab.com/xxxx/*
git config --global url."https://$CI_USERNAME:$CI_PASSWORD@gitlab.com".insteadOf "https://gitlab.com"

Настройки выше нормально работают в контейнере, но при проделке всего того же на голой машине при подтягивании зависимостей получаю "unknown revision", сталкивался кто-нибудь?
У меня были проблемы с "insteadOf" и доступом к приватным репозиториям гитлаба, попробуй вот так, через файлик .netrc и гитлаб токен
https://play.golang.org/p/Cuv4FiwvVBQ
источник

ВС

Владимир Столяров... in Go-go!
Егор Андреевич
Кто пытался подружить приватные репозитории гитлаба с gitlab-ci, подскажите, как боролись, проблема следующая:

в окружении прописаны:
export GOPROXY=direct
export GO111MODULE=on
export GOPRIVATE=gitlab.com/xxxx/*
git config --global url."https://$CI_USERNAME:$CI_PASSWORD@gitlab.com".insteadOf "https://gitlab.com"

Настройки выше нормально работают в контейнере, но при проделке всего того же на голой машине при подтягивании зависимостей получаю "unknown revision", сталкивался кто-нибудь?
в гитлабе же была настройка, чтобы при ?go-get=1 отдавалась ссылка с ssh или что-то подобное
источник

MM

Mansur Mansurov in Go-go!
Mansur Mansurov
У меня были проблемы с "insteadOf" и доступом к приватным репозиториям гитлаба, попробуй вот так, через файлик .netrc и гитлаб токен
https://play.golang.org/p/Cuv4FiwvVBQ
я так до конца и не понял, почему это сработало, но это работает
источник

ЕА

Егор Андреевич... in Go-go!
Vadik Karmanov
А в го мод что прописал?
с точки зрения го.мод и тегов все корректно, еще раз - в контейнерах и локально все работает, на вмках любых - нет
источник

ЛА

Локоть Анатолий... in Go-go!
Егор Андреевич
Кто пытался подружить приватные репозитории гитлаба с gitlab-ci, подскажите, как боролись, проблема следующая:

в окружении прописаны:
export GOPROXY=direct
export GO111MODULE=on
export GOPRIVATE=gitlab.com/xxxx/*
git config --global url."https://$CI_USERNAME:$CI_PASSWORD@gitlab.com".insteadOf "https://gitlab.com"

Настройки выше нормально работают в контейнере, но при проделке всего того же на голой машине при подтягивании зависимостей получаю "unknown revision", сталкивался кто-нибудь?
А deploy key использовать не хотите ? Он же как раз для того, чтобы выкачивать репы им
источник