标签: github-actions

用于创建分支和拉取请求的 github 操作

在 github actions 中执行以下操作的好方法是什么:

  1. 创建一个新分支。
  2. 在分支上运行一些 shell 命令(比如一些更改 POM 的 Maven 命令)。
  3. 创建拉取请求。

我应该使用原始 git 命令吗?或者 github cli?或者其他动作?

你有什么建议?

github github-actions

2
推荐指数
1
解决办法
4422
查看次数

GIthub 操作:仅当特定目录发生更改时才触发作业

我创建了一个deployment.yaml,每次我推送到 master 分支时它都会构建我的代码。

这是我的项目结构。

project1
|-subproject1
|-subproject2
|-subproject3
Run Code Online (Sandbox Code Playgroud)

现在,我有 3 个不同的工作来构建每个子项目。

我可以以这种方式添加一个条件吗?如果我只在 subproject2 中进行更改,那么只有该特定作业应该运行。

我发现工作有一个if属性。

https://docs.github.com/en/actions/using-jobs/using-conditions-to-control-job-execution

所以,简而言之,我想写一些类似的东西......

jobs:
  deploy:
    if: old_subproject1 != new_subproject1

...
jobs:
  deploy:
    if: old_subproject2 != new_subproject2
...
jobs:
  deploy:
    if: old_subproject3 != new_subproject3
Run Code Online (Sandbox Code Playgroud)

提前致谢 !

github-actions

2
推荐指数
1
解决办法
8292
查看次数

Jest 无法找到模块,但只能在 Github Actions 上运行时找到

我的 Github 操作失败了好几次,之前工作正常,没有新的或修改的测试,甚至我没有修改页脚组件,唯一的变化是布局的服务方式,本地一切运行良好。

\n

错误记录如下:

\n
Run npm run test\n\n> lasbrumasapp@0.1.0 test\n> jest\n\n"next/jest" is currently experimental. https://nextjs.org/docs/messages/experimental-jest-transformer\nFAIL __tests__/pages/signup.test.tsx\n  \xe2\x97\x8f Test suite failed to run\n\n    Cannot find module \'../footer/Footer\' from \'components/layouts/Layout.tsx\'\n\n    Require stack:\n      components/layouts/Layout.tsx\n      pages/signup.tsx\n      __tests__/pages/signup.test.tsx\n\n       6 | const Layout = ({ children }: ChildrenInterface) => {\n       7 |   return (\n    >  8 |     <>\n         |       ^\n       9 |       <Navbar />\n      10 |       <main>{children}</main>\n      11 |       <Footer />\n\n      at Resolver.resolveModule (node_modules/jest-resolve/build/resolver.js:324:11)\n      at Object.<anonymous> (components/layouts/Layout.tsx:8:38)\n\nFAIL __tests__/pages/login.test.tsx\n  \xe2\x97\x8f Test suite failed to run\n\n …
Run Code Online (Sandbox Code Playgroud)

reactjs jestjs next.js github-actions

2
推荐指数
1
解决办法
3506
查看次数

如何从 Jenkins Pipeline 调用 GitHub Actions 工作流?

是否有任何方法或解决方案可以从 Jenkins 声明性管道调用 GitHub Actions 工作流程?

Jenkinsfile 应包含什么内容来调用所述操作?

jenkins jenkins-groovy jenkins-pipeline github-actions

2
推荐指数
1
解决办法
4691
查看次数

Github 工作流程:如何将输入选项映射到值

我为我的 Github 工作流程设置了以下输入

on:
  workflow_dispatch:
    inputs:
      environment:
        type: choice
        description: Environment
        options:
          - Development
          - QA
          - UAT
          - Production
Run Code Online (Sandbox Code Playgroud)

如果用户选择Development作为环境,我想dev在一些字符串连接中使用该单词,如果他们选择Production我想使用prod相同的目的。

以下是需要进行替换的区域的示例。

- name: Package App
  run: |
    move-file .env.$TARGET_ENVIRONMET .env
    yarn package:$TARGET_ENVIRONMENT
Run Code Online (Sandbox Code Playgroud)

在此示例中,我需要move-file命令 bemove-file .env.dev .envyarn package命令 beyarn package:dev用于开发,但我在映射Development到开发时遇到问题。我考虑设置一个变量,dev如果用户选择Development变量,但看起来唯一的变量支持是设置环境变量,而且这似乎不可能有条件地实现。

所以我不能做这样的事情

env:
  if: inputs.environment == 'Development'
    TARGET_ENVIRONMENT: 'dev'
  if: inputs.environment == 'Production'
    TARGET_ENVIRONMENT: 'prod'
Run Code Online (Sandbox Code Playgroud)

github github-actions

2
推荐指数
1
解决办法
3558
查看次数

Github Action 使用单独的工作流程文件添加“需求”

我有两个工作流程:

  • 工作流程1.yaml
  • 工作流程2.yaml

我需要在workflow2.yaml中添加类似的内容:

jobs:
  build_kotlin:
    runs-on: [server1, server2, server3]
    needs: [workflow1]
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
Run Code Online (Sandbox Code Playgroud)

目前“需要”无法正常工作。如何引用单独的工作流程 yaml 文件?

github github-actions

2
推荐指数
1
解决办法
2245
查看次数

如何检测 github actions runner 是否在 ubuntu 或 windows 中运行

是否可以检测 Github actions 运行程序正在使用哪个操作系统?例如,在节点中可以运行process.platform以获取操作系统。Github actions 里面有类似的东西吗?

operating-system github github-actions

2
推荐指数
1
解决办法
2000
查看次数

配置 Terraform AWS Provider 时的 Github Actions 错误

尝试运行时,我使用 Terraform AWS Provider 收到以下错误terraform plan。仅当在 GitHub Actions 上运行时才会发生这种情况(在本地工作正常)

配置 Terraform AWS Provider 时出错:无法获取共享配置文件

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.22"
    }
  }
  required_version = ">= 1.1.7"
}
Run Code Online (Sandbox Code Playgroud)

如果我降级到version = "~> 3.0"它就可以解决问题。但我想升级到最新版本。

有没有办法让它在 CI 上运行?

terraform terraform-provider-aws github-actions

2
推荐指数
1
解决办法
7648
查看次数

如何从主 github 操作 yaml 文件引用另一个 yml 文件?

我正在定义一个引用另一个 yaml 文件的 github 操作脚本,希望能够以更有条理的方式进行配置。

\n

这是我的作业文件,命名为deploy.yml的路径./.github/workflows/,其中第一个.是我的项目的根文件夹。

\n
....\njobs:\n  UnitTest:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: ./.github/workflows/unittest.yml\n
Run Code Online (Sandbox Code Playgroud)\n

在同一./.github/workflows/文件夹中,我创建了另一个文件,名称unittest.yml如下:

\n
name: "UnitTest"\ndescription: "Perform Unit Test"\nruns:\n  # using: "composite"\n  - name: Dependency\n    run: |\n      echo "Dependency setup commands go here"\n\n  - name: UnitTest\n    run: make test.unit\n
Run Code Online (Sandbox Code Playgroud)\n

但是,当我尝试使用act with command在本地测试脚本时act --secret-file .secrets --container-architecture linux/amd64,收到以下错误:

\n
[Deploy/UnitTest]   \xe2\x9c\x85  Success - Main actions/checkout@v3\n[Deploy/UnitTest] \xe2\xad\x90 Run Main ./.github/workflows/unittest.yml\n[Deploy/UnitTest]   \xe2\x9d\x8c  Failure …
Run Code Online (Sandbox Code Playgroud)

continuous-integration yaml github-actions

2
推荐指数
1
解决办法
3840
查看次数

macOS Github 操作排队,“分配给此作业的代理池已达到 MacOs 并发限制”,为什么?

我们的团队(本质上)有一个内置于 github actions 中的 CI 系统,它为 PR 生成了 5 个测试作业。这需要 macOS github 托管的操作运行器。当构建多个 PR 时,我们的作业通常会排队,并显示以下消息:

The agent pool assigned to this job has hit their MacOs concurrency limits
Run Code Online (Sandbox Code Playgroud)

由于 github 托管的动作运行器是按需运行的,因此这个限制令人惊讶。它是什么,可以修复吗?

github github-actions github-actions-runners

2
推荐指数
1
解决办法
389
查看次数