You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Maven GitHub Actions下载GitHub Packages最新Jar并部署至Cloud Hub

前置配置

你需要先在GitHub仓库的「Settings - Secrets and variables - Actions」中新增以下密钥:

  • CLOUDHUB_USERNAME:CloudHub登录账号
  • CLOUDHUB_PASSWORD:CloudHub登录密码
  • CLOUDHUB_ENV:目标部署环境(如Sandbox)
  • CLOUDHUB_APP_NAME:你的Mule应用在CloudHub中的唯一名称
    同时确认你的项目pom.xml中已经正确配置了mule-maven-plugin,且插件配置中已支持读取环境变量作为认证参数。
方案1:直接复用当前工作流,构建完成后直接部署到CloudHub

该方案不需要额外下载包/源码,直接复用构建阶段生成的jar完成部署,流程最简效率最高。
修改后的完整工作流代码如下:

name: GitHub Packages, Releases and CloudHub Deployment with Java CI with Maven
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up JDK 11
      uses: actions/setup-java@v4
      with:
        java-version: '11'
        distribution: 'temurin'
        server-id: github # 对应pom.xml里的server id,用于推送包到GitHub Packages
        server-username: GITHUB_ACTOR
        server-password: GITHUB_TOKEN
    - name: Build with Maven
      run: mvn -B package --file pom.xml
    - name: Upload build artifact
      uses: actions/upload-artifact@v4
      with:
        name: mule-app-jar
        path: target/*.jar # 请根据你实际的jar输出路径调整

  Publish:
    needs: build
    runs-on: ubuntu-latest
    permissions:
      contents: write
      packages: write
    steps:
      - uses: actions/checkout@v4
      - name: Download build artifact
        uses: actions/download-artifact@v4
        with:
          name: mule-app-jar
          path: target/
      - name: Set up JDK 11
        uses: actions/setup-java@v4
        with:
          java-version: '11'
          distribution: 'temurin'
          server-id: github
          server-username: GITHUB_ACTOR
          server-password: GITHUB_TOKEN
      - name: Push to GitHub Packages
        run: mvn deploy -DskipTests
        env:
          GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }}
      - name: Create GitHub Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }}
        with:
          tag_name: v${{ github.run_number }}
          release_name: Release v${{ github.run_number }}
          draft: false
          prerelease: false
      - name: Upload Jar to Release
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: target/hello-world-mule.jar # 请替换为你实际的jar文件名
          asset_name: hello-world-mule-v${{ github.run_number }}.jar
          asset_content_type: application/java-archive

  deploy-to-cloudhub:
    needs: Publish
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Download build artifact
        uses: actions/download-artifact@v4
        with:
          name: mule-app-jar
          path: target/
      - name: Set up JDK 11
        uses: actions/setup-java@v4
        with:
          java-version: '11'
          distribution: 'temurin'
      - name: Deploy to CloudHub with Maven
        run: mvn mule:deploy -Dmule.username=${{ secrets.CLOUDHUB_USERNAME }} -Dmule.password=${{ secrets.CLOUDHUB_PASSWORD }} -Dmule.env=${{ secrets.CLOUDHUB_ENV }} -Dmule.app.name=${{ secrets.CLOUDHUB_APP_NAME }} -DskipTests
方案2:从GitHub Packages下载Jar部署

如果你需要单独的部署工作流,不需要和构建发布绑定,可参考以下配置:

name: Deploy Mule App to CloudHub from GitHub Packages
on:
  workflow_dispatch: # 手动触发
  inputs:
    package_version:
      description: 要部署的包版本号
      required: true
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up JDK 11
        uses: actions/setup-java@v4
        with:
          java-version: '11'
          distribution: 'temurin'
          server-id: github
          server-username: GITHUB_ACTOR
          server-password: GITHUB_TOKEN
      - name: Download Jar from GitHub Packages
        run: |
          mvn dependency:get \
          -DgroupId=你的groupId \
          -DartifactId=你的artifactId \
          -Dversion=${{ github.event.inputs.package_version }} \
          -Dpackaging=jar \
          -DrepoUrl=https://maven.pkg.github.com/你的GitHub用户名/你的仓库名
        env:
          GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }}
      - name: Deploy to CloudHub
        run: mvn mule:deploy -Dmule.username=${{ secrets.CLOUDHUB_USERNAME }} -Dmule.password=${{ secrets.CLOUDHUB_PASSWORD }} -Dmule.env=${{ secrets.CLOUDHUB_ENV }} -Dmule.app.name=${{ secrets.CLOUDHUB_APP_NAME }} -DskipTests
方案3:从GitHub Release拉取源码压缩包构建后部署

如果需要从Release的源码包构建再部署,可参考以下步骤配置部署工作流:

  • 先通过GitHub API获取指定版本Release的源码压缩包下载地址
  • 下载解压源码后执行Maven构建和部署命令即可

内容的提问来源于stack exchange,提问作者anonymous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:27:04