当我尝试运行 github 操作(它将构建 android apk)时,它显示错误
\n\n\n您已使用 100% 包含的 GitHub 存储服务(GitHub\n操作和包)。在设置每月支出限额之前,GitHub Actions 和 Packages\xe2\x80\x99 无法工作。
\n
\n因此,我删除了所有工件文件,但在删除每个工件后,操作存储并没有减少,
例如,我删除了 20 个工件文件,每个文件包含 20mb。这意味着 400Mb,当我检查“操作存储”时,它仍然显示已溢出
为什么会发生这种情况?
github github-actions building-github-actions github-actions-runners
这是一个非常有趣但非常令人沮丧的问题。我正在使用 ENV 变量,它指定日期。我提供了一个符合 ISO 8601 的版本,并在应用程序中检索它并进行解析。当我在 GH 操作工作流程中指定它时,它会被解析为日期(而不是字符串)并格式化。因此,我的应用程序解析失败。
\n示例:\n.github/workflows/rust.yaml
\nenv:\n MY_DATE: \'2020-10-07T12:00:00+01:00\'\nrun: echo $MY_DATE\nRun Code Online (Sandbox Code Playgroud)\n结果(GH 操作 UI):
\nenv:\n TMOU_GAME_END: 10/07/2020 11:00:00\n\n10/07/2020 11:00:00\nRun Code Online (Sandbox Code Playgroud)\n它特定于 GitHub 操作及其 yaml 解析,它可以在 Heroku、各种本地设置等上正常工作。
\n我尝试过但不起作用的事情:
\nThe workflow is not valid. .github/workflows/rust.yml: Unexpected tag \'tag:yaml.org,2002:str\'要么是The workflow is not valid. .github/workflows/rust.yml: The scalar style \'DoubleQuoted | SingleQuoted\' on line …拉取、标记然后推送我们在 Github 操作流中生成的 Docker 映像会导致推送带有新摘要的新映像,而不是简单地标记现有映像。
首先,我们使用 Docker build-push 操作的新 v2 来构建镜像 ( https://github.com/docker/build-push-action )
jobs:
build-push:
name: Build and push docker image
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GCR
uses: docker/login-action@v1
with:
registry: gcr.io
username: _json_key
password: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
- id: docker_build
uses: docker/build-push-action@v2
with:
tags: gcr.io/our-project/foo:initial-tag
push: true
target: build
build-args: |
NPM_TOKEN=${{ secrets.NPM_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
然后,在稍后的单独工作流程中,我们将该图像 …
我在 GitHub 存储库上有一个名为 的个人网站personal-website,每次我在本地进行更改时,我都必须通过 SSH 连接到我的服务器 (DigitalOcean),转到var/www/personal-website并创建一个git pull.
我试图找到一种方法,pull每次master都有一个push进入同一个分支。我读到了 GitHub actions 并写了一个文件.github/workflows/devops.yml
name: Build and Deploy
on:
push:
branches: master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
Run Code Online (Sandbox Code Playgroud)
在我的 GitHub Actions 页面上,作业成功。但是,服务器端没有完成自动拉取请求。我怎样才能解决这个问题?
我试图在部署完成后触发我们的冒烟测试。部署可以通过任何平台(如 vercel、GitHub 等)完成。我正在侦听deployment_status来自 GitHub 操作的事件,如果是success,我会根据 获取 PR 详细信息github.sha。代码如下:
name: Run Cypress Smoke Tests
on: [deployment_status]
....
steps:
- name: GitHub API Request
uses: octokit/request-action@v2.x
id: octokit
with:
route: GET /repos/:repository/commits/:commit_sha/pulls
mediaType: |
previews:
- antiope
- groot-preview
repository: ${{ github.repository }}
commit_sha: ${{github.sha}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
但有时github.sha并不正确。我从合并分支获取提交 ID 的值,而不是如上所述的实际存储库https://github.community/t/github-sha-not-the-same-as-the-triggering-commit/18286/2。
如何获取活动的正确分支名称或 PR 编号或提交 ID deployment_status?
提前致谢。
我很难弄清楚如何使管道使用 npm 模块恢复的缓存。
这是清单文件:
jobs:
setup-build-push-deploy:
name: Setup, Build, Push, and Deploy
runs-on: ubuntu-latest
steps:
# Checkout the repo
- name: Checkout
uses: actions/checkout@v2
- name: Setup NodeJS
uses: actions/setup-node@v1
with:
node-version: '12.14'
# Cache the npm node modules
- name: Cache node modules
uses: actions/cache@v1
id: cache-node-modules
env:
CACHE_NAME: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ env.CACHE_NAME }}-${{ hashFiles('app/package-lock.json') }}
restore-keys: |
${{ env.CACHE_NAME }}-
# Install NPM dependencies
- …Run Code Online (Sandbox Code Playgroud) 我的目标是将带有密码的私钥存储在 GitHub 机密中,但我不知道如何通过 GitHub 操作输入密码。
我尝试过的:
.github/workflows/docker-build.yml
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs …Run Code Online (Sandbox Code Playgroud) 我按照本教程设置了一个 Github Action,用于通过 Testflight 自动构建和部署 iOS 应用程序。如果我在本地使用 testlane,一切都会按预期工作,并且应用程序将发送到 TestFlight。但在 Github Actions 上,构建成功,但当我需要将应用程序上传到 Appstore Connect 时,出现错误:
错误:找不到与“match AppStore com.XXX.XXX”匹配的团队“XXX”的配置文件:Xcode 找不到任何与“XXX/match AppStore com.XXX.XXX”匹配的配置文件
我已正确添加所需的每个秘密,但由于某种原因,快速通道匹配无法找到我的配置文件和签名证书。任何帮助将不胜感激。我在下面添加我的 yaml 配置:
name: Build Flutter for iOS
# This workflow is triggered on pushes to the repository.
on: [push]
# workflow_dispatch:
env:
flutter_version: '1.22.1'
java_version: '12.x'
gcloud_version: '290.0.1'
jobs:
build:
name: Build
runs-on: macos-latest
steps:
# ===== APPSTORE SIGNING BUILD====#
- uses: actions/checkout@v2
- name: Select Xcode version
run: sudo xcode-select -s '/Applications/Xcode_11.3.app/Contents/Developer'
- name: Bundle …Run Code Online (Sandbox Code Playgroud) continuous-integration testflight flutter fastlane-match github-actions
我的 GitHub Actions 工作流程“在” windows-latest上运行。我想要一个执行 PowerShell(核心或旧版都可以)脚本的自定义操作。我有一个在 Linux 和 MacOS 上运行的并行操作。所以,我的 .github/actions/install-tf-win 目录包含这个 action.yml
name: install_tf_win
description: installs Terraform/TerraGrunt for Windows
runs:
using: "composite"
steps:
- run: install-tf-win\install-tf-win.ps1
shell: pwsh
Run Code Online (Sandbox Code Playgroud)
该目录还包含 install-tf-win.ps1。我已经尝试了该运行语句的各种变体。以“&”开头和不带“&”开头,使用正斜杠和反斜杠的路径变化。我最初从 $GITHUB_ACTION_PATH/install-tf-win.ps1 (适用于 Linux/MacOS)开始,但是似乎 GITHUB_ACTION_PATH 被评估为空字符串,然后有人抱怨 /install-tf-win.ps1 不被发现。我尝试了 pwsh 和 powershell 来获取 shell 键值。
上面显示的表格会导致此错误:
Run ./.github/actions/install-tf-win
install-tf-win\install-tf-win.ps1: D:\a\_temp\c1d3d7fa-074b-4f90-ade0-799dcebd84ec.ps1:2
Line |
2 | install-tf-win\install-tf-win.ps1
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The module 'install-tf-win' could not be loaded. For more information, run 'Import-Module
| install-tf-win'.
Run Code Online (Sandbox Code Playgroud)
显然,我可以通过将 PowerShell 语句放入一个步骤中来解决这个问题。但是,文档表明这应该可行。https://docs.github.com/en/free-pro-team@latest/actions/creating-actions/metadata-syntax-for-github-actions#runsstepsshell。
那么,我该如何让它发挥作用呢?
我正在为 Marketplace 做一个自定义 GitHub Action,以使其更容易在其他项目中使用。
该 Action 是用 TypeScript 制作的,并使用了一些包,例如typescript、babel(编辑:不再使用 babel)@actions/core和@actions/github。
当我将Action添加到另一个项目的工作流程中时,他可以安装包并构建项目,甚至初始化它,但是当执行开始时,他找不到@actions模块,并且@actions/core的核心未定义( @actions/core 是第一个使用的包,因此,它导致管道崩溃)。
该node_modules文件夹已正确创建,包位于其中,但在脚本内,它们未加载。
当我尝试在我的计算机上运行构建版本(构建器版本,带有 ncc 的版本和带有 tsc 的版本)时,会发生同样的错误:
TypeError: Cannot read property 'getInput' of undefined
Run Code Online (Sandbox Code Playgroud)
编辑:问题是包的导入不正确@actions/core
为了能够安装软件包并构建,我必须在我的action.yml文件中执行以下操作:
TypeError: Cannot read property 'getInput' of undefined
Run Code Online (Sandbox Code Playgroud)
我的文件夹结构:
|-dist # THIS IS'NT BEING PUSHED TO THE REPO
|-src
|--index.ts # Where the @actions/core is required
|--... # More …Run Code Online (Sandbox Code Playgroud) github-actions ×10
github ×4
caching ×1
deployment ×1
docker ×1
flutter ×1
git ×1
powershell ×1
ssh ×1
testflight ×1
typescript ×1
windows ×1
yaml ×1