From 566cb31430887cde6049367f76d0a8fffcc397a4 Mon Sep 17 00:00:00 2001 From: erjemin Date: Fri, 20 Feb 2026 14:54:08 +0300 Subject: [PATCH] feat: Docker CI/CD setup, cleanup and release prep v1.0.0 --- .gitea/workflows/docker-publish.yaml | 64 ++++++++++++++++++++++++++++ .gitignore | 6 +++ 2 files changed, 70 insertions(+) create mode 100644 .gitea/workflows/docker-publish.yaml diff --git a/.gitea/workflows/docker-publish.yaml b/.gitea/workflows/docker-publish.yaml new file mode 100644 index 0000000..ed45eda --- /dev/null +++ b/.gitea/workflows/docker-publish.yaml @@ -0,0 +1,64 @@ +name: Build and Push Docker Image +run-name: Build and Push Docker Image ${{ github.ref_name }} + +on: + push: + # Запускать сборку только при создании тега, начинающегося с 'v' (например, v1.0.0, v2.3.1) + tags: + - 'v*' + +env: + REGISTRY: git.cube2.ru + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push: + runs-on: ubuntu-latest # Или метка вашего раннера, если он специфичный (например, macos или self-hosted) + + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Настройка QEMU для мультиплатформенной сборки (если нужно собирать под разные архитектуры) + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + # Настройка Docker Buildx (обязательно для build-push-action) + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + # Логин в реестр Gitea + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + # Извлечение метаданных (тегов и лейблов) для Docker + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=tag + type=raw,value=latest,enable=${{ github.ref_type == 'tag' }} + + # Сборка и отправка образа + - name: Build and push Docker image + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile + push: true + # Собираем под текущую архитектуру (linux/amd64). + # Если сервер и MacMini на разных архитектурах (x86 vs ARM), добавьте нужные, например: linux/amd64,linux/arm64 + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + diff --git a/.gitignore b/.gitignore index b6b6ad4..c189462 100644 --- a/.gitignore +++ b/.gitignore @@ -261,3 +261,9 @@ cython_debug/ # Мы игнорируем содержимое папки public/media, но оставляем саму папку и README.md public/media/* !public/media/README.md + +# OS specific +.DS_Store + +# Data Backup +database/data.json