我得到了这个工作流程:
\nname: Build and Release\n\non:\n push:\n tags:\n - "v*.*.*"\n\npermissions:\n contents: write\n\njobs:\n build:\n runs-on: ubuntu-latest\n\n steps:\n - name: Checkout code\n uses: actions/checkout@v2\n\n - name: Install PHP\n uses: shivammathur/setup-php@v2\n with:\n php-version: \'8.2\'\n extensions: mbstring, zip\n\n - name: Install PHP dependencies\n run: composer install --no-interaction --prefer-dist\n\n - name: Use Node.js 16.13.0\n uses: actions/setup-node@v2\n with:\n node-version: 16.13.0\n\n - name: Install required npm version\n run: npm -g install npm@8.5.5\n\n - name: Install npm dependencies\n run: npm ci\n\n - name: Build assets\n run: npm run …Run Code Online (Sandbox Code Playgroud) continuous-integration github continuous-deployment github-actions
我有一个运行端到端测试的公共存储库。这些测试需要存储在 GitHub 中的机密。
相应的工作流程yaml文件有如下pull_request条目:
on:
pull_request:
....
Run Code Online (Sandbox Code Playgroud)
问题:如果我(所有者)自己创建拉取请求,工作流程将正确运行并访问机密。如果有人从分叉创建 PR,GitHub 会要求我批准运行,但是一旦我批准,工作流程将看不到这些秘密的值,并且测试将失败。
如果我更改pull_request为pull_request_target,它将正确访问秘密。然而,这样,在运行工作流程之前它不会征求我的批准(因此秘密很容易泄露)。
pull_request_target:
branches:
- main
Run Code Online (Sandbox Code Playgroud)
问题:当从分叉上运行 PR 时,如何使 GitHub 操作访问机密,同时仍需要批准运行?
continuous-integration github github-actions github-secret cicd
我的用例是我希望每个构建/运行的工件都有一个唯一的版本号。在使用诸如CircleCI,Travis等当前工具的情况下,有可用的内部版本号,基本上它是一个总会增加的计数器。因此,我可以创建类似的版本字符串0.1.0-27。即使对于相同的提交,此计数器也会每次增加。
如何使用GitHub Actions做类似的事情?Github操作仅提供GITHUB_SHA和GITHUB_REF。
versioning automation github continuous-delivery github-actions
我正在尝试在新的github action yaml格式(新)中重建ci-cd,问题是我似乎无法在一个步骤中将计算值用作参数。
我尝试了以下
- name: Download Cache
uses: ./.github/actions/cache
with:
entrypoint: restore_cache
args: --bucket=gs://[bucket secret] --key=node-modules-cache-$(checksum package.json)-node-12.7.0
Run Code Online (Sandbox Code Playgroud)
但是,“ $(checksum package.json)”作为参数的一部分无效。请不要与命令校验和存在(容器中确实存在)无关。
我正在尝试在Google Cloud build中复制这种设置
- name: gcr.io/$PROJECT_ID/restore_cache
id: restore_cache_node
args:
- '--bucket=gs://${_CACHE_BUCKET}'
- '--key=node-modules-cache-$(checksum package.json)-node-${_NODE_VERSION}'
Run Code Online (Sandbox Code Playgroud)
我希望能够以与其他ci-cd解决方案类似的方式使用计算参数。
有没有办法做到这一点,我很想念?也许能够在docker容器中使用'run:'来运行一些命令。
我对GitHub Actions感到非常兴奋。
我现在使用Travis-CI和AppVeyor,它们具有“ PR”(拉请求)构建,可以构建代码,就像合并了拉请求一样。
我想使用GitHub Actions进行持续集成,但是GitHub Actions似乎仅支持构建推送的提交,而不是合并的结果。如何达到我想要的效果?
每次触发我的构建工作流程时,都会下载Maven依赖项。
Travis CI提供了一种缓存Maven存储库的方法。Github操作是否提供允许缓存Maven存储库的类似功能?
我正在尝试使用 GitHub Actions 来构建我的 Flutter 应用程序,但我不知道要选择哪个容器映像。
是否有可用于 Flutter 的可信容器映像?
我需要进行哪些调整才能在构建步骤中使用 Flutter SDK?
Run flutter pub get
/__w/_temp/46389e95-36bc-464e-ab34-41715eb4dccb.sh: 1: /__w/_temp/46389e95-36bc-464e-ab34-41715eb4dccb.sh: flutter: not found
##[error]Process completed with exit code 127.
Run Code Online (Sandbox Code Playgroud)
我修改了dart.yml由 GitHub Actions 生成的文件,如下所示:
name: Dart CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
container:
image: google/dart:latest
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: flutter pub get
- name: Run tests
run: flutter test
Run Code Online (Sandbox Code Playgroud) Github Actions是否有DRY方式在多个作业步骤中计算和共享值?
在下面的工作流程yml文件中,回显$ {GITHUB_REF} | cut -d'/'-f3`-$ {GITHUB_SHA}会分多个步骤重复。
name: Test, Build and Deploy
on:
push:
branches:
- master
jobs:
build_and_push:
name: Build and Push
runs-on: ubuntu-latest
steps:
- name: Docker Build
uses: "actions/docker/cli@master"
with:
args: build . --file Dockerfile -t cflynnus/blog:`echo ${GITHUB_REF} | cut -d'/' -f3`-${GITHUB_SHA}
- name: Docker Tag Latest
uses: "actions/docker/cli@master"
with:
args: tag cflynnus/blog:`echo ${GITHUB_REF} | cut -d'/' -f3`-${GITHUB_SHA} cflynnus/blog:latest
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置要通过 Github Actions 的“存储库调度事件”触发的工作流,如此处和此处指定的那样。作为 API 请求的输入,它指定我需要包含一个事件类型,作为自定义 webhook 事件名称。
但是,我也希望能够在我的工作流程中使用此事件类型,以便我可以有多个由该repository_dispatch选项触发的工作流程,每个工作流程由其自己的事件类型触发。
如关于如何使用 webhook 事件触发器的部分所述,我尝试使用 types 字段,在声明我的工作流应何时触发时(请参阅代码)。然而,这只会导致没有被触发。如果我省略类型字段,工作流会触发。
这是我的工作流程
name: External trigger
on:
repository_dispatch
types: external_test
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Say hi
run: echo "Hi!"
Run Code Online (Sandbox Code Playgroud)
这是 API 请求负载:
{
"event_type": "external_test"
}
Run Code Online (Sandbox Code Playgroud) 我是GitHub Actions的新手,有2个工作-一个运行我的测试,另一个将我的项目部署到服务器上。
显然,我希望测试可以在每个分支上运行,但是部署应该仅在将某些内容推入主程序时进行。
我正在努力寻找一种在特定分支上运行作业的方法。我知道有可能只在特定分支上运行整个工作流程,但这意味着我将拥有一个“测试”工作流程和一个“部署”工作流程。
这听起来像是一个解决方案,但是它们将并行运行。在理想情况下,测试将首先运行,并且只有在测试成功的情况下,部署工作才能开始。使用2个单独的工作流时不是这种情况。
我将如何实现这一目标?是否可以在特定分支上运行作业?
github-actions ×10
github ×5
automation ×1
bash ×1
cicd ×1
flutter ×1
github-api ×1
maven-3 ×1
versioning ×1
yaml ×1