我正在做一个项目。我需要创建一个工作流程来在 iOS 设备上运行集成测试。
场景: 我必须在某个端口运行本地服务器,同时我还运行集成测试。
询问:
我将感谢您的帮助。
continuous-integration github-actions github-actions-runners
我有一个工作流程,在其中一个步骤中,如果命令以退出代码 1(失败)结束,我想运行下一个命令/作业(修复导致上一个命令失败的问题),但我不希望这样退出代码 1 影响工作流结果状态。
在这种情况下,如果我的退出代码为 1,即使我解决了问题,结果状态也将为failure,但我希望结果状态为success如果第二个命令解决了问题。
这可能吗?
这是我的workflow.yml:
\
name: autoblack
on: [pull_request, push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.8
uses: actions/setup-python@v2.2.2
with:
python-version: 3.8
- name: Install Black
run: pip3 install git+git://github.com/psf/black
- name: Run black --check .
run: black --check .
reformat:
runs-on: ubuntu-latest
needs: [build]
if: always() && (needs.build.result == 'failure')
steps:
- uses: actions/checkout@v2.3.4
- name: Set up Python 3.8
uses: actions/setup-python@v2.2.2
with:
python-version: 3.8 …Run Code Online (Sandbox Code Playgroud) 您可以设置在整个工作流程中可用的环境变量,例如在这篇文章中。
(来自链接帖子上的解决方案)
name: Git Pull Request Workflow
on:
workflow_dispatch:
pull_request:
branches:
- master
env:
one: 1
two: zwei
three: tres
jobs:
first-job:
runs-on: ubuntu-latest
steps:
- run: |
echo "${{ env.one }}"
echo "${{ env.two }}"
echo "${{ env.three }}"
Run Code Online (Sandbox Code Playgroud)
我有一个使用矩阵策略的工作流程,如果我更改它,我必须在每个作业中更新它。我尝试将其设为全局变量,如下所示:
name: Model Multipliers
on:
push:
branches:
- main
env:
FRUIT: ["Apple", "Pear", "Banana", "Orange"]
jobs:
ssql-get:
runs-on: ubuntu-latest
strategy:
matrix:
FRUIT: ${{ env.FRUIT }}
name: Get data
steps:
- name: Checkout cum-rev repo
Run Code Online (Sandbox Code Playgroud)
但这给出了错误:
工作流程无效。.github/workflows/main.yml(行:12,列:9):不需要序列 .github/workflows/main.yml(行:19,列:15):无法识别的命名值:'env'。位于表达式内的位置 1:env.FRUIT …
我想执行一个 python 脚本来在 GitHub actions 中设置一些环境变量。我想稍后在 GitHub 操作步骤中使用这些环境变量。我的 python 脚本如下所示:
new_ver = get_version_from_commit(commit_msg)
if new_ver:
if new_ver == "false":
os.environ["SHOULD_PUSH"] = "0"
print("Not pushing the image to k8s")
exit(0)
else:
new_tag = app_name + ":" + str(new_ver)
os.environ["DOCKER_IMAGE_TAG"] = new_tag
os.environ["SHOULD_PUSH"] = "1"
print("New tag: " + new_tag)
exit(0)
Run Code Online (Sandbox Code Playgroud)
执行上述 python 脚本后,我的 GitHub 操作文件的一部分如下所示:
- name: Print env var
run: echo ${{ env.DOCKER_IMAGE_TAG }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: ${{ secrets.DOCKER_REGISTRY }}/${{ …Run Code Online (Sandbox Code Playgroud) python continuous-integration environment-variables github-actions
官方样板代码注入npm token如下
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
Run Code Online (Sandbox Code Playgroud)
如何访问和设置此变量?我在 GUI 中找不到它。
以下是我的 Github Actions 的 yml 文件。我想通过 docker 选项 ( ) 将 docker 用户设置为 root --user root。我如何通过 Github Actions 做到这一点?
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: run zap
uses: docker://sshniro/zap_action
with:
args: zap-baseline.py -t https://www.example.com
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我正在编写一个 Github 操作,我想在其中使用 postgres:11 图像作为服务。但每次尝试启动时,我都会收到错误无法初始化,数据库服务不健康。
Github 操作如下所示:
name: CI
on: [push]
jobs:
unit_tests:
name: 'Run unit tests'
runs-on: ubuntu-latest
services:
db:
image: postgres:11
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 15
steps:
- uses: actions/checkout@v2
- name: Set up Ruby 2.6
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Build and run tests
if: success()
working-directory: backend/ruby
env:
DATABASE_URL: postgres://postgres:@localhost:5432/surveymaster_test
RAILS_ENV: test
run: |
gem install bundler
bundle install --jobs 4 --retry 3
bundle exec rspec …Run Code Online (Sandbox Code Playgroud) 我正在使用fastlane Github 操作。我需要以 root 用户身份运行它。
- name: Deploy
uses: maierj/fastlane-action@v1.4.0
with:
lane: 'alpha'
subdirectory: 'android-staging'
Run Code Online (Sandbox Code Playgroud)
我怎样才能以 sudo 方式运行它?
我有一个工作流程,在推送到 master 之后,我想创建一个版本并将资产上传到它。
我正在使用actions/create-release@v1和actions/upload-release-asset@v1。
我想将 bash 命令的输出传递给操作参数。但是我发现“$(command)”的语法不起作用。
如何将 bash 命令的输出传递给操作的参数。
例如,我想做这样的事情:
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.token }}
with:
tag_name: $(cat projectFile | grep -Po '(?<=Version>).*(?=</Version>)')
Run Code Online (Sandbox Code Playgroud) 我创建了一个管道,我想每次推送任何分支时触发
有我的default.yml:
name: default
on:
push:
branches:
- '*'
jobs:
build:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: CocoaPod Install
run: pod install
- name: Force xcode version
run: sudo xcode-select -switch /Applications/Xcode_11.2.1.app
- name: Build
run: ./pipelines.sh build
Run Code Online (Sandbox Code Playgroud)
当我把这个推到github上时,我遇到了这个错误
没有定义事件触发器
on
github-actions ×10
github ×5
bash ×1
docker ×1
image ×1
pipeline ×1
postgresql ×1
python ×1
python-3.x ×1
yaml ×1