标签: github-actions

Github Actions Rails Postgres 数据库“test”不存在

此 Github 操作流在“Db create Migrate”步骤失败。

ActiveRecord::NoDatabaseError:致命:数据库“测试”不存在

我明白我可能不存在。我的目的是创造它。为什么它没有被创建?

name: Ruby
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    services:
      db:
        image: postgres:11@sha256:85d79cba2d4942dad7c99f84ec389a5b9cc84fb07a3dcd3aff0fb06948cdc03b
        ports: ['5432:5432']
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
      redis:
        image: redis
        ports: ['6379:6379']
        options: --entrypoint redis-server

    steps:
      - uses: actions/checkout@v2
      - name: Setup Ruby
        uses: actions/setup-ruby@v1
        with:
          ruby-version: 2.7
      - name: Build and test with Rake
        env:
          RAILS_ENV: test
          RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
        run: |
          sudo apt-get -yqq install libpq-dev
          gem install bundler
          bundle install --jobs …
Run Code Online (Sandbox Code Playgroud)

github-actions

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

在 GitHub Actions 中包含变量的选项

我知道我可以在 GitHub Actions 中使用 Runner 的 Linux 环境变量。

我是否还有其他选项可以拥有变量并在工作流程步骤中使用它们?

github-actions

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

如何在 Github 操作中访问矩阵变量

我已经为我的 CI 需求设置了一个 Github 工作流程,每当我使用值matrix进行比较时,它似乎都会以某种方式将分配给变量的值重置为空字符串,例如matrix

if: matrix.python-version == '3.8' && matrix.toxenv=='quality'
Run Code Online (Sandbox Code Playgroud)

我已经指定runs-on: ${{ matrix.os }}它失败了:

评估作业“run_tests”的“runs-on”时出错。(行:12,列:14):意外值 ''

如果我指定runs-on: ubuntu-20.04它工作得很好。

完整的 Github 工作流程:(我设置了 TOXENV 环境变量,以便它并行地为每个 tox 环境运行一个新作业,并避免每个作业都运行不必要的构建(例如质量)并减慢作业速度)

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  run_tests:
    name: Tests
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-20.04]
        python-version: ['3.5', '3.8', '3.9']
        toxenv: ['django22', 'django30','django31']
        include:
          - python-version: "3.8"
            toxenv: "quality"
        exclude:
          - python-version: "3.5"
            toxenv: "django30"
          - python-version: "3.5"
            toxenv: "django31" …
Run Code Online (Sandbox Code Playgroud)

python continuous-integration github github-actions

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

如何在 GitHub 工作流程中设置 YAML 文件中包含空格的路径?

我有一个存储库,文件夹内有一个 LaTex 文件。文件夹命名为Literature Review,文件命名为Review.tex。我是 docker 和 GitHub Actions 的新手。我尝试了很多不同的组合来设置文件路径:

Literature Review/Review.tex

我已经尝试了 StackOverflow 上建议的很多方法,但似乎我太天真了,无法正确理解实现 xD

我在某处读到,为了避免转义序列,我们可以使用\在空格之前使用 a 。然而,这并没有多大区别。

工作流在构建时返回以下错误:

Run echo ${MANUSCRIPT_PATH}.tex
  echo ${MANUSCRIPT_PATH}.tex
  ${LATEX} ${MANUSCRIPT_PATH}.tex
  ${BIBTEX} ${MANUSCRIPT_PATH}.aux
  ${LATEX} ${MANUSCRIPT_PATH}.tex
  ${LATEX} ${MANUSCRIPT_PATH}.tex
  shell: /bin/bash -e {0}
  env:
    MANUSCRIPT_PATH: Literature\ Review/Review
    LATEX: pdflatex -shell-escape
    BIBTEX: bibtex
Literature\ Review/Review.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex)
 \write18 enabled.
entering extended mode
! I can't find file `Literature'.
<to be read again> 
                   \ 
<*> …
Run Code Online (Sandbox Code Playgroud)

bash latex yaml docker github-actions

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

GitHub操作无法安装gem

我有以下 GitHub 操作:

name: Rubocop
on: push

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - name: Install Rubocop
        run: gem install rubocop
      - name: Rubocop
        run: rubocop
Run Code Online (Sandbox Code Playgroud)

当此操作运行时,我收到以下错误:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /var/lib/gems/2.5.0 directory.
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

ruby github-actions

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

Python 在 GitHub Actions 上看不到环境变量

我有一些连接到测试 Postgres DB 的 pytest 测试。这些在当地运作良好。然而,在 GitHub actions 上,没有 Postgres DB,所以我必须禁用具有这些测试的整个模块。

根据文档CI Always set to true.所以我所要做的就是检查 CI 环境变量,并禁用测试模块(如果存在并设置):

if os.getenv('CI'):
    pytest.skip("No PostgreSQL on GH Actions CI/CD", allow_module_level=True)
Run Code Online (Sandbox Code Playgroud)

不起作用。

我尝试过手动设置它,通过 手动设置其他环境变量env:,但它们都不对 Python 可见。通过否定上述测试来本地禁用该模块not os.getenv('CI')可以按预期工作。

可能是什么问题呢?

python pytest tox github-actions

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

GitHub 操作和 Docker-compose

伙计们!我需要你的帮助来运行 docker-compose build on github 操作。我有一个 docker-compose 文件,除了通过 ssh 复制 docker-compose 并在那里运行脚本之外,我无法理解如何以正确的方式构建和部署它。有docker/build-push-action@v2,但它不能与 docker-compose.yml 一起使用。

docker docker-compose github-actions

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

添加“合并前需要通过状态检查”规则时出现“规则无效”

在 Github 上,我添加了一条新规则,用于在操作失败时阻止 PR 合并,但我不断收到“规则无效”错误。

请帮忙。

github github-actions

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

SwiftLint 安装步骤在 GitHub Actions 上失败

最近 GitHub Actions 发生了一些变化,我们不确定发生了什么或如何解决它。我们正在测试和构建 iOS 应用程序,并使用 SwiftLint 进行自动 PR 检查。

几个月来,我们的工作配置一直运转良好,但大约 1.5 周前,事情开始变得不稳定。有时它贯穿,有时则不贯穿。

我们的文件中曾经有这样的内容run-tests.yml

  - name: Install SwiftLint
    run: brew install swiftlint
Run Code Online (Sandbox Code Playgroud)

9 天前,测试在这一步突然开始失败。以下是来自 GitHub Actions 的日志:

==> 浇注 swiftlint-0.42.0.catalina.bottle.tar.gz

错误:该brew link步骤未成功完成 已构建公式,但未符号链接到 /usr/local 无法符号链接 bin/swiftlint 目标 /usr/local/bin/swiftlint 已存在。您可能想删除它: rm '/usr/local/bin/swiftlint'

要强制链接并覆盖所有冲突的文件:brew link --overwrite swiftlint

列出要删除的所有文件:brew link --overwrite --dry-run swiftlint

可能的冲突文件是:/usr/local/bin/swiftlint

==> 摘要 /usr/local/Cellar/swiftlint/0.42.0:6 个文件,12.2MB 错误:进程已完成,退出代码为 1。

经过一些研究,查看错误消息并看到其他作业成功运行(意味着 SwiftLint 可以正确安装),我们决定设置一个故障保护:尝试链接现有的 SwiftLint,如果失败,只需安装它:

  - name: Link SwiftLint or install it
    run: brew link --overwrite swiftlint || brew install …
Run Code Online (Sandbox Code Playgroud)

continuous-integration homebrew swift swiftlint github-actions

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

如何让 github actions 工作流程使用机器人名称将生成的文档推送到同一组织中的其他存储库

我正在github上开发一个python包。在 github 的一个组织下,我有两个存储库myorg/packagemyorg/documentation. 该package存储库包含 python 包和构建 sphinx 文档的方法,并documentation包含通过 github 页面发布的生成的静态 html。

我现在正在设置一个 github 操作工作流程来构建文档,并通过将发布标签推送到存储库来将package其推送到触发,但我在推送到存储库时遇到了问题。documentationpackagedocumentation

理想情况下,我希望将提交标记为由机器人进行,并且我希望所有拥有两个存储库推送权限的人都能够运行工作流程。

这是我当前的工作流程:

name: Deploy

on:
  push:
    tags:
      - 'v*'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
          path: package
    - uses: actions/checkout@v2
      with:
        repository: myorg/documentation
        path: documentation
    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: 3.9
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install tox …
Run Code Online (Sandbox Code Playgroud)

git github github-pages github-actions

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