title: GH Actions: Github#L1 - Every step must define a `uses` or `run` key
body: <p>I'm trying to setup a deploy.yml file to automatically release my code through tags/releases. I had a working setup but reconfigured it to work with caching but through updating it, it won't work at all.</p>
  <p>The error is</p>
  <pre><code>Error: .github#L1
  every step must define a `uses` or `run` key
  </code></pre>
  <p>but from the following file, I can't see a single step that doesn't have a uses or run key field. Am I missing something? I really would appreciate any help on this</p>
  <p>Here's the workflow file that I'm using:</p>
  <pre class="lang-yaml prettyprint-override"><code>name: deploy
  
  on:
    push:
      # Sequence of patterns matched against refs/tags
      tags:
        - &quot;v*&quot; # Push events to matching v*, i.e. v1.0, v20.15.10
  
  env:
    bin: git-view
  
  jobs:
    windows:
      runs-on: windows-latest
      strategy:
        matrix:
          target:
            - x86_64-pc-windows-gnu
            - x86_64-pc-windows-msvc
  
      steps:
        - uses: actions/checkout@v3
        - name: Cache Cargo
          uses: actions/cache@v3
          with:
            path: |
              ~/.cargo/registry
              ./target
            # Example key: windows-stable-x86_64-pc-windows-gnu-3k4j234lksjfd9
            key: windows-stable-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
            restore-keys: |
              windows-stable-${{ matrix.target }}-
              windows-stable-
              windows-
        - name: Set Rust Channel
          run: rustup default stable
          shell: bash
        - name: Set Rust Target
          run: rustup target add ${{ matrix.target }}
          shell: bash
        - name: Build Release Binary
          run: cargo build --target ${{ matrix.target }} --release
          shell: bash
        - name: Compress Windows Binary
        - run: |
            cd ./target/${{ matrix.target }}/release/
            7z a &quot;${{ env.bin }}-${{ matrix.target }}.zip&quot; &quot;${{ env.bin }}.exe&quot;
            mv &quot;${{ env.bin }}-${{ matrix.target }}.zip&quot; $GITHUB_WORKSPACE
          shell: bash
        - name: Archive Windows Artifact
          uses: actions/upload-artifact@v3
          with:
            name: Windows
            path: |
              $GITHUB_WORKSPACE/${{ env.bin }}-${{ matrix.target }}.zip
  
    macos:
      runs-on: macos-latest
      strategy:
        matrix:
          target:
            - x86_64-apple-darwin
  
      steps:
        - uses: actions/checkout@v3
        - name: Cache Cargo
          uses: actions/cache@v3
          with:
            path: |
              ~/.cargo/registry
              ./target
            # Example key: macos-stable-x86_64-apple-darwin-3k4j234lksjfd9
            key: macos-stable-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
            restore-keys: |
              macos-stable-${{ matrix.target }}-
              macos-stable-
              macos-
        - name: Set Rust Channel
          run: rustup default stable 
        - name: Set Rust Target
          run: rustup target add ${{ matrix.target }}
        - name: Build Release Binary
          run: cargo build --target ${{ matrix.target }} --release
        - name: Compress macOS Binary
          run: tar -czvf ${{ env.bin }}-${{ matrix.target }}.tar.gz --directory=target/${{ matrix.target }}/release ${{ env.bin }}
        - name: Archive macOS Artifact
          uses: actions/upload-artifact@v3
          with:
            name: macOS
            path: |
              ./${{ env.bin }}-${{ matrix.target }}.tar.gz
  
    linux:
      runs-on: ubuntu-latest
      strategy:
        matrix:
          target:
            - x86_64-unknown-linux-gnu
            - x86_64-unknown-linux-musl
  
      steps:
        - uses: actions/checkout@v3
        - name: Cache Cargo
          uses: actions/cache@v3
          with:
            path: |
              ~/.cargo/registry
              ./target
            # Example key: linux-stable-x86_64-unknown-linux-gnu-3k4j234lksjfd9
            key: linux-stable-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
            restore-keys: |
              linux-stable-${{ matrix.target }}-
              linux-stable-
              linux-
        - name: Set Rust Channel
          run: rustup default stable 
        - name: Set Rust Target
          run: rustup target add ${{ matrix.target }}
        - name: Build Release Binary
          run: cargo build --target ${{ matrix.target }} --release
        - name: Compress Linux Binary
          run: tar -czvf ${{ env.bin }}-${{ matrix.target }}.tar.gz --directory=target/${{ matrix.target }}/release ${{ env.bin }}
        - name: Archive Linux Artifact
          uses: actions/upload-artifact@v3
          with:
            name: Linux
            path: |
              ./${{ env.bin }}-${{ matrix.target }}.tar.gz
  
    deploy:
      needs: [ windows, macos, linux ]
      runs-on: ubuntu-latest
  
      steps:
        - name: Download Artifacts
          uses: actions/download-artifact@v3
          with:
            path: ./artifacts
        - name: Display Structure
          run: ls -R
        - name: Release
          uses: softprops/action-gh-release@v1
          with:
            files: |
              ./artifacts/*.tar.gz
              ./artifacts/*.zip
  
    homebrew:
      needs: deploy
      runs-on: ubuntu-latest
  
      steps:
        - name: Extract Version
          run: |
            printf &quot;::set-output name=%s::%s\n&quot; tag-name &quot;${GITHUB_REF#refs/tags/}&quot;
        - uses: mislav/bump-homebrew-formula-action@v1
          if: &quot;!contains(github.ref, '-')&quot; # Skip Pre-Releases
          with:
            create-pullrequest: true
            formula-name: ${{ env.bin }}
            formula-path: Formula/${{ env.bin }}.rb
            homebrew-tap: sgoudham/homebrew-tap
            download-url: https://github.com/sgoudham/${{ env.bin }}/releases/download/${{ steps.extract-version.outputs.tag-name }}/${{ env.bin }}-x86_64-apple-darwin.tar.gz
            commit-message: |
              {{formulaName}} -&gt; {{version}}
              
              Created by https://github.com/mislav/bump-homebrew-formula-action
          env:
            COMMITTER_TOKEN: ${{ secrets.HOMEBREW }}
  </code></pre>