我今天早上醒来收到 GitHub Actions BETA 邀请(wooo)并开始玩它,目的是迁移我目前在 CircleCI 上运行的一些简单的构建、测试和部署管道。
我仍在尝试了解 Actions,但我想到的流程是,在推送之后,工作流中的第一个 Action 将启动一个 Docker 容器。在该容器内,我将运行一些简单的构建过程,例如最小化资产和删除人工制品。然后,下一个操作将对构建运行一些测试。管道中的下一个操作将部署到多个环境之一,具体取决于我推送到的分支。
我已经按照https://developer.github.com/actions/creating-github-actions/creating-a-docker-container/ 上的文档进行操作,并有一个基本的工作流程,可以启动 Docker 容器并在其中运行一些构建命令WORKDIR. 我也可以从内部运行部署(通过 rsync)WORKDIR。
但是,我想将其拆分为单独的步骤/操作,但我无法找到解决此问题的方法。
本质上,这类似于我正在使用的 CircleCI 作业/工作流模型。但是,使用 CircleCI,第一个作业运行构建,然后在整个工作流的其余部分中保留生成的目录结构,如下所示:
# Persist dist directory
- persist_to_workspace:
root: ~/project
paths:
- .
Run Code Online (Sandbox Code Playgroud)
所以,我有点将 CircleCI 的 Jobs 等同于 GitHub 的 Actions,这可能是错误的做法?本质上,我想知道的是我是否可以WORKDIR在第一个 Action 的 Docker 容器中保留 a并使其WORKDIR可用于后续的 Action。
这是可能的,还是我想像 GitHub Actions 可以做的事情?
谢谢!
我正在尝试访问SECRET发送到 GitHub 操作的s的值,但我很挣扎。[FILTERED]无论键或原始值是什么,每次都会返回值。
我可以ENVIRONMENT VARIABLES毫无问题地访问,所以我一定是在其他地方搞砸了。
本质上,我想要做的是向我的操作/容器发送一个 ssh 密钥,但是在将任何其他密钥/值作为秘密发送时我遇到了同样的问题。
我的(简化的)GitHub Action 如下:
action "Test" {
uses = "./.github/actions/test"
secrets = [
"SSH_PRIVATE_KEY",
"SSH_PUBLIC_KEY",
]
env = {
SSH_PUBLIC_KEY_TEST = "thisisatestpublickey"
}
}
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM ubuntu:latest
# Args
ARG SSH_PRIVATE_KEY
ARG SSH_PUBLIC_KEY
ARG SSH_PUBLIC_KEY_TEST
# Copy entrypoint
ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
入口点.sh:
#! /bin/sh
SSH_PATH="$HOME/.ssh"
mkdir "$SSH_PATH"
touch "$SSH_PATH/known_hosts"
echo "$SSH_PRIVATE_KEY" > "$SSH_PATH/id_rsa"
echo "$SSH_PUBLIC_KEY" > "$SSH_PATH/id_rsa.pub"
echo "$SSH_PUBLIC_KEY_TEST" > "$SSH_PATH/id_rsa_test.pub" …Run Code Online (Sandbox Code Playgroud) 我正在创建一个简单的Chef食谱,用于在VPS上设置虚拟主机。我通过将domain变量传递给Chef / .erb模板来创建正确的.conf文件,但是我也在尝试这样做(简化的代码示例):
node[:domains].each do |domain|
execute 'sudo mkdir -p /var/www/#{domain}/public_html'
end
Run Code Online (Sandbox Code Playgroud)
但是,变量不会输出到字符串中,命令只是创建一个名为:
/var/www/#{domain}/public_html
Run Code Online (Sandbox Code Playgroud)
那么...在Chef执行命令中是否存在使用循环中的变量的公认方法-还是我的Ruby语法不合常规?