GH动作:GitHub#L1-每个步骤都必须定义`'use'或`run`键
我正在尝试设置一个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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
啊,我想我发现了问题!
我以某种方式设法跳过
它看起来在运行
-
后正在工作,看起来像这样:Ah, I think I found the problem!
I somehow managed to skip over
It looks to be working after taking away the
-
on the run, looking like this: