到目前为止,根据文件系统文档,我的印象是(仅?)/github/workspace在操作(而不是工作流程)中持续存在:
Docker 容器的工作目录。GitHub Actions 在此目录中执行。该目录的路径在
GITHUB_WORKSPACE环境变量中设置。
(...)
操作可以修改此目录的内容,后续操作可以访问该内容。
但我现在有一个reprex(带有操作运行的实时存储库),显示它/github/home似乎也跨操作持续存在。
当然,我知道这些都不会在工作流程或运行中持续存在。就在行动之间。
文档(对我来说)对此有点不清楚,而且我还没有得到支持人员的答复。
从第一个操作开始记录/github/home:
Running 'touch /github/home/foo'...
Successfully ran 'touch /github/home/foo'
Run Code Online (Sandbox Code Playgroud)
从第二个操作记录/github/home:
Running 'ls /github/home'...
foo
Successfully ran 'ls /github/home'
Running 'rm /github/home/foo'...
Successfully ran 'rm /github/home/foo'
Run Code Online (Sandbox Code Playgroud)
这似乎表明这一点确实/github/home也持续存在,但我想确切地知道。
Github Actions 的actions/setup-python步骤由于使用::set-env:and没有成功::add-path:,因为被认为不安全而被阻止(https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and -添加路径命令)。
通过ACTIONS_ALLOW_UNSECURE_COMMANDS=true为此步骤设置环境变量成功。
如何避免允许不安全的命令成功运行 Python 构建?
自定义构建的 docker 中的自托管运行器,带有 Ubuntu 20.04 基础映像。链接到 GHE 服务器 v2.22.4。
尝试使用 Python 3.9.0 和 3.9.1
工作流文件:
name: CD testing
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
runs-on: [ Linux ]
- uses: actions/checkout@v2
- name: setup python
uses: actions/setup-python@v2
with:
python-version: 3.9.0
- name: execute py script
run: |
python -V
Run Code Online (Sandbox Code Playgroud)
##[debug]Found tool in cache Python 3.9.1 x64 …Run Code Online (Sandbox Code Playgroud) 我正在尝试开发我的第一个 Julia 包FeatureEng.jl,但我在更新注册表上的包时遇到了问题。
我已经设置了 GitHub 操作 TagBot 和 Register 并尝试通过 Project.toml 文件和 git 标签更新包版本,但我在 GitHub 上仍然只有一个版本(“v1.0.1”),我得到以下输出来自 TagBot:
Tag v1.0.1 already exists
Run Code Online (Sandbox Code Playgroud)
当我在自己的环境中运行我的包并检查我得到的版本时......
julia> using Pkg
julia> Pkg.activate(".")
Activating environment at `~/Desktop/code/julia/FeatureEng/Project.toml`
julia> using FeatureEng, PkgVersion
julia> PkgVersion.Version(FeatureEng)
v"1.2.7"
Run Code Online (Sandbox Code Playgroud)
但是当我在一个单独的环境中安装我的包时,从通用注册表,并运行相同的检查,我得到...
julia> PkgVersion.Version(FeatureEng)
v"1.0.1"
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?发布新的 Julia 包版本的正确方法是什么?
提前致谢!
我有一个 GitHub Actions 工作流程,它最近在我没有进行更改的情况下停止工作。错误:
==> ERROR: /etc/makepkg.conf not found.
Aborting...
Run Code Online (Sandbox Code Playgroud)
这是从运行# sudo -Eu builder makepkg --printsrcinfo。
日志的顺序似乎是错误的,但在较早的日志中是正确的(可能是由于ls -l输出量大)。
此错误的来源似乎是libmakepkg/util/config.sh.in:
==> ERROR: /etc/makepkg.conf not found.
Aborting...
Run Code Online (Sandbox Code Playgroud)
我在入口点脚本中添加了以下内容:
# Source the config file; fail if it is not found
if [[ -r $MAKEPKG_CONF ]]; then
source_safe "$MAKEPKG_CONF"
else
error "$(gettext "%s not found.")" "$MAKEPKG_CONF"
plainerr "$(gettext "Aborting...")"
exit $E_CONFIG_ERROR
fi
Run Code Online (Sandbox Code Playgroud)
该builder用户在创建build.sh:
echo "Writing SRCINFO..."
# Debug
echo …Run Code Online (Sandbox Code Playgroud) 当我将提交推送到 PR 时,我的测试会为此提交触发。之后,如果我向这个 PR 推送额外的提交,Github Actions 中的测试会在两个提交上运行。
我需要取消之前的运行并仅在最近的推送提交上运行它们。
如何配置我的 yaml 文件来实现这一目标?
我是 Docker 的新手,并尝试使用 GitHub Actions 执行 CI。
这是我.yml在 GitHub 上的文件。
name: CI to Docker Hub
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check Out Repo
uses: actions/checkout@v2
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Github 工作流中将Python 包发布到 PyPI,但“Test PyPI”的身份验证失败。我从命令行成功发布到 Test PyPI,所以我的 API 令牌必须是正确的。我还检查了秘密值中的前导和尾随空格(即,在 GitHub 上)。
正如上次提交所示,我尝试了一些没有成功的事情。
我首先尝试将简单的 bash 命令内联到工作流程中,如下所示,但我无法将我的秘密放入环境变量中。当我打印这些变量时,日志中没有显示任何内容。
- name: Publish on Test PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }}
TWINE_REPOSITORY_URL: "https://test.pypi.org/legacy/"
run: |
echo "$TWINE_PASSWORD"
pip install twine
twine check dist/*
twine upload dist/*
Run Code Online (Sandbox Code Playgroud)
我还尝试使用专用的 GitHub Action 如下,但它也不起作用。我想问题出在我的工作流程中不可用的秘密。让我感到困惑的是,我的工作流程使用另一个令牌/秘密就好了!但是,如果我将它放在环境变量中,则不会打印任何内容。我还以不同的名称(PYPI_TEST_TOKEN 和 TEST_PYPI_API_TOKEN)重新创建了我的秘密,但无济于事。
- name: Publish to Test PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository_url: https://test.pypi.org/legacy/
Run Code Online (Sandbox Code Playgroud)
我想我错过了一些明显的东西(像往常一样)。任何帮助都受到高度赞赏。
我正在使用 Github Actions 来检查我的包。它曾经可以工作,但最近在 Windows 上安装一些依赖项失败(但不是 ubuntu 和 mac,它在我的 Windows PC 上也可以正常工作)并出现许多错误:
错误:包“MSnbase”的延迟加载失败错误:错误:loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = 中“ggplot2”的包或命名空间加载失败vI[[j]]): 错误: 延迟加载包 'caret' 失败错误: 错误: 包 'ggplot2' 无法加载
完整的日志可以在https://github.com/YasinEl/mzRAPP/runs/2612299525?check_suite_focus=true看到。有谁知道这里可能有什么问题?
我想在不依赖 Gradle 项目的情况下在 CI 中运行 Kotlin 脚本,这样我就可以轻松地执行使用 shell/bash/batch 难以编程的操作,并且在需要时可以使用库。
让 Kotlin 脚本仅在 Ubuntu/Linux 上运行很好,但理想情况下,有一种方法可以让它在 Windows 和 macOS 目标以及特定于平台的项目上运行。
最近,我被 Travis CI 吸引到我的 Julia 项目的 GitHub 操作,因为我发现的所有示例操作都易于配置且开箱即用,并认为我会在我的Haskell 项目中尝试相同的操作。但是我发现的所有示例 Haskell Actions都没有功能,大多数都因安全性或gcc编译器标志错误而失败,即使对于在 Travis CI 中工作的完全相同的命令也是如此。
是否有运行Haskell GitHub Actions 的示例?我怀疑我只是没有在正确的地方寻找最新的工作示例。