modified: .github/workflows/build_docker.yml

This commit is contained in:
elseif
2026-08-05 01:36:43 +08:00
parent 3dc5e43434
commit e29a43041c

View File

@@ -14,7 +14,7 @@ jobs:
Prepare: Prepare:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
outputs: outputs:
MATRIX: ${{ steps.get_versions.outputs.MATRIX }} MATRIX: ${{ steps.filter_matrix.outputs.MATRIX }}
steps: steps:
- name: Get versions and generate matrix - name: Get versions and generate matrix
id: get_versions id: get_versions
@@ -51,6 +51,40 @@ jobs:
echo "Generated matrix: $MATRIX" echo "Generated matrix: $MATRIX"
echo "MATRIX=$MATRIX" >> $GITHUB_OUTPUT echo "MATRIX=$MATRIX" >> $GITHUB_OUTPUT
- name: Log in to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Filter already-published versions from matrix
id: filter_matrix
env:
IMAGE: "ghcr.io/${{ github.repository_owner }}/chr"
run: |
MATRIX='${{ steps.get_versions.outputs.MATRIX }}'
FILTERED='[]'
while read -r row; do
VERSION=$(echo "$row" | jq -r '.version')
CHANNEL=$(echo "$row" | jq -r '.channel')
set +e
docker manifest inspect "${IMAGE}:${VERSION}" >/dev/null 2>&1
RET=$?
set -e
if [ "$RET" -eq 0 ]; then
echo "Skipping already published version: ${VERSION}"
else
FILTERED=$(echo "$FILTERED" | jq -c --arg VERSION "$VERSION" --arg CHANNEL "$CHANNEL" '. + [{"version": $VERSION, "channel": $CHANNEL}]')
fi
done < <(echo "$MATRIX" | jq -c '.[]')
echo "Filtered matrix: $FILTERED"
echo "MATRIX=$FILTERED" >> "$GITHUB_OUTPUT"
Build: Build:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
needs: Prepare needs: Prepare
@@ -72,6 +106,13 @@ jobs:
echo "Version: ${{ env.VERSION }}" echo "Version: ${{ env.VERSION }}"
echo "Channel: ${{ env.CHANNEL }}" echo "Channel: ${{ env.CHANNEL }}"
- name: Log in to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Download CHR image - name: Download CHR image
run: | run: |
# x86 架构 # x86 架构
@@ -187,13 +228,6 @@ jobs:
ENTRYPOINT ["/start.sh"] ENTRYPOINT ["/start.sh"]
EOF EOF
- name: Log in to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v4 uses: docker/setup-qemu-action@v4