38 lines
1.5 KiB
YAML
38 lines
1.5 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: Setup Local Bridge
|
||
run: |
|
||
# Очищаем старые контейнеры
|
||
docker rm -f bridge || true
|
||
# Создаем туннель localhost:8080 -> Gitea:3000
|
||
# Мы используем localhost, чтобы обойти проверку HTTPS
|
||
docker run -d --name bridge --network host --rm alpine sh -c "apk add socat && socat TCP-LISTEN:8080,fork,reuseaddr TCP:172.17.0.6:3000"
|
||
sleep 5
|
||
|
||
- name: Log in to Gitea Registry
|
||
run: |
|
||
# Теперь, благодаря LOCAL_ROOT_URL, Gitea пришлет токен по внутреннему адресу
|
||
echo "${{ secrets.GIT_TOKEN }}" | docker login localhost:8080 -u ${{ secrets.GIT_USERNAME }} --password-stdin
|
||
|
||
- name: Build and Push
|
||
run: |
|
||
# Сборка и отправка
|
||
docker build -t localhost:8080/poignatov/play-life:latest .
|
||
docker push localhost:8080/poignatov/play-life:latest
|
||
|
||
# Дополнительный тег с SHA коммита
|
||
docker tag localhost:8080/poignatov/play-life:latest localhost:8080/poignatov/play-life:${{ github.sha }}
|
||
docker push localhost:8080/poignatov/play-life:${{ github.sha }} |