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.13' type: string env: REGISTRY: git.crash.work IMAGE_NAME: gradle-dragonwell jobs: build: runs-on: self_website steps: - name: Setup Git auth run: | git config --global http.extraheader "Authorization: token ${{ secrets.TOKEN }}" - name: Checkout repository uses: docker/checkout@v4 with: token: ${{ secrets.TOKEN }} - 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: 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