此 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 中使用 Runner 的 Linux 环境变量。
我是否还有其他选项可以拥有变量并在工作流程步骤中使用它们?
我已经为我的 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) 我有一个存储库,文件夹内有一个 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) 我有以下 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)
我怎样才能解决这个问题?
我有一些连接到测试 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')可以按预期工作。
可能是什么问题呢?
伙计们!我需要你的帮助来运行 docker-compose build on github 操作。我有一个 docker-compose 文件,除了通过 ssh 复制 docker-compose 并在那里运行脚本之外,我无法理解如何以正确的方式构建和部署它。有docker/build-push-action@v2,但它不能与 docker-compose.yml 一起使用。
在 Github 上,我添加了一条新规则,用于在操作失败时阻止 PR 合并,但我不断收到“规则无效”错误。
请帮忙。
最近 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
我正在github上开发一个python包。在 github 的一个组织下,我有两个存储库myorg/package和myorg/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)