标签: github-actions

在另一个目录中运行操作

我刚刚开始探索 Github 操作,但是我发现自己在多个地方放置了一个命令。

我有一个composer.json不在根目录中的 PHP 项目,我的结构如下所示:

my-project:
    readme.md
    app:
        composer.json
Run Code Online (Sandbox Code Playgroud)

显然还有更多内容并且有一个原因,但我composer.json位于一个名为“app”的子目录中。因此,在我的工作流程中,我每次都必须 cd 进入该文件夹才能运行命令:

name: CI

on: [push]

jobs:
  phpunit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: Setup Symfony
        run: |
          cd app
          cp .env.dev .env
      - name: Install Composer Dependencies
        run: |
          cd app
          composer install --prefer-dist
      - name: Run Tests
        run: |
          cd app
          php bin/phpunit
Run Code Online (Sandbox Code Playgroud)

如何cd app在每个阶段删除?

github github-actions

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

Github Action:将长命令拆分为多行

我有一个非常长的 Github 操作命令:

name: build

on: [push]

jobs:
    build:
        runs-on: ubuntu-18.04
        steps:
            - uses: actions/checkout@v1
            - name: Install Prerequisites
              run: |
                sudo apt-get update
                sudo apt-get install -y --no-install-recommends "a very very long list of prerequisites"
Run Code Online (Sandbox Code Playgroud)

我可以知道是否可以将长命令分成多行以提高可读性?我试过分隔符 '\' 但它不起作用。提前致谢。

yaml github github-actions

55
推荐指数
5
解决办法
2万
查看次数

如何将文件归档到 github 工作流程操作的工件中以修复此警告?

此工件中有超过 10,000 个文件,请考虑在上传之前创建存档以提高上传性能。

azure node.js github-actions

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

存储库“http://security.debian.org/debian-security buster/updates InRelease”将其“Suite”值从“stable”更改为“oldstable”

我的一些 Github Actions 工作流最近开始在安装 Chromedriver 时返回此错误:

Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Reading package lists...
E: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
E: Repository 'http://deb.debian.org/debian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
E: Repository 'http://deb.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'stable-updates' to 'oldstable-updates'
Error: Process completed with exit code 100.
Run Code Online (Sandbox Code Playgroud)

这是我的步骤实现:

Get:1 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB] …
Run Code Online (Sandbox Code Playgroud)

shell debian selenium-chromedriver debian-buster github-actions

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

GitHub actions/checkout@v3 和 v2 有什么区别?

使用GitHub Actionsactions/checkout@v2时,和之间有什么区别actions/checkout@v3?有什么理由使用 v2 而不是 v3 吗?

github-actions

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

如何在一个 Github Actions Docker 中运行多个命令

在一个中运行多个命令的正确方法是什么action

例如:

我想将 python 脚本作为action. 在运行此脚本之前,我需要安装requirements.txt.

我可以想到几个选项:

  • 使用Dockerfile其中的命令创建一个RUN pip install -r requirements.txt
  • 使用python:3图像,并在运行pip install -r requirements.txtin 中entrypoint.sh的参数之前运行文件args中的main.workflow
  • 同时使用pip installpython myscript.py作为args

另一个例子:

我想运行一个存在于我的存储库中的脚本,然后比较 2 个文件(它的输出和一个已经存在的文件)。

这是一个包含两个命令的过程,而在第一个示例中,该pip install命令可以被视为构建命令而不是测试命令。

问题:

我可以为另一个命令创建另一个 Docker,其中将包含前一个 Docker 的输出吗?

我正在寻找有关命令 in Dockerfile、inentrypoint或 in位置的指南args

docker dockerfile docker-entrypoint github-actions

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

在 Github 操作管道上设置默认超时

通常,我的管道需要 15 分钟才能执行。

最近,由于一些奇怪的原因,一些管道需要 45 分钟到 6 小时才能发生故障。

我的问题是:是否可以在 Github Action 的管道上设置默认超时限制(例如,30 分钟后自动取消)?

continuous-integration yaml github-actions

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

在 GitHub 操作中的新作业中使用先前作业的输出

出于(主要)教学原因,我正在尝试在 GitHub 操作中运行此工作流程:

name: "We  Perl"
on:
  issues:
    types: [opened, edited, milestoned]

jobs:
  seasonal_greetings:
    runs-on: windows-latest
    steps:
      - name: Maybe greet
        id: maybe-greet
        env:
          HEY: "Hey you!"
          GREETING: "Merry Xmas to you too!"
          BODY: ${{ github.event.issue.body }}
        run: |
          $output=(perl -e 'print ($ENV{BODY} =~ /Merry/)?$ENV{GREETING}:$ENV{HEY};')
          Write-Output "::set-output name=GREET::$output"
  produce_comment:
    name: Respond to issue
    runs-on: ubuntu-latest
    steps:
      - name: Dump job context
        env:
          JOB_CONTEXT: ${{ jobs.maybe-greet.steps.id }}
        run: echo "$JOB_CONTEXT"
Run Code Online (Sandbox Code Playgroud)

我需要两个不同的作业,因为它们使用不同的上下文(操作系统),但是我需要将第一个作业中的步骤输出到第二个作业。我正在尝试使用此处jobs找到的几种上下文组合,但似乎没有任何方法可以做到这一点。显然,只是一个 YAML 变量的名称,它实际上没有上下文,上下文只包含成功或失败。任何的想法?jobsjob

perl github-actions

44
推荐指数
4
解决办法
2万
查看次数

GitHub 工作流程输入参数的下拉列表

我想为我的 GitHub 操作输入参数创建一个下拉列表。这应该有助于从下拉列表中选择一个值,就像选项如何选择分支一样。

github-api github-actions building-github-actions

43
推荐指数
1
解决办法
5万
查看次数

github actions 获取测试版本的 URL

我似乎无法找到如何在文档中的任何位置获取测试工作流程的 URL。我有一个运行测试的简单作业,如果失败,它需要将失败作业的 URL 发布到另一个 Web 服务。

我原以为它会出现在默认环境变量中,但显然不是。

谢谢,

github github-actions

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