我已经使用 github actions 有一段时间了,但今天我的部署开始失败。以下是 github 操作日志中的错误
Command: git
Arguments: ls-remote --tags --heads git://github.com/adobe-webplatform/eve.git
Directory: /home/runner/work/stackstream-fe/stackstream-fe
Output:
fatal: remote error:
The unauthenticated git protocol on port 9418 is no longer supported.
Run Code Online (Sandbox Code Playgroud)
经过调查,我的 yml 文件中的以下部分似乎导致了该问题。
- name: Installing modules
run: yarn install
Run Code Online (Sandbox Code Playgroud)
我已经查看了此更改日志,但似乎无法理解这个问题。
其他详细信息:服务器:EC2 实例 Github 操作步骤:
steps:
- name: Checkout
uses: actions/checkout@v2
- id: vars
run: |
if [ '${{ github.ref }}' == 'refs/heads/master' ]; then echo "::set-output name=environment::prod_stackstream" ; echo "::set-output name=api-url::api" ; elif [ '${{ github.ref …Run Code Online (Sandbox Code Playgroud) 我正在从我的 github 工作流程(操作)发出一个 curl 发布请求,以获取自托管运行器的注册令牌,但我收到以下响应:
{
"message": "Resource not accessible by integration",
"documentation_url": "https://docs.github.com/rest/reference/actions#create-a-registration-token-for-a-repository"
}
Run Code Online (Sandbox Code Playgroud)
下面是我的 github 工作流程的精简版本:
name: get-token
"on":
push: { branches: ["token"] }
jobs:
print-token:
name: print-token
environment: dev
# needs: pre-pkr
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Get registration token
id: getRegToken
run: |
curl -X POST -H \"Accept: application/vnd.github.v3+json\" -H 'Authorization: token ${{ secrets.GITHUB_TOKEN }}' https://api.github.com/repos/myprofile/myrepo/actions/runners/registration-token
Run Code Online (Sandbox Code Playgroud)
最终我想将此令牌传递给我使用 packer build 命令创建的 ami(下一步)。我也尝试使用加壳器的 shell 配置程序执行上述curl 请求,但响应相同。无法弄清楚我是否必须允许 github ui 的某些权限?或者还有什么办法可以做到这一点?提前致谢。
npm ci这是我在 GitHub Action 文件中运行命令安装依赖项时遇到的问题。
我正在开发一个博览会管理的应用程序,并用作GitHub ActionsCI 来触发构建,每当我将代码推送到developmemt分支时。
这是我的构建脚本:
name: EAS PIPELINE
on:
push:
branches:
- development
workflow_dispatch:
jobs:
build:
name: Install and build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 14.x
- name: Setup Expo
uses: expo/expo-github-action@v6
with:
expo-version: 4.x
token: ${{ secrets.EXPO_TOKEN }}
expo-cache: true
- name: Install dependencies
run: npm ci
- name: Build on EAS
run: EAS_BUILD_AUTOCOMMIT=${{1}} npx eas-cli …Run Code Online (Sandbox Code Playgroud) 当我在配置中使用 GitHub Actions 时,等待时间很长,并且显示“正在等待跑步者接手此作业”。
“跑者”是什么意思?我该如何解决这个问题?
得到
拒绝允许 OAuth 应用程序在
.github/workflows/cd.yml没有workflow范围的情况下创建或更新工作流”
上git push。如何授予workflow范围?
我计划使用 Docker 将我们的 Travis CI 构建移动到 GitHub Actions 以进行我们的每次提交测试。
我可以在本地重复运行这些新的 GitHub Actions 工作流程吗?是否有在本地运行任何 GitHub Actions 工作流程的通用方法?
我有一个具有两个工作流程的 monorepo:
.github/workflows/test.yml
name: test
on: [push, pull_request]
jobs:
test-packages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test packages
run: |
yarn install
yarn test
...
Run Code Online (Sandbox Code Playgroud)
.github/workflows/deploy.yml
name: deploy
on:
push:
tags:
- "*"
jobs:
deploy-packages:
runs-on: ubuntu-latest
needs: test-packages
steps:
- uses: actions/checkout@v1
- name: deploy packages
run: |
yarn deploy
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
...
Run Code Online (Sandbox Code Playgroud)
这不起作用,我无法在另一个工作流程中引用作业:
### ERRORED 19:13:07Z
- Your workflow file was invalid: The pipeline is not valid. The pipeline must contain at least …Run Code Online (Sandbox Code Playgroud) continuous-integration github continuous-deployment github-actions
我正在尝试遵循 Github 使用 github 操作测试我的构建的示例,然后压缩测试结果并将它们作为工件上传。 https://help.github.com/en/actions/automating-your-workflow-with-github-actions/persisting-workflow-data-using-artifacts#uploading-build-and-test-artifacts
但是,当我的测试失败时,我该怎么办。这是我的行动。当我的测试通过一切正常时,我的结果会被压缩并导出为工件,但如果我的测试失败,它会停止工作中的其余步骤,因此我的结果永远不会发布。

我尝试添加 continue-on-error: true https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idstepscontinue-on -error
这使它在失败后继续并上传我的测试结果。但是即使我的测试步骤失败,该作业也被标记为通过。有没有办法让它上传我的工件,即使一个步骤失败,同时仍然将整个工作标记为失败?
name: CI
on:
pull_request:
branches:
- master
push:
branches:
- master
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Test App
run: ./gradlew test
- name: Archive Rest Results
uses: actions/upload-artifact@v1
with:
name: test-results
path: app/build/reports/tests
Run Code Online (Sandbox Code Playgroud) 我刚刚开始探索 Github 操作,但是我发现自己在多个地方放置了一个命令。
我有一个composer.json不在根目录中的 PHP 项目,我的结构如下所示:
my-project:
readme.md
app:
composer.json
Run Code Online (Sandbox Code Playgroud)
显然还有更多内容并且有一个原因,但我composer.json位于一个名为“app”的子目录中。因此,在我的工作流程中,我每次都必须 cd 进入该文件夹才能运行命令:
name: CI
on: [push]
jobs:
phpunit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup Symfony
run: |
cd app
cp .env.dev .env
- name: Install Composer Dependencies
run: |
cd app
composer install --prefer-dist
- name: Run Tests
run: |
cd app
php bin/phpunit
Run Code Online (Sandbox Code Playgroud)
如何cd app在每个阶段删除?