42 lines
1.8 KiB
YAML
42 lines
1.8 KiB
YAML
name: Build and Push Docker Image
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
build-and-push:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Patch DNS for Local Network
|
|
run: |
|
|
# Мы говорим системе раннера: "Если ищешь домен, иди на локальный IP Synology"
|
|
# Это позволит пройти проверку SSL (имя совпадает), но пакеты пойдут по локалке.
|
|
sudo echo "192.168.50.55 dungeonsiege.synology.me" | sudo tee -a /etc/hosts
|
|
|
|
# Проверка связи (опционально, для отладки)
|
|
ping -c 2 dungeonsiege.synology.me
|
|
|
|
- name: Log in to Gitea Registry
|
|
run: |
|
|
# Логинимся стандартной командой. Она увидит запись в hosts и пойдет на 192.168.50.55
|
|
echo "${{ secrets.GIT_TOKEN }}" | docker login dungeonsiege.synology.me -u ${{ secrets.GIT_USERNAME }} --password-stdin
|
|
|
|
- name: Build Image
|
|
run: |
|
|
# Собираем обычным способом. Здесь интернет БУДЕТ работать.
|
|
docker build -t dungeonsiege.synology.me/poignatov/play-life:latest .
|
|
|
|
- name: Push Image
|
|
run: |
|
|
# Отправляем образ. Благодаря шагу Patch DNS, он улетит на локальный IP.
|
|
docker push dungeonsiege.synology.me/poignatov/play-life:latest
|
|
|
|
# Тэгируем версию коммита
|
|
docker tag dungeonsiege.synology.me/poignatov/play-life:latest dungeonsiege.synology.me/poignatov/play-life:${{ github.sha }}
|
|
docker push dungeonsiege.synology.me/poignatov/play-life:${{ github.sha }} |