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

使用GitHub Actions部署Azure App Service时找不到工件问题

解决GitHub Actions部署Spring Boot到Azure App Service时的"找不到工件"错误

构建流程执行成功,但部署步骤报错Error: Unable to find any artifacts for the associated workflow.,结合你的工作流配置,问题主要出在工件路径匹配和部署阶段的文件定位上,以下是具体修复方案:

1. 确认Maven生成正确的WAR文件

很多Spring Boot项目默认打包为JAR,需先在pom.xml中明确指定打包类型:

<packaging>war</packaging>

如果需要适配Azure App Service的容器,可额外添加排除内嵌Tomcat的配置(可选):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

2. 修正工作流路径配置

构建阶段:优化上传路径并添加文件验证

原上传路径可简化,同时新增一步验证WAR文件是否生成,避免空上传:

- name: Verify WAR file exists
  run: ls -la target/

- name: Upload artifact for deployment job
  uses: actions/upload-artifact@v3
  with:
    name: java-app
    path: target/*.war

部署阶段:修正部署包路径

下载工件后,文件会存放在当前工作目录的java-app子文件夹下(对应artifact名称),原配置中package: '*.war'会在根目录查找,自然找不到文件,需修改为:

- name: Deploy to Azure Web App
  id: deploy-to-webapp
  uses: azure/webapps-deploy@v2
  with:
    app-name: 'webApp12dg'
    slot-name: 'Production'
    publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_F2A6B2A7E43B4D568F7E92A0E5D97521 }}
    package: java-app/*.war

完整修复后的工作流配置

# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy WAR app to Azure Web App - webApp12dg

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Set up Java version
        uses: actions/setup-java@v1
        with:
          java-version: '17'

      - name: Build with Maven
        run: mvn clean install

      - name: Verify WAR file exists
        run: ls -la target/

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v3
        with:
          name: java-app
          path: target/*.war

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v3
        with:
          name: java-app

      - name: Deploy to Azure Web App
        id: deploy-to-webapp
        uses: azure/webapps-deploy@v2
        with:
          app-name: 'webApp12dg'
          slot-name: 'Production'
          publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_F2A6B2A7E43B4D568F7E92A0E5D97521 }}
          package: java-app/*.war

额外排查点

  • 查看构建日志中"Upload artifact for deployment job"步骤的输出,确认是否成功上传文件
  • 查看部署日志中"Download artifact from build job"步骤的输出,确认是否成功下载文件
  • 如果Maven配置了<finalName>自定义文件名,需确保path和package中的路径匹配该文件名

GitHub错误追踪截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:17:49