标签: github-actions

复合运行步骤 GitHub 操作错误:“在 URI 中找不到操作”

我想用在GitHub上动作的复合运行步骤的动作,如所描述这里,为了重新使用他们在不同的工作流程。但是,我收到错误:

An action could not be found at the URI 'https://api.github.com/repos/scripts/build_ubuntu/tarball/v1
Run Code Online (Sandbox Code Playgroud)

我的主要工作流程(.github/workflows/BuildUbuntu.yml)如下:

[...]

jobs:
  ubuntu_build_appimage:
    name: Build MeshLab (Ubuntu - AppImage)
    runs-on: ubuntu-16.04

    steps:
    - uses: scripts/build_ubuntu@v1

[...]
Run Code Online (Sandbox Code Playgroud)

复合步骤 ( .github/workflows/scripts/build_ubuntu/action.yml) 如下:

runs:
  using: "composite"
  steps: 
  - uses: actions/checkout@v2
    with:
      submodules: true

  [other steps...]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

以下是链接: GitHub 提交 工作流

github github-actions

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

在 Github Action 中使用 ChromeHeadlessCI 运行 Angular 测试失败

我引导一个简单的 Angular (v10.1) 应用程序并创建 Github 操作工作流,如下所示。请注意,我已将测试配置为使用Angular 测试文档中指定的推荐配置运行

# ./github/workflows/main.yml
name: Test master branch

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [14.10]

    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}
      - name: Cache Node.js modules
        uses: actions/cache@v2
        with:
          # npm cache files are stored in `~/.npm` on Linux/macOS
          path: ~/.npm
          key: ${{ runner.OS }}-node-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.OS }}-node-
            ${{ …
Run Code Online (Sandbox Code Playgroud)

karma-jasmine angular github-actions

5
推荐指数
3
解决办法
2909
查看次数

即使凭据正确,Mongo 连接 url 在 Github Actions CI 中也失败

在我的 CI 中,我需要确保我的代码与 mongo 一起使用,因此我使用官方 mongo docker 映像并将所需的凭据作为 mongo 映像的环境变量传递。

build-on-mongo:
    runs-on: ${{ matrix.os }}
    env:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: password
      MONGO_INITDB_DATABASE: vote-stuysu-org
    services:
      mongo:
        image: mongo
        ports:
          # Maps tcp port 27017 on service container to the host
          - 27017:27017
    strategy:
      matrix:
        os: [ubuntu-20.04]
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: '14.x'
      - name: Install dependencies
        run: npm install

      - name: Test
        run: npm test
        env:
          MONGO_URL: mongodb://root:password@localhost:27017/vote-stuysu-org
Run Code Online (Sandbox Code Playgroud)

但是,在测试步骤中,会记录一条错误消息:

(节点:2158)未处理的PromiseRejectionWarning:MongoError:身份验证失败。

我在 nodejs 旁边使用 mongoose,所以这是负责身份验证的代码:

mongoose.connect(process.env.MONGO_URL, {
    useUnifiedTopology: true, …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js docker github-actions

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

Github 操作:构建和推送 docker 镜像失败。服务器消息:influence_scope:授权失败

我正在使用 GitHub 操作“构建并推送 Docker 映像”,因为它来自 Docker,并且是评价最高的已验证操作。

我的 YAML 文件的相关片段如下

  - name: Set up QEMU
    uses: docker/setup-qemu-action@v1
  - name: Set up Docker Buildx
    uses: docker/setup-buildx-action@v1
  - name: Login to DockerHub
    uses: docker/login-action@v1
    with:
      username: ${{ secrets.DOCKERHUB_USERNAME }}
      password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
  - name: Build and push
    id: docker_build
    uses: docker/build-push-action@v2
    with:
      push: true
      tags: user/app:latest
  - name: Image digest
    run: echo ${{ steps.docker_build.outputs.digest }}
Run Code Online (Sandbox Code Playgroud)

正如示例中所示。工作流运行时,我始终看到错误

10 [stage-1 2/2] COPY --from=build /workspace/target/*.jar app.jar
#10 DONE 0.9s

#12 exporting to …
Run Code Online (Sandbox Code Playgroud)

docker spring-boot github-actions docker-push

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

从 Docker Hub 中提取时无法启动 dockerized rails 应用程序

我 dockerized 一个 rails 应用程序,它可以在我的本地机器上完美运行。我将 Github Actions 配置为将应用程序推送到 Docker Hub 上的私有映像中,当我尝试在本地或另一台机器上拉取并运行它时,它会拉取映像,但容器随后退出,因为 Rails 失败并出现以下错误:

app  | rm: cannot remove 'tmp/pids/server.pid': No such file or directory
app  | => Booting Puma
app  | => Rails 6.0.3.3 application starting in development 
app  | => Run `rails server --help` for more startup options
app  | Exiting
app  | (erb):9:in `<main>': Cannot load database configuration: (NoMethodError)
app  | undefined method `[]' for nil:NilClass
app  |   from /usr/local/lib/ruby/2.7.0/erb.rb:905:in `eval'
app  |   from /usr/local/lib/ruby/2.7.0/erb.rb:905:in `result'
app  | …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails docker dockerhub docker-compose github-actions

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

如何防止 GitHub 操作工作流被分叉的存储库事件触发?

我最近突然想到,on pull_request如果你有一个公共存储库,任何人都可以触发 GitHub 操作的事件。

IE:

  1. 有人克隆了我的存储库
  2. 他们将一个something.yml文件添加到.github/workflowspull_request事件上运行的文件
  3. 他们创建了一个拉取请求

然后运行他们在拉取请求中指定的操作。如果您有自托管运行器,那么实际上地球上的任何人都可以在自托管运行器用户的上下文中在您的服务器上运行 shell 命令。

如果这像我认为的那样工作,那么地球上的任何人都可以通过拉取请求在您的服务器上运行任意代码。我试过这个,似乎是这样。

如何将可以在存储库上触发的操作列入白名单?否则,我如何安全地将 Github Actions 与公共存储库和自托管运行器一起使用。我已经看到了警告......我只是假设我必须小心不要接受来自未知来源的拉取请求。

github-actions

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

GitHub 操作:使用 PowerShell 将环境变量传递到操作中

我正在尝试构建将在 PowerShell 中运行的工作流。我正在为我的分支名称设置一个环境,以便在检出不同存储库的步骤中使用。

run: |
  $branchName = $Env:GITHUB_REF -replace "refs/heads/", ""
  echo "CURRENT_BRANCH=${branchName}" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
Run Code Online (Sandbox Code Playgroud)

在后面的步骤中,我试图传入变量:

- name: Checkout repo  
  uses: actions/checkout@v2
  with:
    repository: 'MyOrg/MyRepo'
    ref: ${env:CURRENT_BRANCH}
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的格式,包括大括号,但我一直从构建中获取输出,该输出显示该确切文本作为路径。我不确定如何对其进行评估。
当我这样做时, ${{ env:CURRENT_BRANCH }}我收到以下错误:

工作流无效。.github/workflows/publish.yml(第 54 行,第 14 列):意外符号:'env:CURRENT_BRANCH'。位于表达式中的位置 1:env:CURRENT_BRANCH

powershell environment-variables github-actions

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

有没有办法在设置页面的 Github 操作中设置非秘密环境变量?

据我所知,在 Github Actions 中设置环境变量有两种方式:

  • 将它们硬编码到 YAML 文件中
  • 在设置页面上将它们添加为存储库机密

存储库机密页面

但是如果我不想让他们保密怎么办?在上图中,SERVER_PREFIX 和 ANALYTICS_ENABLED 不应该是秘密的。有没有办法在设置页面上设置环境变量并使它们可见?在 Travis 中,我们有这样的选择。

continuous-integration github-actions

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

如何使github动作矩阵元素有条件

我有一个使用 'strategy' = 'matrix' 和要构建的特定配置列表的工作流。

链接到工作流 YAML(也在下面提供)

#
# build-N-test-v2.1-Dev and build-N-test-v2.1-Release are neary
# identical, but a few tests are commented out (to not needlessly stress CI system)
# for v2.1-Dev builds
#
# NOTE: I've tried many tricks - none which seem to work - to get this working on one file with one
# workflow and tests
#     https://github.community/t/what-is-the-correct-if-condition-syntax-for-checking-matrix-os-version/16221
#     https://github.community/t/how-to-conditionally-include-exclude-items-in-matrix-eg-based-on-branch/16853
#
# but none seem to work
#

name: build-N-test-v2.1-Dev

on:
  push:
    branches:
      - v2.1-Dev
      #- …
Run Code Online (Sandbox Code Playgroud)

github github-actions building-github-actions

5
推荐指数
4
解决办法
3441
查看次数

如何在 GitHub 公共存储库中隐藏 API 密钥?

我正在做一个简单的前端项目,我(或用户)在其中对 openweathermap api 进行 API 调用,获取天气信息并将其显示在网站上。

简单的 HTML、CSS 和 vanilla JS

所以我想保持 repo 公开并使用 GitHub Pages 托管站点......但我的 js 文件包含运行时所需的 API 密钥。

额外信息:

(所有这些都是我搜索时发现的)

我知道有一种方法可以将 API 密钥保存在 GitHub 机密中,然后在 yml 文件中将其作为 GitHub Actions 中的环境变量引用。但是如何在运行时为访问我网站的任何用户将该秘密放入 js 代码中?

api-key github-pages openweathermap github-actions

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