ci: ARM64 release workflow (Gitea Actions, native arm64 runner on Orange Pi)
Some checks failed
Release: ARM64 Docker Image / build-arm64 (push) Failing after 3s
Some checks failed
Release: ARM64 Docker Image / build-arm64 (push) Failing after 3s
- Runs on tag push (v*) on arm64 runner (orange-pi-arm64, label: arm64) - Native ARM64 docker build (no QEMU), consistent with prod Orange Pi Zero 2 - Best-effort push to Gitea Container Registry (git.softuniq.eu/telegram-market/telegram-shop) - Falls back to saving image tarball if registry auth unavailable
This commit is contained in:
52
.gitea/workflows/release.yaml
Normal file
52
.gitea/workflows/release.yaml
Normal file
@@ -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/
|
||||||
Reference in New Issue
Block a user