mirror of
https://github.com/elseif/MikroTikPatch.git
synced 2026-09-07 22:36:52 +00:00
modified: .github/workflows/build_docker.yml
This commit is contained in:
50
.github/workflows/build_docker.yml
vendored
50
.github/workflows/build_docker.yml
vendored
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user