我分叉了守望者存储库,我想为其添加一些步骤main.workflow(目标是发布工件以创建 snap 包)。
但我看不到 Actions存储库中选项卡。
是否有任何其他步骤来配置分叉存储库上可用的 Github 操作?
是否可以从我的action.yml文件中引用另一个 GitHub 操作?
请注意,我在这里谈论的是操作,而不是工作流程。我知道这可以通过工作流来完成,但是操作可以引用其他操作吗?
我在 monorepo 中有一个 CI 工作流,为此工作流最终构建了两个项目。作业运行良好,但是,我想知道是否有办法通过为作业设置运行程序来删除此工作流.yml 文件中的重复项。我将它们分开,以便它们并行运行,因为它们不相互依赖并且可以更快地完成。等待 CI 完成时,5 分钟与 10 分钟以上的时间相差很大。
jobs:
job1:
name: PT.W Build
runs-on: macos-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v1
- name: Setup SSH-Agent
uses: webfactory/ssh-agent@v0.2.0
with:
ssh-private-key: |
${{ secrets.SSH_PRIVATE_KEY }}
- name: Setup JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Setup Permobil-Client
run: |
echo no | npm i -g nativescript
tns usage-reporting disable
tns error-reporting disable
npm run setup.all
- name: Build PT.W Android
run: |
cd apps/wear/pushtracker
tns build …Run Code Online (Sandbox Code Playgroud) 我无法从操作运行的脚本中访问在 GitHub 操作配置文件的顶级定义的环境变量。
例如,给定以下配置文件:
name: x-pull-request
on: pull_request
env:
FOO: bar
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: does a thing
run: ./scripts/do-a-thing.sh
Run Code Online (Sandbox Code Playgroud)
...以及以下脚本:
X=${FOO:default}
echo "X: $X" # X: default
Run Code Online (Sandbox Code Playgroud)
FOO配置文件中定义的环境变量对脚本不可用,正在使用默认值。
那么,如何从构建步骤运行的 Bash 脚本访问环境变量?我错过了前缀还是什么?(我知道input散列中定义的值要求您INPUT_在引用它们时使用前缀。)
我的工作流程需要对步骤进行循环,这对于策略/矩阵来说是完美的。
唯一的问题是策略/矩阵需要由常量设置。
是否可以将策略矩阵与脚本输出一起使用?
name: tests
on: [push]
jobs:
test:
runs-on: ${{ ubuntu-latest }}
strategy:
fail-fast: false
matrix:
versions: $(./script.py)
steps:
- uses: actions/checkout@v2
.......
Run Code Online (Sandbox Code Playgroud) 我在 GitHub 操作中设置了一个工作流来运行我的测试并创建测试覆盖的工件。我的 YAML 文件的精简版如下所示:
name: Build
on: [pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
# Other steps here
- name: Build app
- name: Run tests
- name: Create artifact of test coverage
# Other steps here
Run Code Online (Sandbox Code Playgroud)
问题是当测试失败时不会创建工件。
我if: always()从docs 中找出了条件,但这也会导致当我的Build app步骤失败时运行此步骤。我不希望这种情况发生,因为在这种情况下没有什么可存档的。
如果上一步已运行(成功或失败),我如何仅运行此步骤?
continuous-integration github continuous-deployment github-actions
我正在尝试通过GitHub 操作进行 maven 部署,但出现以下错误:-
gpg: directory '/home/runner/.gnupg' created
gpg: keybox '/home/runner/.gnupg/pubring.kbx' created
gpg: no default secret key: No secret key
gpg: signing failed: No secret key
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.272 s
[INFO] Finished at: 2020-04-06T12:18:44Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (sign-artifacts) on project pretty-simple-jar: Exit code: 2 -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
我知道我需要以某种方式在运行操作工作流的虚拟运行器中导入我的 gpg 密钥,但我无法找到通过 GitHub 操作工作流在虚拟运行器中导入我的密钥的方法?
以下是我的工作流程:-
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 helmfile 部署图表。使用相同版本和相同集群在本地运行得很好。
头盔文件
environments:
dev:
values:
- kubeContext: nuc
- host: urbantz-api.dev.fitfit.dk
prod:
values:
- kubeContext: nuc
- host: urbantz-api.fitfit.dk
releases:
- name: urbantz-api
namespace: urbantz-api-{{ .Environment.Name }}
chart: helm/
kubeContext: "{{ .Values.kubeContext }}"
# verify: true
values:
- image:
tag: '{{ requiredEnv "IMAGE_TAG" }}'
- ingress:
enabled: true
hosts:
- host: {{ .Values.host }}
paths:
- path: /
Run Code Online (Sandbox Code Playgroud)
完整的管道可以在这里找到,但相关命令可以在下面看到
[ "$IMAGE_TAG" == "latest" ] && ./helmfile --debug -e dev sync
Run Code Online (Sandbox Code Playgroud)
管道的完整输出可以在这里找到,但相关部分可以在下面看到
...
NOTES:
1. Get …Run Code Online (Sandbox Code Playgroud) 现在我正在使用 GitHub Actions 来构建我的项目。在我的本地计算机上,我定义本地主机地址映射如下/etc/hosts:
11.19.178.213 postgres.dolphin.com
Run Code Online (Sandbox Code Playgroud)
在我的数据库配置中,如下所示:
spring.datasource.druid.post.master.jdbc-url = jdbc:postgresql://postgres.dolphin.com:5432/dolphin
Run Code Online (Sandbox Code Playgroud)
在我的生产服务器上,我可以编辑映射来定位数据库的不同 IP 地址。但现在我正在 GitHub Actions 中运行单元测试。如何编辑主机映射以使数据库映射到 GitHub Actions 的容器?我在 GitHub Actions 中定义了容器,如下所示:
jobs:
build:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:13.2
env:
POSTGRES_PASSWORD: postgrespassword
POSTGRES_DB: dolphin
POSTGRES_USER: postgres
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
Run Code Online (Sandbox Code Playgroud)
我应该如何处理主机映射?我已经搜索过文档,但没有发现任何有关此问题的信息?