标签: github-actions

限制 Push 和 Pull_request 上的 GitHub 操作工作流程并发性?

我想将我的工作流程的并发限制为一次运行:

on:
  pull_request:
    paths:
      - 'foo/**'
  push:
    paths:
      - 'foo/**' 

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true
Run Code Online (Sandbox Code Playgroud)

但是,我发现 forpush head_ref是空的并且run_id始终是唯一的(如下所述: https: //docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using- a-后备值)

如何创建一个在事件中保持不变的并发pull_requestpush

github github-actions

14
推荐指数
2
解决办法
7093
查看次数

GitHub 操作工作流程错误:ssh:握手失败:ssh:无法进行身份验证,已尝试方法 [无密码],没有保留支持的方法

标题几乎是不言自明的,ssh 连接失败。我的物理服务器就在我旁边,它位于一个 VPN 下,该 VPN 在 ssh 之前连接。

看起来服务器拒绝用户/密码对,但它在我的计算机上的终端上运行得很好。

sshd_config 文件具有 PasswordAuthentication yes ,我使用service ssh restart重新启动了 ssh 服务。

这是工作流程:

name: Deployment
on:
  push:
    branches: [ master ]
jobs:
  deploy:
    runs-on: ubuntu-20.04
    steps:
      - name: Set up WireGuard
        uses: egor-tensin/setup-wireguard@v1
        with:
          endpoint: ${{ secrets.WIREGUARD_ENDPOINT }}
          endpoint_public_key: ${{ secrets.WIREGUARD_ENDPOINT_PUBLIC_KEY }}
          ips: ${{ secrets.SERVER_IP }}
          allowed_ips: ${{ secrets.WIREGUARD_ALLOWED_IPS }}
          private_key: ${{ secrets.WIREGUARD_PRIVATE_KEY }}
      - name: Deploy to server
        # don't run locally
        if: ${{ !env.ACT }}
        uses: appleboy/ssh-action@master
        with:
          host: ${{ …
Run Code Online (Sandbox Code Playgroud)

ssh github-actions

14
推荐指数
2
解决办法
3万
查看次数

如何强制代码所有者进行审核而不自动请求审核?

.github/CODEOWNERS我有一个 GitHub 存储库,当首次打开拉取请求时,它会自动请求代码所有者团队(在 中定义)进行审查。我想要的是强制执行拉取请求必须得到代码所有者批准的要求,但在首次打开拉取请求时停止发送这些审查请求。即贡献者期望的流程是这样的:

open a pull request -> mess around, make changes -> manually request a review when ready (can't merge without codeowner approval)

这可以通过让贡献者打开草稿拉取请求并仅在它们实际准备好时将它们标记为准备好来解决,但贡献者似乎不想这样做。当它实际上还没有准备好接受审查时,贡献者通常会打开一个(非草稿)拉取请求(我想是习惯的力量)。

有没有一种方法可以做到这一点,并且不依赖贡献者使用草稿拉取请求?

github pull-request github-actions github-codeowners

14
推荐指数
1
解决办法
4115
查看次数

如何在 GitHub Actions 工作流程中获取拉取请求编号

我想在 Github 操作工作流中访问拉取请求编号。我可以访问可用的 GITHUB_REF 环境变量。尽管在 Pull Request 操作中它具有值:“refs/pull/125/merge”。我只需要提取“125”。

我在这里找到了一个类似的帖子它展示了如何使用这个变量获取当前分支。虽然在这种情况下,我解析的是不同的,我一直无法隔离拉取请求编号。

我尝试使用解析为“合并”的 {GITHUB_REF##*/} 我也尝试使用解析为“pull/125/merge”的 {GITHUB_REF#*/}

我只需要拉取请求编号(在我的示例中为 125)

github github-actions

13
推荐指数
4
解决办法
4409
查看次数

使用 Github Actions 将代码直接部署到 AWS EC2 实例

正如标题所说,我正在尝试使用Github Actions将我的Laravel-Angular应用程序直接从Github部署到AWS EC2实例。

在我的应用程序中,需要在部署前构建3 个Angular 8+项目。哪里不需要构建laravel。

可用的解决方案建议使用AWS Elastic Beanstalk来部署代码。但是,如果要这样做,如何将弹性豆茎附加到现有实例还不够清楚。

有没有办法在不使用Elastic Beanstalk 的情况下将代码部署到AWS EC2

这是我的Github Actions build.yml :

name: Build Develop Branch

on:
  push:
    branches: [ develop ]
  pull_request:
    branches: [ develop ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [14.x]

    steps:
    - name: Code Checkout
      uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - name: …
Run Code Online (Sandbox Code Playgroud)

github amazon-ec2 amazon-web-services github-actions

13
推荐指数
3
解决办法
1万
查看次数

当拉取请求具有特定标签时运行 Github 操作

在阅读了触发工作流事件的文档后,我想知道是否可以使用给定的标签名称运行工作流,例如 RFR 或 WIP。

我知道我们可以在拉取请求被标记时运行一个工作流,但是对于特定的标签名称没有更多内容:

on:
  pull_request:
    types: [labeled]
Run Code Online (Sandbox Code Playgroud)

以前有人这样做过吗?

yaml github github-actions

13
推荐指数
3
解决办法
5849
查看次数

GitHub Actions:在容器外部与内部构建?

假设我们正在使用 GitHub Actions 来构建和发布我们应用程序的容器映像。我将在这里选择 ASP.NET Core 作为应用程序的技术堆栈,尽管这无关紧要。

我想讨论两种不同的方法:

1.“构建外部”:在 GitHub Actions runner 中构建/编译应用程序,将输出复制到容器镜像中

例如,我们的 GitHub 操作工作流文件可能如下所示...

name: build-outside
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repo
      uses: actions/checkout@v2
    - name: Setup .NET Core
      uses: actions/setup-dotnet@v1
    - name: .NET Publish
      run: dotnet publish --configuration Release --nologo -p:CI=true -o $GITHUB_WORKSPACE/buildOutput src
    - name: Build and push Docker image
      uses: docker/build-push-action@v1
      with:
        username: ${{ secrets.DOCKERHUB_USERNAME }}
        password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
        repository: ${{ format('{0}/build-outside-test', secrets.DOCKERHUB_USERNAME) }}
        tags: latest
Run Code Online (Sandbox Code Playgroud)

...有一个简单的 Dockerfile,如下所示:

FROM …
Run Code Online (Sandbox Code Playgroud)

github docker asp.net-core github-actions

13
推荐指数
1
解决办法
1401
查看次数

Github 操作,使用 npm 或 yarn 安装 Github 包时 401 未授权

当我尝试npm从 GitHub 操作安装我的模块时,我收到以下错误:

npm ERR! 401 Unauthorized - GET https://npm.pkg.github.com/@xxxx%2fxxxx-analytics - Your request could not be authenticated by the GitHub Packages service. Please ensure your access token is valid and has the appropriate scopes configured.
Run Code Online (Sandbox Code Playgroud)

在您发表评论之前,我已经使用范围和访问令牌正确配置了 .npmrc,并且在本地安装私有包时一切正常。

这是我的 GitHub 工作流程操作:

name: JavaScript workflow

on: [push]

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1
      - name: Use Node.js 12.x
        uses: actions/setup-node@v1
        with:
          node-version: '12.x'
      - name: npmrc
        run: cat .npmrc
      - name: npm install
        run: |
          npm install
        env: …
Run Code Online (Sandbox Code Playgroud)

github npm yarnpkg github-actions github-package-registry

13
推荐指数
2
解决办法
5834
查看次数

私有组织中的 R 包 - 如何在组织内安装私有依赖项?

我们的 GitHub 组织是私有的,并且正在我们组织的多个不同存储库中开发多个私有 R 包。其中一些包依赖于我们私有组织中的其他存储库。如何设置 GitHub 操作以安装这些私有依赖项?我的描述文件目前包含:

Imports:
    MyPackageDep
Remotes:
    MyOrg/MyPackageDep
Run Code Online (Sandbox Code Playgroud)

我的 GitHub 操作的相关部分.yaml是:

  - name: Install dependencies
    run: |
      remotes::install_deps(dependencies = TRUE)
      remotes::install_cran("rcmdcheck")
    shell: Rscript {0}
Run Code Online (Sandbox Code Playgroud)

我尝试通过将我的 PAT 存储在一个文件中来遵循这篇 SO 帖子的建议.Renviron。但这不仅仍然不起作用,我仍然不确定这将如何与包的多个贡献者一起工作。请问他们都只是需要建立自己的地方GITHUB_PAT自己.Renviron

我还尝试通过在我的 GitHub 工作流程中包含以下内容来遵循此GitHub 问题的建议:

 env:
      GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
Run Code Online (Sandbox Code Playgroud)

工作流仍然无法下载依赖项。

无论如何,GitHub Secrets 是否可以预先配置存储库以访问组织中的所有其他私有存储库?

r github github-actions

13
推荐指数
1
解决办法
241
查看次数

Github 操作失败

直到昨天,Github Actions 还在我的存储库中工作。我没有在 .github/workflows/dev.yml 文件或 DockerFile 中做任何更改。

但是,突然在最近的推送中,我的 Github Actions 因错误而失败

设置、构建、发布和部署

Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under
'/home/runner/work/_actions/GoogleCloudPlatform/github-actions/master/setup-gcloud'.
Did you forget to run actions/checkout before running your local
action?
Run Code Online (Sandbox Code Playgroud)

我可以知道如何解决这个问题吗

这是我正在使用的示例 .yml 文件。

name: Release to Development

on:
  push:
    branches:
      - 'master'
jobs:
  setup-build-publish-deploy:
    name: Setup, Build, Publish, and Deploy
    runs-on: ubuntu-latest
    steps:

    - name: Checkout
      uses: actions/checkout@v2

    # Setup gcloud CLI
    - uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
      with:
        version: '270.0.0'
        service_account_email: ${{ secrets.GCLOUD_EMAIL_DEV }}
        service_account_key: ${{ secrets.GCLOUD_AUTH_DEV }}

    # Configure …
Run Code Online (Sandbox Code Playgroud)

git yaml github docker github-actions

13
推荐指数
3
解决办法
1768
查看次数