问题标签 [building-github-actions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
github - 如何从 github 操作中读取 docker-compose 文件和 package.json 文件的环境变量?
从我的 docker-compose 文件中,我必须读取一个环境变量。在本地,我可以像这样读取该变量:ENV_FILE=.env docker-compose -f docker-compose.dev.prisma.yml up --build
但由于 .env 文件位于 .gitignore 中,GitHub 操作无法获取该文件。我怎样才能阅读它们?
我的 package.json 文件中的问题几乎相同。我需要从 npm 脚本中读取一些环境变量:
我尝试的是在 github 的秘密中添加这些变量,但它没有得到这些变量。虽然期望这 2 个文件,但 env 是从 github 操作中完美读取的。
github-actions - 来自 Dockerfile 的 Github Action 服务容器在同一个仓库中
我正在学习 Github Actions 并设计一个需要Service Container的工作的工作流。
文档指出,配置必须指定“用作运行操作的服务容器的 Docker 映像。该值可以是 Docker 基本映像名称或公共 docker Hub 或注册表” 。文档中的所有示例都使用公开可用的 Docker 映像,但是我想从我的存储库中包含的 Dockerfile 创建一个服务容器。
是否可以使用本地 Dockerfile 来创建服务容器?
由于作业依赖于服务容器,因此该映像在作业开始时必须存在,因此无法通过同一作业中的较早步骤创建该映像。该图像可以在单独的作业中构建,但是由于作业在单独的运行器中执行,我相信作业 2 将无法访问在作业 1 中创建的图像。如果这是真的,那么我可以按照这种方法使用上传/下载-工件所以将工作 1 的图像提供给工作 2?
如果一切都失败了,我可以让 Job 1 创建映像并将其上传到 Docker Hub,然后让 Job 2 从 Docker Hub 下载它,但肯定有更好的方法。
github-actions - 工作流运行时如何识别 GitHub Action 的名称?
我发布了一个名为Marketly Incr Version且版本为v1.1的 GitHub Action 。当我将 yml 中的操作引用为 时uses: actions/Marketly-Incr-Version@v1.1
,出现以下错误。我也尝试了小写一切,但仍然得到同样的错误。我究竟做错了什么?
github - 一段时间后自动公开私有 Git 存储库
有谁知道在一定天数后自动将 Github 存储库公开的方法。我想让我的 Github 存储库在一段时间内保持私有,然后它会自动公开。这甚至可能吗?或者我应该在那段时间之后手动将其公开?
github - GitHub 操作默认设置
官方 github 操作文档说我可以defaults
设置为所有作业指定默认设置(https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#defaults)。我想设置它以指定
但这失败了
我想为我的所有工作指定相同runs-on
的strategy
内容。为什么不defaults
工作?
github - 使用 GitLab CI/CD 等 GitHub 操作
我刚开始将我所有的 GitLab 存储库迁移到 GitHub。我有一段时间没有使用 GitHub,所以我偶然发现了 - 至少对我来说是新功能 - GitHub Actions。
由于我刚刚开始了一个新项目,我想使用 GitHub Actions 来构建和部署我的新应用程序。我真的不知道我做错了什么,我将在下面附上我的工作流程文件。
我想要实现的是,每次我推送到一个不是我的 master 并且没有前缀“release/”的分支时,我想为我的开发系统执行这个构建和部署。稍后,我还将设置相同的脚本,但仅适用于暂存(预生产)系统,前提是我推入前缀为“release/”的分支,并且确实第三次仅用于主分支的生产。
我想知道的是,这些动作 - 至少在我的理解中 - 是零星执行的。我想要像在 GitLab 中那样的行为:每次我从本地工作机器推送功能分支或任何东西时,都应该执行开发管道。然后我将创建一个拉取请求。只有当管道成功时,我才希望能够合并。合并到分支后(例如 feature/... 到开发),我想自动执行开发管道。
我什至不确定这是否可能。也许我也没有正确理解动作的概念。
谢谢!
编辑:原来我只是在一些服务中断期间开始尝试新技术。GitHub 在其基础架构中遇到了一些问题。它现在按预期工作。
python - Django 设置和 GitHub 操作秘密
我有一个Django项目,并且正在使用Postgres数据库。我想找到一种更简单的方法来在本地和 Github 上存储我的凭据,这样我就可以在这两个地方运行测试,但我的敏感信息都不在 git repo 中。
即使该数据库仅存在于我的计算机上(并且 Github 测试数据库在 GitHub 上一次仅存在大约一分钟),我想为SECRETS使用可能的最佳实践,所以当我上线时,我已经准备好了。
目前,我拥有的唯一敏感数据是数据库密码。以下是我如何将我的真实密码保存在 GitHub 之外。
settings.py(在 Git 中):
localsettings.py(不在 Git 中):
testsettings.py(在 Git 中):
使用此设置,我可以在本地正常运行测试,python manage.py test
但是当我在 Github 上运行它们时,我必须使用python manage.py test --settings=path.to.testsettings
有没有一种方法可以像 GitHub 那样在本地存储秘密,这样我就可以只拥有一个设置文件,它就可以在本地和 GitHub 上工作?
git - Github 操作错误找不到操作
我在 GitHub 上有一个简单的 nodejs 应用程序,我想构建一个 docker 映像并使用 GitHub 操作推送到 AWS ECR。
aws.yml:-
我在repository-home>settings>secrets中添加了AWS_REPOSITORY_URL、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY。
我确定我输入了正确的值,我也在 gitlab-ci 中使用这些值并且它正在工作。
当我推送到沙箱分支时,CI 作业开始并出现以下错误 -
我究竟做错了什么?我的 YML 文件有错误吗?
从日志来看,作业在Checkout步骤失败。它试图从https://api.github.com/repos/actions/checkout/tarball/sandbox下载一些东西,它给出了 404(我试图在浏览器中打开 URL)。我认为它应该尝试从https://api.github.com/repos/actions/checkout/tarball/master下载。我不确定为什么它会这样。
python - 需要 NLTK“punkt”时 GitHub Actions 失败
我已经编写了一些需要使用 NLTK 的 punkt 的代码。我已经包含nltk
在requirements.txt
和 中setup.py
。但是,当我使用 GitHub 操作运行我的项目的构建时,它会因此错误而失败。
告诉 GitHub 需要的操作而不在代码中某处'punkt'
硬编码的标准方法是什么?nltk.download('punkt')
我应该在文件中添加一行,ci.yml
最好的方法是什么?
github-actions - 当有人取消作业时,如何在 GitHub 操作中挂钩和执行清理命令?
我正在创建一个动作(使用actions/javascript-actions)来创建一些东西,然后如果有人中途取消工作,我需要清理这些东西。
我无法找到如何连接到退出前/取消并执行清理操作。这可能吗?有人对实现这一目标有任何建议吗?