gpt4 book ai didi

go - github 操作可以有多个工作目录吗?

转载 作者:行者123 更新时间:2023-12-01 23:34:02 25 4
gpt4 key购买 nike

所以我有一个包含多个目录的存储库,用于多个 go 项目。有没有办法在多个工作目录上运行 github 操作,这样我就不必在 github 操作中使用冗余的 yaml?要使用 golang 自动执行错误检查,我目前有:

  errcheck:
name: Errcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: check
uses: grandcolline/golang-github-actions@v1.1.0
working-directory: ./app1
with:
run: errcheck
token: ${{ secrets.GITHUB_TOKEN }}

但是我想要:

  errcheck:
name: Errcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: check
uses: grandcolline/golang-github-actions@v1.1.0
working-directory: [./app1, ./app2]
with:
run: errcheck
token: ${{ secrets.GITHUB_TOKEN }}

最佳答案

为了在多个工作目录中运行某些东西,我相信你有两个选择:

选项 1:矩阵

使用 GitHub Action 的 jobs.<job_id>.strategy.matrix选项。这将创建多个作业,每个作业都有自己的矩阵(目录)值。

这是一个示例工作流程:

name: Test
on:
push: { branches: master }

jobs:
test:
name: Matrix test
runs-on: ubuntu-latest
strategy:
matrix: { dir: ['some-dir', 'other-dir'] }

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Do something with the matrix value
working-directory: ${{ matrix.dir }}
run: pwd

运行它会创建两个作业:

enter image description here

选项 2:自定义 Shell 脚本

如果矩阵选项不适合您的需要,一个简单的 shell 脚本循环并测试您所有的嵌套应用程序(目录)可能是合适的。在这种情况下,您将忽略工作流 YAML 中的 working-direcoty 指令,并让脚本 cd 访问它们中的每一个。

例如:

#!/usr/bin/env bash

dirs=( some-dir other-dir )

for dir in "${dirs[@]}"; do
pushd "$dir"
pwd # Do something more significant here
popd
done

关于go - github 操作可以有多个工作目录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65855054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com