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

GitHub Actions配置报YAML映射项缩进错误,- name: Build docker行如何修复

修复方案

根因

该报错由YAML缩进层级不匹配导致,你的配置文件存在多处缩进错误:

  1. steps 下的所有步骤项需要对齐到同一缩进层级,原配置中首个步骤 - uses: actions/checkout@v2 是steps的子元素,后续的 - name: Build docker 缩进和steps平级,不属于steps数组范围,直接触发解析错误
  2. 后续Extract commit、Get branch name等步骤缩进逐层错配,部分直接和build job的顶级属性平级,完全脱离steps数组
  3. 代码中存在HTML转义符",需要替换为普通双引号"

修复后完整配置

name: CI-dev-pipeline
on:
  # Triggers the workflow on push or pull request events but only for the develop branch
  push:
    branches: [ develop ]
  pull_request:
    branches: [ develop ]
jobs:
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
    container:
      image: lucasalt/act_base:latest
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2
        with:
          path: "workflow"

      - name: Build docker
        run: | 
          echo ---Building and starting up docker---
          docker-compose -f ./workflow/docker-compose.test.yml -p testing up -d
          echo ---Containers up---
          
      - name: Run test
        run: |
          echo --- Running test cases ---
          docker-compose -f ./workflow/docker-compose.test-github.yml -p testing up --build --exit-code-from api-test
          echo --- Completed test cases ---
          
      - name: Extract commit
        shell: bash
        run: |
          echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV

      - name: Get branch name (merge)
        if: github.event_name != 'pull_request'
        shell: bash
        run: echo "BRANCH=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV

      - name: Get branch name (pull request)
        if: github.event_name == 'pull_request'
        shell: bash
        run: echo "BRANCH=$(echo ${GITHUB_HEAD_REF} | tr / -)" >> $GITHUB_ENV


      - name: Send slack notification
        if: always()
        uses: edge/simple-slack-notify@master    
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
        with:
          channel: '#deployment'
          status: ${{ job.status }}
          success_text: '${env.GITHUB_WORKFLOW} #${env.GITHUB_RUN_NUMBER} build completed successfully'
          failure_text: '${env.GITHUB_WORKFLOW} #${env.GITHUB_RUN_NUMBER} build failed'
          cancelled_text: '${env.GITHUB_WORKFLOW} #${env.GITHUB_RUN_NUMBER} build was cancelled'
          fields: |
            [{ "title": "Repository", "value": "${env.GITHUB_REPOSITORY}", "short": true },
            { "title": "Branch", "value": "${env.BRANCH}", "short": true },
            { "title": "Commit", "value": "${env.GITHUB_SHA_SHORT}", "short": true },
            { "title": "Action URL", "value": "${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}"}]

注意事项

  • YAML缩进统一使用2个空格,禁止使用Tab
  • 同一层级的配置项必须左对齐,所有-开头的步骤项缩进必须完全一致
  • 不要直接复制带HTML转义的代码,避免转义符污染配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:15:04