GitHub 操作:每个步骤都必须定义一个 `uses` 或 `运行` 键

GitHub Actions: every step must define a `uses` or `run` key

我想设置github操作

我设法使第二步和第三步正常工作,但现在结合第一步后出现问题。

 - name: Cache Nuget
    - uses: actions/cache@v1
      with:
        path: ~/.nuget/packages
        key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
        restore-keys: |
          ${{ runner.os }}-nuget-

我试着把它放在 - uses: actions/checkout@v2 之后,但它抛出以下错误。

every step must define a `uses` or `run` key
   ...
   steps:
    - uses: actions/checkout@v2
    - name: Cache Nuget
    - uses: actions/cache@v1
      with:
        path: ~/.nuget/packages
        key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
        restore-keys: |
          ${{ runner.os }}-nuget-
    - name: Setup .NET
      uses: actions/setup-dotnet@v1
    ...

我做错了什么?

感谢您的帮助。

这是完整配置。

name: Build and Tests

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Cache Nuget
    - uses: actions/cache@v1
      with:
        path: ~/.nuget/packages
        key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
        restore-keys: |
          ${{ runner.os }}-nuget-
    - name: Setup .NET
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 5.0.x
    - name: Restore dependencies
      run: dotnet restore
    - name: Build
      run: dotnet build --configuration Release --no-restore
    - name: Run Tests
      run: dotnet test --configuration Release --no-build --verbosity minimal /p:CollectCoverage=true /p:CoverletOutput=TestResults/ /p:CoverletOutputFormat=lcov
    - name: Publish coverage report to coveralls.io   
      uses: coverallsapp/github-action@master   
      with:
       github-token: ${{ secrets.GITHUB_TOKEN }} 
       path-to-lcov: Tests/App.Tests/TestResults/coverage.info 

您的格式已关闭。仅在第一行使用破折号,如下所示:

- uses: actions/checkout@v2
- name: Cache Nuget
  uses: actions/cache@v1

如果您还在最后一行前面加上破折号 (-),则 GitHub 认为 name 是一个单独的步骤,它不知道如何处理它。但是,不使用破折号意味着 usesname.

属于同一步骤