Files
devenv/.github/workflows/push-image.yaml
T

76 lines
2.7 KiB
YAML

name: Push Cross-Compiled Image to Gitea Registry
permissions:
contents: read
on:
workflow_dispatch:
inputs:
platform:
description: "Target platform"
required: true
type: choice
options: [rk3588, rk3576]
default: rk3576
ros_distro:
description: "ROS 2 distribution"
required: true
type: choice
options: [rolling, jazzy, lyrical]
default: lyrical
jobs:
push:
runs-on: ubuntu-22.04 # 换成你实际能正常调度的label
env:
PLATFORM: ${{ inputs.platform }}
ROS_DISTRO: ${{ inputs.ros_distro }}
steps:
- name: Check local image exists
run: |
IMAGE="${PLATFORM}/cc-ros-${ROS_DISTRO}:latest"
echo "IMAGE=${IMAGE}" >> $GITHUB_ENV
if ! docker image inspect "${IMAGE}" > /dev/null 2>&1; then
echo "❌ 本地找不到镜像 ${IMAGE},请先跑构建 workflow"
exit 1
fi
echo "✅ 找到本地镜像 ${IMAGE}"
docker inspect --format='Size: {{.Size}} bytes' "${IMAGE}"
- name: Check token is set
env:
GITEA_TOKEN: ${{ secrets.ERIC_TOKEN }}
run: |
if [ -z "$GITEA_TOKEN" ]; then
echo "❌ ERIC_TOKEN 是空的,检查secret名字"
exit 1
fi
echo "✅ token长度: ${#GITEA_TOKEN}"
- name: Log in to Gitea Container Registry
env:
GITEA_TOKEN: ${{ secrets.ERIC_TOKEN }}
run: |
echo "${GITEA_TOKEN}" | docker login localhost:3000 -u EricXZ --password-stdin
- name: Tag image for registry
run: |
SHA8=$(echo "${GITHUB_SHA}" | cut -c1-8)
echo "SHA8=${SHA8}" >> $GITHUB_ENV
docker tag "${IMAGE}" "localhost:3000/xixing-tech/cc-ros-${ROS_DISTRO}:${PLATFORM}-latest"
docker tag "${IMAGE}" "localhost:3000/xixing-tech/cc-ros-${ROS_DISTRO}:${PLATFORM}-${SHA8}"
- name: Push image to Gitea registry
run: |
docker push "localhost:3000/xixing-tech/cc-ros-${ROS_DISTRO}:${PLATFORM}-latest"
docker push "localhost:3000/xixing-tech/cc-ros-${ROS_DISTRO}:${PLATFORM}-${SHA8}"
- name: Summary
if: always()
run: |
echo "### Pushed Image 🚀" >> $GITHUB_STEP_SUMMARY
echo "| tag | size |" >> $GITHUB_STEP_SUMMARY
echo "|---|---|" >> $GITHUB_STEP_SUMMARY
echo "| \`localhost:3000/xixing-tech/cc-ros-${ROS_DISTRO}:${PLATFORM}-latest\` | $(docker inspect --format='{{.Size}}' "${IMAGE}") bytes |" >> $GITHUB_STEP_SUMMARY
echo "| \`localhost:3000/xixing-tech/cc-ros-${ROS_DISTRO}:${PLATFORM}-${SHA8}\` | 同上 |" >> $GITHUB_STEP_SUMMARY