标签: github-actions

Docker - 错误:无法从非 TTY 设备(GCP 服务帐户)执行交互式登录

该命令docker login -u _json_key --password-stdin https://gcr.io < ~/service-account.json在本地运行,但是当我尝试在 Github Actions 等 CI 环境中运行它时,出现以下错误。

错误:无法从非 TTY 设备执行交互式登录

##[错误]进程已完成,退出代码为 1。

service-accounts docker google-cloud-platform github-actions

8
推荐指数
1
解决办法
2万
查看次数

如何在 GitHub Actions CI 的主目录中添加路径?

我正在关注这篇文档文章,目前我有以下代码:

echo '::add-path::$HOME/.local/bin'
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用。我尝试了单引号和双引号。我唯一的猜测是它不喜欢$HOME,但我真的很想避免硬编码/home/runner与主目录无关。

有没有办法在 GitHub Actions 中添加本地路径?

continuous-integration github-actions

8
推荐指数
1
解决办法
9443
查看次数

github actions - 在 postgres 服务中运行 sql 脚本

我想在 github actions 的 postgres 服务中运行一个脚本,创建一个表并添加一个扩展。我怎样才能做到这一点?我需要制作 shell 脚本还是可以直接在 yaml 文件中执行?

SQL脚本

drop database mydb;
create database mydb;
\c mydb;
CREATE EXTENSION "pgcrypto";
Run Code Online (Sandbox Code Playgroud)

工作流程

name: API Integration Tests

on: 
    pull_request:
    push:
        branches:
            -master

env:
    DB_HOST: localhost
    DB_USERNAME: postgres
    DB_PASSWORD: rt

jobs:
    build:
        runs-on: ubuntu-latest

        strategy:
          matrix:
            node-version: [10.x, 12.x, 13.x]


    services:
        postgres:
          image: postgres:latest
          env:
            POSTGRES_DB: mydb        
            POSTGRES_PASSWORD: helloworl
            POSTGRES_USER: postgres
          ports:
            - 5433:5432
          # Set health checks to wait until postgres has started
          options: >-
            --health-cmd pg_isready
            --health-interval 10s
            --health-timeout …
Run Code Online (Sandbox Code Playgroud)

postgresql github-actions

8
推荐指数
1
解决办法
4476
查看次数

如何使用 Github Actions 自动执行(通常)交互式构建脚本?

我正在尝试将 CI 添加到一个使用一组用 bash 编写的构建脚本的项目中。脚本会提示输入几次配置信息(设置标志、设置参数等)。Github Actions 是否有自己的命令来处理此问题,或者是否有办法设置 Expect 脚本(或类似的脚本)?

continuous-integration expect github-actions

8
推荐指数
1
解决办法
3045
查看次数

如何在发布时在 github 操作中获取目标分支

我有一个 github 操作,应该使用 github UI 提供的发行版本更新当前分支tag_name

除了目标分支的未知变量名称之外,一切似乎都有效。

on:
  release:
    types: [created]

jobs:
  update-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2 # <-- I want the branch to match github release selected branch
      - name: Update version
        run: |
          tag_name=$(echo "${github.event.release.tag_name}" | sed -e 's/[]$.*[\^]/\\&/g' )
          sed -i "s/\"version\": \".*\",/\"version\": \"${tag_name}\",/" ./src/components/package.json
      - name: Commit Updated version.
        run: |
          git config --local user.email "action@github.com"
          git config --local user.name "GitHub Action"
          git add . && git commit -m "Bump version" -a …
Run Code Online (Sandbox Code Playgroud)

github-actions

8
推荐指数
1
解决办法
2305
查看次数

在 Electron 桌面应用程序中存储敏感信息的最佳实践

我正在使用 Electron.js 和 React.js 开发桌面应用程序,并且必须存储一些敏感信息,例如 API 密钥和数据库凭据。因此,我开始挖掘并决定使用混淆方法对 JSON 文件中的数据库凭据进行加密。

现在我有两个SECRET_KEYS,一个用于加密,一个用于混淆。所以我关心的是如何安全地保存这些信息。我对 Electron 不太熟悉,但如果我错了,请纠正我:据我所知,我们没有安全使用自定义环境变量的选项,因为我们需要在本地存储这些变量才能使用在应用程序中。因此,做了一些研究,我发现策略之一是使用某种外部服务来获取这些密钥。

PS:加密密钥将保存在 S3 中,但我仍然需要处理我的 AWS 密钥。

因此,我使用 Github Actions 并在Secrets选项中设置键值。基本上,我有一个工作流程,其中有一个 env 选项来指定我的变量。这个过程发生在我的构建之后。-- 我正在使用 Typescript,因此我必须运行构建脚本将代码转换为 JS。

最后,在我的 Webpack 上,我必须使用EnvironmentPlugin才能访问代码中的环境变量值。

基本上,我完成所有这些过程都是为了不在代码中硬编码我的密钥或将它们存储在本地,但我不太明白硬编码密钥(考虑到我正在使用私有存储库)和拥有这个密钥之间的区别使用 Github Actions 设置键值的过程。因为理论上,Github 会用process.env.MY_KEY值替换 my,对吗?或不?

我的意思是,如果黑客使用某种软件获取我的“源代码”,他是否能够看到我的 KEYS 内容?我使用 Github Actions 执行的过程足够安全,还是只是用来尽可能隐藏我的键值?

security electron github-actions

8
推荐指数
1
解决办法
3514
查看次数

使用 buildx 在 x64 平台上使用 dotnet 构建 arm32 映像会引发错误

介绍

我目前正在尝试使用 dotnet 为多个平台自动构建 docker 映像。

我读过,最好的方法是使用 docker buildx 命令。

我尝试为arm32、arm64和x64进行设置。x64 和 arm64 的构建使用此命令可以正常工作,但是我遇到了 arm32 的问题。这是我正在执行的命令:

docker buildx build -f DeveMazeGeneratorCore.Web/Dockerfile --platform linux/arm,linux/arm64,linux/amd64 -t devedse/devemazegeneratorcoreweb .
Run Code Online (Sandbox Code Playgroud)

错误

我得到的错误是:

#17 [linux/arm/v7 build 5/8] RUN dotnet restore "DeveMazeGeneratorCore.Web/D... 

272#17 0.254 A fatal error occurred, the folder [/usr/share/dotnet/host/fxr] does not contain any version-numbered child folders 

273#17 ERROR: executor failed running [/bin/sh -c dotnet restore "DeveMazeGeneratorCore.Web/DeveMazeGeneratorCore.Web.csproj"]: exit code: 131
Run Code Online (Sandbox Code Playgroud)

我已经在这里读过(https://github.com/dotnet/dotnet-docker/issues/1537#issuecomment-615269150),您显然无法在 64 位系统上构建 arm32 映像。有人可以解释一下为什么会这样吗?我的意思是我们使用 QEMU 来模拟arm,对吗?

我可以通过创建一个新的 dockerfile 来解决这个问题,该文件基于 64 位映像构建,然后创建一个 arm32 …

.net docker github-actions buildx

8
推荐指数
0
解决办法
922
查看次数

私有存储库的 Github 环境

我使用 GitHub 操作来部署我的代码。他们的文档指出他们有可以启用的环境(测试版)。我在存储库的设置中没有看到环境选项。

有谁知道我如何启用此功能?

**编辑添加:我正在使用私人 Github 存储库

github-pages github-actions

8
推荐指数
1
解决办法
3353
查看次数

使用 actions/checkout@v2 时保留构建文件夹

我设置了一个 GitHub 自托管运行器来部署 Next.js 应用程序,该应用程序检查存储库、构建并重新启动 pm2。

问题是,每当该actions/checkout@v2步骤启动时,它都会删除存储库中的所有文件,包括.next包含所有构建文件的构建文件夹。每当工作流程运行时,这都会导致应用程序停机。

我浏览了 的源代码actions/checkout@v2,在提出这个问题时,在这个文件中从第 #109 行开始,写入了删除目录内容的逻辑。如果我的理解是正确的,我一定设置了 git-lfs 来防止删除文件。我现在不需要 git-lfs 。

我可以提交拉取请求以进行配置,以防止删除目录中的文件。我错过了什么吗?这个问题有什么解决方法吗?

为了更清楚起见,我当前的工作流程文件,

name: Build & Deploy
defaults:
  run:
    shell: bash -l {0}

on:
  push:
    branches: master

jobs:
  build:
    runs-on: self-hosted

    steps:
     # This action deletes all my build files when it runs
      - uses: actions/checkout@v2
        with:
          clean: false

      - name: Install dependencies
        uses: bahmutov/npm-install@v1

      - name: Build
        run: npm run build

      - name: Deploy
        run: pm2 restart …
Run Code Online (Sandbox Code Playgroud)

next.js github-actions

8
推荐指数
1
解决办法
5090
查看次数

如何使用 GitHub Actions 缓存 firebase/emulators 目录

我正在使用 firebase 模拟器来运行测试,并且收到了有关使用缓存系统进行优化的警告。

我怎样才能做到这一点?

看起来您正在 CI 环境中运行。您可以通过缓存 /home/runner/.cache/firebase/emulators 目录来避免重复下载 Firestore 模拟器。

firebase-tools github-actions

8
推荐指数
2
解决办法
2011
查看次数