mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-12 12:47:25 +08:00
Update docker workflow (#1217)
1. push all supported platform 2. support unstable tag
This commit is contained in:
18
.github/workflows/Dockerfile
vendored
18
.github/workflows/Dockerfile
vendored
@@ -10,8 +10,24 @@ RUN ARTIFACT_ARCH=""; \
|
|||||||
ARTIFACT_ARCH="x86_64"; \
|
ARTIFACT_ARCH="x86_64"; \
|
||||||
elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
|
elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
|
||||||
ARTIFACT_ARCH="aarch64"; \
|
ARTIFACT_ARCH="aarch64"; \
|
||||||
|
elif [ "$TARGETPLATFORM" = "linux/riscv64" ]; then \
|
||||||
|
ARTIFACT_ARCH="riscv64"; \
|
||||||
|
elif [ "$TARGETPLATFORM" = "linux/mips" ]; then \
|
||||||
|
ARTIFACT_ARCH="mips"; \
|
||||||
|
elif [ "$TARGETPLATFORM" = "linux/mipsel" ]; then \
|
||||||
|
ARTIFACT_ARCH="mipsel"; \
|
||||||
|
elif [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then \
|
||||||
|
ARTIFACT_ARCH="armv7hf"; \
|
||||||
|
elif [ "$TARGETPLATFORM" = "linux/arm/v6" ]; then \
|
||||||
|
ARTIFACT_ARCH="armhf"; \
|
||||||
|
elif [ "$TARGETPLATFORM" = "linux/arm/v5" ]; then \
|
||||||
|
ARTIFACT_ARCH="arm"; \
|
||||||
|
elif [ "$TARGETPLATFORM" = "linux/arm" ]; then \
|
||||||
|
ARTIFACT_ARCH="armv7"; \
|
||||||
|
elif [ "$TARGETPLATFORM" = "linux/loong64" ]; then \
|
||||||
|
ARTIFACT_ARCH="loongarch64"; \
|
||||||
else \
|
else \
|
||||||
echo "Unsupported architecture: $TARGETARCH"; \
|
echo "Unsupported architecture: $TARGETPLATFORM"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi; \
|
fi; \
|
||||||
cp /tmp/artifacts/easytier-linux-${ARTIFACT_ARCH}/* /tmp/output;
|
cp /tmp/artifacts/easytier-linux-${ARTIFACT_ARCH}/* /tmp/output;
|
||||||
|
|||||||
42
.github/workflows/docker.yml
vendored
42
.github/workflows/docker.yml
vendored
@@ -18,6 +18,11 @@ on:
|
|||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
required: true
|
required: true
|
||||||
|
mark_unstable:
|
||||||
|
description: 'Mark this image as unstable'
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
required: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
docker:
|
docker:
|
||||||
@@ -27,6 +32,13 @@ jobs:
|
|||||||
-
|
-
|
||||||
name: Checkout
|
name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Validate inputs
|
||||||
|
run: |
|
||||||
|
if [[ "${{ inputs.mark_latest }}" == "true" && "${{ inputs.mark_unstable }}" == "true" ]]; then
|
||||||
|
echo "Error: mark_latest and mark_unstable cannot both be true"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
-
|
-
|
||||||
name: Set up QEMU
|
name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v3
|
uses: docker/setup-qemu-action@v3
|
||||||
@@ -56,14 +68,36 @@ jobs:
|
|||||||
- name: List files
|
- name: List files
|
||||||
run: |
|
run: |
|
||||||
ls -l -R .
|
ls -l -R .
|
||||||
|
- name: Prepare Docker tags
|
||||||
|
id: tags
|
||||||
|
run: |
|
||||||
|
# Base tags with version
|
||||||
|
DOCKERHUB_TAGS="easytier/easytier:${{ inputs.image_tag }}"
|
||||||
|
GHCR_TAGS="ghcr.io/easytier/easytier:${{ inputs.image_tag }}"
|
||||||
|
|
||||||
|
# Add latest tags if requested
|
||||||
|
if [[ "${{ inputs.mark_latest }}" == "true" ]]; then
|
||||||
|
DOCKERHUB_TAGS="${DOCKERHUB_TAGS},easytier/easytier:latest"
|
||||||
|
GHCR_TAGS="${GHCR_TAGS},ghcr.io/easytier/easytier:latest"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add unstable tags if requested
|
||||||
|
if [[ "${{ inputs.mark_unstable }}" == "true" ]]; then
|
||||||
|
DOCKERHUB_TAGS="${DOCKERHUB_TAGS},easytier/easytier:unstable"
|
||||||
|
GHCR_TAGS="${GHCR_TAGS},ghcr.io/easytier/easytier:unstable"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Combine all tags
|
||||||
|
ALL_TAGS="${DOCKERHUB_TAGS},${GHCR_TAGS}"
|
||||||
|
|
||||||
|
echo "tags=${ALL_TAGS}" >> $GITHUB_OUTPUT
|
||||||
|
echo "Generated tags: ${ALL_TAGS}"
|
||||||
-
|
-
|
||||||
name: Build and push
|
name: Build and push
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: ./docker_context
|
context: ./docker_context
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64,linux/riscv64,linux/mips,linux/mipsel,linux/arm/v7,linux/arm/v6,linux/arm/v5,linux/arm,linux/loong64
|
||||||
push: true
|
push: true
|
||||||
file: .github/workflows/Dockerfile
|
file: .github/workflows/Dockerfile
|
||||||
tags: |
|
tags: ${{ steps.tags.outputs.tags }}
|
||||||
easytier/easytier:${{ inputs.image_tag }}${{ inputs.mark_latest && ',easytier/easytier:latest' || '' }},
|
|
||||||
ghcr.io/easytier/easytier:${{ inputs.image_tag }}${{ inputs.mark_latest && ',easytier/easytier:latest' || '' }},
|
|
||||||
|
|||||||
Reference in New Issue
Block a user