-
Notifications
You must be signed in to change notification settings - Fork 0
deploy
gretmn102 edited this page Dec 30, 2023
·
3 revisions
Эта инструкция предполагает, что:
- запуск происходит на системе Ubuntu (на других просто-напросто не проверялось)
- проект компилируется GitHub'ом через Actions и оставляет за собой единственный артефакт, неважно с каким именем
Структура проекта:
.
├── deploy
│ ├── файлы проекта
│ ├── .env # скопированный .env
│ └── ...
└── .env
Все ошибки пишутся в nohup.out
.
-
Удаленно подключиться к хостингу через
ssh
-
Установить пакеты
jq
иlibarchive
:sudo apt install jq sudo apt install libarchive-tools
-
заполнить и установить переменные окружения для текущей сессии:
github_workflow_token=$TODO # токен GitHub'а с правами чтения артефактов
-
создать папку проекта
mkdir agent-discord-bot cd agent-discord-bot
-
Создать папку
deploy
:mkdir deploy cd deploy
-
скачать артефакт и распаковать:
curl \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/gretmn102/agent-discord-bot/actions/artifacts | \ jq -r '.artifacts[0].archive_download_url' | \ curl \ -H "Accept: application/vnd.github+json" \ -H "Authorization: token $github_workflow_token" \ -H "X-GitHub-Api-Version: 2022-11-28" \ -L \ --url "$(</dev/stdin)" |\ bsdtar -xf-
-
разрешить запуска исполняемого файла для текущего пользователя:
chmod u+x agent-discord-bot
-
cd ..
-
создать и заполнить
.env
:AHTUNG: заполни
BotToken
иDbConnection
!cat > .env << EOF BotToken=todo AblyToken=todo DataBaseName=todo DbConnection=todo EOF
-
скопировать
.env
в папкуdeploy
:cp .env deploy/.env
-
перейти в
deploy
и запустить программу:cd deploy nohup ./agent-discord-bot &
# прибить процесс программы:
ps ax | grep agent-discord-bot | grep -v grep | awk '{ print $1 }' | xargs -n1 kill
cd ~/agent-discord-bot/deploy
rm -r -f * .*
# скачать артефакт
curl \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/gretmn102/agent-discord-bot/actions/artifacts | \
jq -r '.artifacts[0].archive_download_url' | \
curl \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token $github_workflow_token" \
-H "X-GitHub-Api-Version: 2022-11-28" \
-L \
--url "$(</dev/stdin)" |\
bsdtar -xf-
chmod u+x agent-discord-bot
cp ../.env .env
nohup ./agent-discord-bot &