标签: github-actions

我可以在本地编辑 main.workflow github-actions 文件吗?

如果我main.workflow在本地更改我的文件,而不是在master分支中,提交并推送更改,我会从push命令中收到此错误:

> git diff
diff --git a/.github/main.workflow b/.github/main.workflow
index 135d8ea..0a13a28 100644
--- a/.github/main.workflow
+++ b/.github/main.workflow
@@ -6,7 +6,7 @@ workflow "Build and Test in PR" {
   ]
 }

-action ".NET Core CLI" {
+action ".NET Core CLI"  {
   uses = "./.github/net-core/"
   args = "test"
 }

> git push
! [remote rejected] my-branch -> my-branch (refusing to allow an integration to create or update .github/main.workflow)
error: failed to push some refs to 'https://github.com/my-user-name/my-repo.git'
Run Code Online (Sandbox Code Playgroud)

git github github-actions

7
推荐指数
2
解决办法
1320
查看次数

如何编写具有中立检查运行状态的 GitHub 操作

我正在编写一个 GitHub 操作并希望指示成功、警告(中性)和失败。它看起来像这样:

name: status

on: 
  push:
    branches:
      - master

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: run checks
      continue-on-error: true
      run: ./check.sh
Run Code Online (Sandbox Code Playgroud)

我通过一些旧文档发现退出代码 78 给出了该步骤的中立状态。但是我如何让整个工作处于中立状态?

更新:经过测试,我发现退出代码 78 不影响步骤的状态。

github github-actions

7
推荐指数
1
解决办法
2131
查看次数

GitHub 操作:在工作流作业中使用外部操作是否存在安全问题?

我有一个工作流,通过使用来自someuser以下方面的外部操作来 FTPs 文件:

    - name: ftp deploy
      uses: someuser/ftp-action@master
      with:
        config: ${{ secrets.FTP_CONFIG }}
Run Code Online (Sandbox Code Playgroud)

这是安全问题吗?例如可以someuser更改ftp-action@master为访问我的secrets.FTP_CONFIG? 我应该将他们的操作复制/粘贴到我的工作流程中吗?

github github-actions

7
推荐指数
1
解决办法
408
查看次数

带有分支过滤器的 GitHub Actions 标签过滤器

GitHub 操作允许使用分支和标签过滤器,但它们似乎不能一起工作。

例如,此工作流在推送到 master带有标签的推送上运行。

name: npm Publish

on:
  push:
    branches:
      - master
    tags:
      - v*
Run Code Online (Sandbox Code Playgroud)

我想设置一个发布工作流,该工作流在标记推送到 master 上运行,而不仅仅是一个或另一个。如何才能做到这一点?

github-actions

7
推荐指数
1
解决办法
794
查看次数

如何使用 Github Actions 手动触发步骤

在每个 CI 解决方案中,都可以暂停管道并等待手动批准才能继续(Jenkins、CircleCI、GitlabCI)。

如何使用 Github Actions 做到这一点?

github-actions

7
推荐指数
4
解决办法
3144
查看次数

GitHub 操作:如何在 docker 容器内运行命令

今天刚开始学习 CI/CD。不知道今天之前的 docker 是什么。我能够通过我的 Unity 项目获得在 CircleCI 上工作的 CD。所有运行命令都发生在 docker 容器内。

version: 2.1
executors:
  unity:
    docker:
      # https://hub.docker.com/r/gableroux/unity3d/tags
      - image: gableroux/unity3d:2018.2.21f1
jobs:
  build-test:
    executor: unity
    steps:
      - checkout

      # Install zip
      - run: apt-get update
      - run: apt-get install zip -y

      # Decrypt the license file
      - run: openssl aes-256-cbc -d -in .circleci/Unity_v2018.x.ulf.enc -k ${UNITY_LICENSE_DECRYPT_KEY} >> .circleci/Unity_v2018.x.ulf

      # Activate unity
      - run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -manualLicenseFile .circleci/Unity_v2018.x.ulf || exit 0

      # Build Windows and OSX
      - run: …
Run Code Online (Sandbox Code Playgroud)

github-actions

7
推荐指数
1
解决办法
4994
查看次数

如何在 GitHub Actions config yaml 中集中(DRY)字符串?

我正在为我的 CI 创建一个 GitHub Actions 工作流程,我意识到我在重复一些信息。例如,runs-on作业的 定义为ubuntu-18.04and mac-10.14,或strategy/matrix.

我想将这些版本信息集中在 YAML 文件中的某个位置,并且能够引用这些信息而不是多次复制该值。这样我就不会重复自己 (DRY) 并且我可以轻松地在一个位置更改版本值并防止不一致。

不幸的是,我这样做有困难。我虽然可以用于此的方式是env在 YAML 顶部使用全局环境变量并在其他地方引用它。例如,我想替换如下内容:

on: [push, pull_request]
name: CI
jobs:
  build:
    name: Build
    runs-on: ubuntu-18.04
    strategy:
      matrix:
        toolchain:
          - 1.2.3
    steps:
      - run: ./build.sh 1.2.3
  package:
    name: Package
    runs-on: ubuntu-18.04
    steps:
      - run: ./package.sh 1.2.3
[...]
Run Code Online (Sandbox Code Playgroud)

和:

on: [push, pull_request]
name: CI
env:
  UBUNTU_VERSION: 18.04
  TOOLCHAIN_VERSION: 1.2.3
jobs:
  build:
    name: Build
    runs-on: ubuntu-${{ env.UBUNTU_VERSION }}
    strategy:
      matrix:
        toolchain:
          - …
Run Code Online (Sandbox Code Playgroud)

github-actions

7
推荐指数
1
解决办法
609
查看次数

如何在 Github Actions 上使用容器设置构建矩阵

我想针对不能作为 GA runners 的发行版运行测试。就我而言,容器很好。

我如何用容器描述构建矩阵?

github-actions

7
推荐指数
1
解决办法
522
查看次数

GitHub Actions - 同一台机器上的并行自托管运行器

自托管运行器中并行性主题相关的问题:

一个自托管运行器一次只能运行一个作业,当没有可用运行器空闲时,后续作业将排队等待,直到有可用运行器空闲。

我可以通过在具有多个 CPU 的同一台机器上运行多个自托管运行器来实现并行性吗?

GitHub Actions - Getting Started - Usage Limits我发现:

您可以在您的帐户中运行的并发作业数取决于您的 GitHub 计划,如下表所示。如果超过,任何其他作业都会排队。自托管运行器没有并发限制。

但我不确定如何在多核机器的上下文中理解这一点。

continuous-integration github multiprocessing devops github-actions

7
推荐指数
1
解决办法
2154
查看次数

从私有存储库获取徽章的状态

我正在尝试在私人存储库(svg 图像)中获取徽章的状态,我是从未经身份验证的位置执行此操作,并且收到了预期的 404 错误消息。

有谁知道我应该如何将 access_token 信息添加到 GET 方法中才能实际获取其状态?

从 URL 调用徽章,如:

https://github.com/xx/yy/workflows/zz/badge.svg?event=push&access_token=hhhh
Run Code Online (Sandbox Code Playgroud)

返回 404。

此外,在请求的标头中设置令牌:

headers: {'Authorization': 'token hhhh', ... }
Run Code Online (Sandbox Code Playgroud)

返回 404。

谢谢!

github badge github-api github-actions

7
推荐指数
1
解决办法
245
查看次数