GitHub Actions部署Azure Web App时无法找到java-app工件求助
问题排查与解决方案
核心原因
使用workflow_run触发部署Workflow时,默认情况下部署流程无法直接访问构建Workflow上传的工件——两者属于不同的Workflow运行上下文,必须显式指定从触发当前部署的构建运行实例中下载工件。
修复步骤
1. 修改部署Workflow的工件下载步骤
在actions/download-artifact步骤中添加run-id参数,指定为触发部署的构建Workflow的运行ID,使用github.event.workflow_run.id变量获取,同时建议添加构建成功的条件判断,避免失败构建触发无效部署:
name: Deploy JAR app to Azure Web App - kobeodbCR-backend on: workflow_run: workflows: ["Build JAR app - kobeodbCR-backend"] types: - completed jobs: deploy: runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Download artifact from build job uses: actions/download-artifact@v4 with: name: java-app run-id: ${{ github.event.workflow_run.id }} github-token: ${{ secrets.GITHUB_TOKEN }} - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: "kobeodbCR-backend" slot-name: "Production" package: "*.jar" publish-profile: ${{ ... }}
2. 额外排查点
- 确认构建工件上传状态:进入构建Workflow的运行记录,查看
Upload artifact for deployment job步骤的日志,确认java-app工件已成功上传,且包含目标JAR文件。 - 校验工件名称一致性:确保构建和部署Workflow中指定的工件名称
java-app完全一致(GitHub工件名称区分大小写)。 - 验证JAR生成路径:在构建Workflow的
Build with Maven步骤后添加ls -la target/命令,确认mvn clean install确实在target目录下生成了JAR文件。
内容的提问来源于stack exchange,提问作者Kobe Op de Beeck
相关产品推荐
相关产品推荐

