Предисловие
Поиск новой работы заставил меня задуматься над смыслом выражения "Сапожник без сапог". Будучи Java Backend Developer с 3-ех летним стажем я не имею на руках ни одного законченного Pet проекта. Конечно, на GitHub как и у многих у меня имеются небольшие проекты, но они не доведены до конца и кроме того как просто висеть на доске "почета" они больше ничего и не могут. С этой мыслёй я пошел в интернет гуглить "как мне задеплоить свое Java приложение?".
Скажу сразу, это статья содержит шаги по развертыванию Java приложения с помощью GitHub Actions на серверах AWS EC2 и это моя интрерпретация тех инструкций, которые я находил в интернете. Собственно это статья содержит для новичков, кто просто не делал никогда деплой своего приложения, но очень хочет в сжатые сроки похвастаться своим результатом.
В этой статье я расскажу как можно свой проект добавить в GitHub репозиторий, чтобы потом на основе его сделать CI/CD пайплайн, который и сделает деплой нашего приложения.
Первые шаги
Первый шаг это, соответственно, написать свое Java приложение с Spring Boot. Пусть это будет statefull сервис, но пока мы не будем добавлять никакую базу данных, ее подключением займемся в следующей части. Думаю что сделать сервис вы сможете и сами, но на всякий случай здесь будет представлен пример.
GitHub
После того как вы создали приложение в своей idea, его нужно закомитить в GitHub Для начала нужно создать готовый репозиторий, для этого перейдите по ссылке и пройдите авторизацию (если вы еще не зарегестрированы). После авторизации вы попадете на главный экран. Для создания репозитория в левой части главной страницы нажимаем на зеленую кнопку (как на картинке).
![Вот эта зеленая кнопка Вот эта зеленая кнопка](https://habrastorage.org/getpro/habr/upload_files/c29/01d/da6/c2901dda6238ee455b33483e2929e246.png)
На странице создания репозитория указываем имя приложения (поле на картинке) и кликаем на кнопку "Create repository".
![Заполняем вот это поле, опционально можно и Description, но это не обязательно Заполняем вот это поле, опционально можно и Description, но это не обязательно](https://habrastorage.org/getpro/habr/upload_files/44d/13d/8a9/44d13d8a97d47276ee5879b705bc2998.png)
В открывшемся окне нужно будет сохранить ссылку на ваш проект в GitHub куда-нибудь в текстовый редактор, чтобы потом привязать ваш репозиторий к вашему локальному проекту.
![Копируйте именно HTTPS ссылку, не ssh Копируйте именно HTTPS ссылку, не ssh](https://habrastorage.org/getpro/habr/upload_files/b30/e60/a0f/b30e60a0f3d7734b4ef42185dea37aea.png)
Теперь чтобы можно было локально работать с репозиторием GitHub нужно сгенерировать token для доступа к проекту. Для этого нажимаем на вашу иконку в правом верхнем углу и нажимаем на "Settings".
![Вот так должна выглядеть кнопка Вот так должна выглядеть кнопка](https://habrastorage.org/getpro/habr/upload_files/6b9/974/57e/6b997457eceb0cd7166a453a44224905.png)
Далее в левой части меню мотаем вниз до кнопки "Developer settings" и жмем на нее.
![Выглядит она вот так Выглядит она вот так](https://habrastorage.org/getpro/habr/upload_files/fe3/d5c/7a5/fe3d5c7a54952b5f4e75bb50bfe41a75.png)
Далее в левой части экрана жмем на "Personal access tokens"->"Tokens (classic)".
![Выглядит это вот так Выглядит это вот так](https://habrastorage.org/getpro/habr/upload_files/280/5b5/38a/2805b538ae81fb888b60f1972f40599d.png)
Далее в средней панеле ищем кнопку "Generate new token" и жмем на нее и выбираем "Generate new token (classic)".
![Нажимаем на вторую копку :) Нажимаем на вторую копку :)](https://habrastorage.org/getpro/habr/upload_files/322/358/8b3/3223588b3733d81205a3b62f6551f363.png)
В открывшимся окне вводите название вашего токена, указываете количество дней, которое будет жить ваш токен, проставляете все галки и нажимаете на кнопку зеленую "Generate token" в конце страницы. После вас перенесет на страницу где будет указан ваш токен. Обязательно его сохраните куда-то, потому что более вы его не увидите и вам нужно будет гененировать новый токен.
![Токен выглядит примерно вот так и его нужно обязательно сохранить Токен выглядит примерно вот так и его нужно обязательно сохранить](https://habrastorage.org/getpro/habr/upload_files/825/67e/7a2/82567e7a2c29caf9810e0066390d7ff3.png)
Далее переходите в свой проект в idea (я разрабатываю в Intellij IDEA) и введите в консоли из корня своего проекта следующие команды.
// инициализирует репозиторий гит в вашем проекте
git init
// добавляем все измененные файлы в вашем проекте из корневой папки
git add .
// делаем первый коммит вашего приложения
git commit -m "first commit"
// привязываем ссылку проекта из GitHub к вашему локальному проекту
// (вместо add_url вставьте ссылку)
git remote add origin add_url
// создаем ветку main в вашем проекте
git branch -M main
// отправляем коммит в репозиторий на GitHub
git push -u origin main
// вам предложат ввести логин и пароль, вводим в логин юзера, под которым
// вы входите в GitHub, в качестве пароля вводите ранее сгенерированный токен
Все, теперь перейдя в ваш проект вы сможете увидеть свои изменения и когда будете делать какой-то коммит в вашем локальном проекте, изменения сразу попадут в GitHub!
Наверно для первой части этого будет достаточно, во второй части я опишу что такое GitHub Actions, опишу как сформировать первый образ Docker и как закинуть свой образ в DockerHub.
Оставляйте комментарии, и удачи!
MaxTechProgJava
Заинтересовал конечным результатом, но в 2023 писать статью как запушить проект на Git... ну такое. Начал бы сразу с мяса