标签: github-actions

删除所有文件后无法回收操作和包的存储

当我尝试运行 github 操作(它将构建 android apk)时,它显示错误

\n
\n

您已使用 100% 包含的 GitHub 存储服务(GitHub\n操作和包)。在设置每月支出限额之前,GitHub Actions 和 Packages\xe2\x80\x99 无法工作。

\n
\n

操作和包的存储\n因此,我删除了所有工件文件,但在删除每个工件后,操作存储并没有减少,
例如,我删除了 20 个工件文件,每个文件包含 20mb。这意味着 400Mb,当我检查“操作存储”时,它仍然显示已溢出
为什么会发生这种情况?

\n

github github-actions building-github-actions github-actions-runners

5
推荐指数
1
解决办法
2186
查看次数

在 GitHub 操作中使用日期作为 ENV 变量

这是一个非常有趣但非常令人沮丧的问题。我正在使用 ENV 变量,它指定日期。我提供了一个符合 ISO 8601 的版本,并在应用程序中检索它并进行解析。当我在 GH 操作工作流程中指定它时,它会被解析为日期(而不是字符串)并格式化。因此,我的应用程序解析失败。

\n

示例:\n.github/workflows/rust.yaml

\n
env:\n        MY_DATE: \'2020-10-07T12:00:00+01:00\'\nrun: echo $MY_DATE\n
Run Code Online (Sandbox Code Playgroud)\n

结果(GH 操作 UI):

\n
env:\n    TMOU_GAME_END: 10/07/2020 11:00:00\n\n10/07/2020 11:00:00\n
Run Code Online (Sandbox Code Playgroud)\n

它特定于 GitHub 操作及其 yaml 解析,它可以在 Heroku、各种本地设置等上正常工作。

\n

我尝试过但不起作用的事情:

\n
    \n
  • 不使用引号、单引号 (\')、双引号 (")
  • \n
  • 设置另一个 ENV 变量 LC_TIME 为 en_DK.UTF-8
  • \n
  • 使用 !!str 简写(参见https://yaml.org/spec/1.2/spec.html,示例 2.23. 各种显式标签部分);这个失败要么是 \xc2\xa0The 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 …

yaml github-actions

5
推荐指数
1
解决办法
6427
查看次数

标记并推送 Docker 镜像更改摘要

拉取、标记然后推送我们在 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)

然后,在稍后的单独工作流程中,我们将该图像 …

docker google-container-registry github-actions

5
推荐指数
1
解决办法
3947
查看次数

GitHub Actions:在服务器上进行 git pull

我在 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 结果 在此输入图像描述

在我的 GitHub Actions 页面上,作业成功。但是,服务器端没有完成自动拉取请求。我怎样才能解决这个问题?

github continuous-deployment github-actions

5
推荐指数
1
解决办法
861
查看次数

github-actions 获取deployment_status事件的分支名称或PR编号

我试图在部署完成后触发我们的冒烟测试。部署可以通过任何平台(如 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

提前致谢。

git deployment github-actions

5
推荐指数
0
解决办法
445
查看次数

Github Actions 恢复的缓存未被使用

我很难弄清楚如何使管道使用 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)

continuous-integration caching github github-actions

5
推荐指数
1
解决办法
2503
查看次数

如何使用 GitHub Actions 发送 ssh-add 的密码?

我的目标是将带有密码的私钥存储在 GitHub 机密中,但我不知道如何通过 GitHub 操作输入密码。

我尝试过的:

  1. 我创建了一个没有密码的私钥并将其存储在 GitHub Secret 中。

.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)

ssh github-actions

5
推荐指数
2
解决办法
5019
查看次数

通过 Fastlane 和 Github Actions 在 Testflight 中部署失败

我按照教程设置了一个 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

5
推荐指数
1
解决办法
1464
查看次数

创建在 Windows 主机上运行 Powershell 脚本的 GitHub Action

我的 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

那么,我该如何让它发挥作用呢?

windows powershell github-actions

5
推荐指数
1
解决办法
8699
查看次数

GitHub Actions - 如何使用 TypeScript

问题

我正在为 Marketplace 做一个自定义 GitHub Action,以使其更容易在其他项目中使用。

该 Action 是用 TypeScript 制作的,并使用了一些包,例如typescriptbabel编辑:不再使用 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 typescript github-actions building-github-actions

5
推荐指数
1
解决办法
5022
查看次数