GH动作:GitHub#L1-每个步骤都必须定义`'use'或`run`键

发布于 2025-02-11 07:48:15 字数 5647 浏览 0 评论 0原文

我正在尝试设置一个deploy.yml文件,以通过标签/版本自动发布我的代码。我有一个工作的设置,但将其重新配置为与缓存一起工作,但是通过更新它,它根本无法使用。

错误是,

Error: .github#L1
every step must define a `uses` or `run` key

但是从以下文件来看,我看不到一个没有用途或运行键字段的单个步骤。我想念什么吗?我真的很感谢您对此的任何帮助,

这是我正在使用的工作流文件:

name: deploy

on:
  push:
    # Sequence of patterns matched against refs/tags
    tags:
      - "v*" # 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 "${{ env.bin }}-${{ matrix.target }}.zip" "${{ env.bin }}.exe"
          mv "${{ env.bin }}-${{ matrix.target }}.zip" $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 "::set-output name=%s::%s\n" tag-name "${GITHUB_REF#refs/tags/}"
      - uses: mislav/bump-homebrew-formula-action@v1
        if: "!contains(github.ref, '-')" # 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}} -> {{version}}
            
            Created by https://github.com/mislav/bump-homebrew-formula-action
        env:
          COMMITTER_TOKEN: ${{ secrets.HOMEBREW }}

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.

The error is

Error: .github#L1
every step must define a `uses` or `run` key

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

Here's the workflow file that I'm using:

name: deploy

on:
  push:
    # Sequence of patterns matched against refs/tags
    tags:
      - "v*" # 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 "${{ env.bin }}-${{ matrix.target }}.zip" "${{ env.bin }}.exe"
          mv "${{ env.bin }}-${{ matrix.target }}.zip" $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 "::set-output name=%s::%s\n" tag-name "${GITHUB_REF#refs/tags/}"
      - uses: mislav/bump-homebrew-formula-action@v1
        if: "!contains(github.ref, '-')" # 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}} -> {{version}}
            
            Created by https://github.com/mislav/bump-homebrew-formula-action
        env:
          COMMITTER_TOKEN: ${{ secrets.HOMEBREW }}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冰火雁神 2025-02-18 07:48:15

啊,我想我发现了问题!

我以某种方式设法跳过

- name: Compress Windows Binary
- run: |
     cd ./target/${{ matrix.target }}/release/
     7z a "${{ env.bin }}-${{ matrix.target }}.zip" "${{ env.bin }}.exe"
     mv "${{ env.bin }}-${{ matrix.target }}.zip" $GITHUB_WORKSPACE

它看起来在运行-后正在工作,看起来像这样:

- name: Compress Windows Binary
  run: |
     cd ./target/${{ matrix.target }}/release/
     7z a "${{ env.bin }}-${{ matrix.target }}.zip" "${{ env.bin }}.exe"
     mv "${{ env.bin }}-${{ matrix.target }}.zip" $GITHUB_WORKSPACE

Ah, I think I found the problem!

I somehow managed to skip over

- name: Compress Windows Binary
- run: |
     cd ./target/${{ matrix.target }}/release/
     7z a "${{ env.bin }}-${{ matrix.target }}.zip" "${{ env.bin }}.exe"
     mv "${{ env.bin }}-${{ matrix.target }}.zip" $GITHUB_WORKSPACE

It looks to be working after taking away the - on the run, looking like this:

- name: Compress Windows Binary
  run: |
     cd ./target/${{ matrix.target }}/release/
     7z a "${{ env.bin }}-${{ matrix.target }}.zip" "${{ env.bin }}.exe"
     mv "${{ env.bin }}-${{ matrix.target }}.zip" $GITHUB_WORKSPACE
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文