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 with: fetch-depth: 2 - name: Get versions and check change id: version_check run: | # Извлекаем текущую версию CUR=$(cat VERSION | tr -d '[:space:]') echo "current=$CUR" >> $GITHUB_OUTPUT # Безопасно извлекаем старую версию PREV=$(git show HEAD~1:VERSION 2>/dev/null | tr -d '[:space:]' || echo "none") if [ "$CUR" != "$PREV" ]; then echo "changed=true" >> $GITHUB_OUTPUT else echo "changed=false" >> $GITHUB_OUTPUT fi - name: Patch DNS for Local Network if: steps.version_check.outputs.changed == 'true' run: | # Записываем IP Synology прямо в контейнер сборки echo "192.168.50.55 dungeonsiege.synology.me" | sudo tee -a /etc/hosts - name: Log in to Gitea Registry if: steps.version_check.outputs.changed == 'true' run: | echo "${{ secrets.GIT_TOKEN }}" | docker login dungeonsiege.synology.me -u ${{ secrets.GIT_USERNAME }} --password-stdin - name: Build and Push if: steps.version_check.outputs.changed == 'true' run: | REGISTRY="dungeonsiege.synology.me/poignatov/play-life" VER="${{ steps.version_check.outputs.current }}" # Собираем один раз docker build -t $REGISTRY:latest -t $REGISTRY:$VER . # Пушим оба тега docker push $REGISTRY:latest docker push $REGISTRY:$VER