From cdedd3e4710e211b3edb9cd3a0b334be560f9c7c Mon Sep 17 00:00:00 2001 From: herryyun <3209851541@qq.com> Date: Thu, 11 Sep 2025 09:36:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20.gitea/workflows/build-ima?= =?UTF-8?q?ge.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build-image.yml | 93 ++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .gitea/workflows/build-image.yml diff --git a/.gitea/workflows/build-image.yml b/.gitea/workflows/build-image.yml new file mode 100644 index 0000000..562577a --- /dev/null +++ b/.gitea/workflows/build-image.yml @@ -0,0 +1,93 @@ +name: Build Gradle Dragonwell Image + +on: + push: + paths: + - '.gitea/workflows/build-image.yml' + - 'Dockerfile' + - 'config/**' + workflow_dispatch: + inputs: + gradle_version: + description: 'Gradle版本' + required: true + default: '8.5' + type: string + +env: + REGISTRY: git.crash.work + IMAGE_NAME: gradle-dragonwell + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set Gradle version + id: gradle + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + GRADLE_VERSION="${{ github.event.inputs.gradle_version }}" + else + # 推送触发时使用默认版本 + GRADLE_VERSION="8.5" + fi + + echo "version=${GRADLE_VERSION}" >> $GITHUB_OUTPUT + echo "📦 使用Gradle版本: ${GRADLE_VERSION}" + + - name: Login to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + platforms: linux/amd64 + build-args: | + GRADLE_VERSION=${{ steps.gradle.outputs.version }} + push: true + tags: | + ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:gradle${{ steps.gradle.outputs.version }} + ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest + labels: | + org.opencontainers.image.title=Gradle Dragonwell + org.opencontainers.image.description=Gradle ${{ steps.gradle.outputs.version }} with Alibaba Dragonwell 21 + org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} + org.opencontainers.image.revision=${{ github.sha }} + gradle.version=${{ steps.gradle.outputs.version }} + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Test built image + run: | + echo "🧪 测试构建的镜像..." + docker run --rm ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest java -version + docker run --rm ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest gradle --version + + - name: Generate summary + run: | + echo "## 🚀 镜像构建完成" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 镜像信息" >> $GITHUB_STEP_SUMMARY + echo "- **Gradle版本**: ${{ steps.gradle.outputs.version }}" >> $GITHUB_STEP_SUMMARY + echo "- **镜像名称**: \`${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}\`" >> $GITHUB_STEP_SUMMARY + echo "- **触发原因**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY + echo "" >> $GITHUB_STEP_SUMMARY + echo "### 使用方法" >> $GITHUB_STEP_SUMMARY + echo '```bash' >> $GITHUB_STEP_SUMMARY + echo "docker pull ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest" >> $GITHUB_STEP_SUMMARY + echo "docker run --rm -v \$(pwd):/workspace -w /workspace \\" >> $GITHUB_STEP_SUMMARY + echo " ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}:latest \\" >> $GITHUB_STEP_SUMMARY + echo " gradle build --no-daemon" >> $GITHUB_STEP_SUMMARY + echo '```' >> $GITHUB_STEP_SUMMARY \ No newline at end of file