首先让我解释一下我想要做什么。我确实编写了 ac# .net 应用程序,如果标签被推送到主分支,我想构建它。这个构建应该创建一个名为 like 的版本Release {Tag}。该版本应该获得由 Windows Server 构建的所有工件。现在我只有在没有东西的情况下才能获得标签。
我确实在这里找到了一个关于如何设置环境变量的问题,但这似乎只适用于这样的 linux。我确实尝试在官方文档中查找信息,但没有使其进入工作状态。目前我正在使用以下代码尝试从提交中获取标签。
name: Live build
on: [push]
#push:
# tags:
# - '*'
jobs:
build:
name: Create build artifact
runs-on: windows-latest
steps:
- name: Clone repository
uses: actions/checkout@v2
with:
ref: develop
- name: Get current tag
run: echo '::set-env name=tag::${(("${env:GITHUB_REF}" -split "/")[-1] -replace " ","")}'
- name: Show current tag
run: echo "${env.tag}"
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是结果,在我看来并不正确

我确实尝试echo '::set-env name=tag::${(("${env:GITHUB_REF}" -split "/")[-1] -replace " ","")}'用以下测试替换这部分调用 …
我正在尝试构建一个 GitHub 操作工作流,其中涉及安装其他私人代表中存在的依赖项。我已经尝试了各种排列(我现在有点迷失了方向),但我无法让它们中的任何一个工作。
我创建了一个秘密,存储在TOKEN_GITHUB其中授予访问其他存储库的权限,因此我可以正确安装,因为我相信所提供的范围仅限于当前代表。
这是一个示例 GitHub 工作流文件,它最终通过 CDK 部署多个 Lambda,但为了简单起见,我将其排除在外:
deploy.yml
name: Lint, Audit, Test & Deploy
on:
push:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: 12
- name: getList Lambda
run: |
cd lambdas
cd getList
npm ci
npm audit --production --audit-level=moderate
- name: getItem Lambda
run: |
cd lambdas
cd getItem
npm ci
npm audit --production --audit-level=moderate
- name: saveItem Lambda
run: |
cd …Run Code Online (Sandbox Code Playgroud) 我有 2 个分支的 GitHub 存储库:“master”和“develop”。
我们的工作流程是,任何代码都应该提交到“develop”分支,然后推送到 GitHub,然后应该创建一个 Pull Request 将提交合并到“master”分支。
我正在尝试编写一个操作,一旦开发人员将提交推送到分支“develop”并具有以下脚本,它将创建一个拉取请求:
name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: master
- name: Create Pull Request
uses: peter-evans/create-pull-request@v2
with:
commit-message: update master branch
title: Update master branch
branch: develop
Run Code Online (Sandbox Code Playgroud)
我可以看到这个动作在“develop”分支的“Push”事件上已经成功执行了,但是我看不到任何新的Pull Requests!
我检查了该操作的日志,并在创建拉取请求的末尾找到了以下几行:
将拉取请求分支推送到 'origin/develop'
分支 'develop' 不再与基础分支 'master' 不同
关闭拉取请求并删除分支 'develop'
似乎我错过了一些东西,但无法弄清楚。
任何帮助表示赞赏。
代码在我的本地机器上运行良好,没有出现错误。但是当我推送到 GitHub 时,构建失败了。
这是我的工作流文件块:
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Install Rust Toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
- name: Install `rust-src` Rustup Component
run: rustup component add rust-src
- name: Run `cargo check`
uses: actions-rs/cargo@v1
with:
command: check
Run Code Online (Sandbox Code Playgroud)
这是错误。
error: failed to read `/usr/share/rust/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/Cargo.toml`
21
##[error]failed to read `/usr/share/rust/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/Cargo.toml`
22
Caused by:
23
No such file or directory (os error 2)
24
##[error]The process '/usr/share/rust/.cargo/bin/cargo' failed with exit code 101 …Run Code Online (Sandbox Code Playgroud) 我使用触发我的工作流程
on:
push:
tags:
Run Code Online (Sandbox Code Playgroud)
GITHUB_REF 在这种情况下不会包含分支名称,我怎么能得到它?
我有几个步骤可以将一些文件夹从源代码复制到 GitHub WorkSpace,如下所示。在运行这个构建我看到
警告:未找到具有提供路径的文件:${GITHUB_WORKSPACE}。不会上传任何工件。
我检查并确认两个文件夹都不为空。我错过了什么?
- name: copy arm templates
run: Copy 'Infrastructure/' '${GITHUB_WORKSPACE}/Infrastructure'
shell: powershell
- name: copy release management scripts
run: Copy 'Scripts/' '${GITHUB_WORKSPACE}/Scripts'
shell: powershell
- name: publish artifact
uses: actions/upload-artifact@v2
with:
path: ${GITHUB_WORKSPACE}
name: ${{ env.VERSION_MAJOR }}.${{ env.VERSION_MINOR }}
Run Code Online (Sandbox Code Playgroud) 我有 3 个目录 ./github/workflows/
在每个目录中,我都有多个工作流.yml文件,例如linters/codeQuality.yml
我的问题是,当发出拉取请求时,只会执行 root 中的工作流文件,而不是这些目录中的工作流文件。
我怎么解决这个问题?
我想在容器内运行 django 测试用例。我可以从 docker hub 拉取私有镜像。但是当我运行命令进行测试时,它无法运行。
任何人都尝试在容器内运行测试用例。
jobs:
test:
container:
image: abcd
credentials:
username: "<username>"
password: "<password>"
steps:
- uses: actions/checkout@v2
- name: Display Python version
run: |
python -m pip install --upgrade pip
pip install -r requirements/dev.txt
- name: run test
run: |
python3 manage.py test
Run Code Online (Sandbox Code Playgroud) 当我在本地环境中安装我的示例模块时,python 能够在导入模块时找到它。然而,当由 Github Actions 执行时,工作流失败并且报告的错误是我的模块 (ci-test) 未安装。
main.yaml:
- name: Install ci-test package
run: |
python setup.py build
python setup.py install
python -c "import ci_test"
Run Code Online (Sandbox Code Playgroud)
完整的 yaml 文件位于此处。Github Actions 的错误输出是:
Installed /home/runner/.local/lib/python3.7/site-packages/ci_test-0.0.1-py3.7.egg
Processing dependencies for ci-test==0.0.1
Finished processing dependencies for ci-test==0.0.1
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'ci_test'
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud) 我有一个使用Firestore. 在此之前我正在尝试编写 GitHub 操作,我现在使用Travis,现在我想转向 GitHub 操作。在Travis上一切正常,但在 GitHub Actions 上出现错误。
错误:(此错误不是问题模拟器应该在没有身份验证的情况下工作,因为它在其他一些存储库中工作但不在此上)
E: google.auth.exceptions.DefaultCredentialsError: 无法自动确定凭据。请设置 GOOGLE_APPLICATION_CREDENTIALS 或明确创建凭据并重新运行应用程序。有关更多信息,请参阅https://cloud.google.com/docs/authentication/getting-started
工作流程(不工作): Repo FireO Python
name: Python package
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [3.7]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m …Run Code Online (Sandbox Code Playgroud) python google-cloud-platform google-cloud-firestore github-actions