diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml new file mode 100644 index 0000000..d94e2a5 --- /dev/null +++ b/.gitea/workflows/release.yaml @@ -0,0 +1,52 @@ +name: "Release: ARM64 Docker Image" + +on: + push: + tags: + - "v*" + +jobs: + build-arm64: + # Нативный ARM64 runner на Orange Pi Zero 2 (aarch64) + # Сборка без QEMU-эмуляции — быстрее и стабильнее для npm install / node-gyp + runs-on: arm64 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Extract tag + id: meta + run: | + TAG=${GITHUB_REF_NAME#v} + echo "version=$TAG" >> "$GITHUB_OUTPUT" + echo "image=git.softuniq.eu/telegram-market/telegram-shop" >> "$GITHUB_OUTPUT" + + - name: Build ARM64 image + run: | + docker build \ + --file ./Dockerfile \ + --tag ${{ steps.meta.outputs.image }}:${{ steps.meta.outputs.version }} \ + --tag ${{ steps.meta.outputs.image }}:latest \ + . + + - name: Log in to Gitea Container Registry (best effort) + id: login + continue-on-error: true + uses: docker/login-action@v3 + with: + registry: git.softuniq.eu + username: ${{ github.actor }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Push image to Gitea Container Registry + if: steps.login.outcome == 'success' + run: | + docker push ${{ steps.meta.outputs.image }}:${{ steps.meta.outputs.version }} + docker push ${{ steps.meta.outputs.image }}:latest + + - name: Save image tarball + run: | + mkdir -p /tmp/release-artifacts + docker save ${{ steps.meta.outputs.image }}:${{ steps.meta.outputs.version }} \ + -o /tmp/release-artifacts/telegram-shop-arm64-${{ steps.meta.outputs.version }}.tar + ls -la /tmp/release-artifacts/