标签: github-actions

如何根据上次提交时修改的文件或目录触发 github 操作作业或工作流程

在 Gitlabci 中,仅当文件或目录被修改时才可以触发特定作业。

是否可以使用 Github actions 做同样的事情?

github-actions

4
推荐指数
1
解决办法
4106
查看次数

GitHub Actions 中的嵌套模板(从另一个 yaml 文件调用 yaml 文件)

GitHub 操作是否支持嵌套模板?例如,以下是 Azure Pipeline yaml 的示例,它调用另一个 yaml 文件:

- job: BuildFunctions
    
  steps:
  - ${{ each func in parameters.functionApps }}:
    - template: yaml/build-functionapps.yml
      parameters:
Run Code Online (Sandbox Code Playgroud)

是否可以在 GitHub 操作中从另一个 yaml 文件调用 yaml 文件?

github github-actions

4
推荐指数
2
解决办法
2470
查看次数

NodeJS 的 Github 操作 - 本地文件的“错误:找不到模块”

我有一个 Node.js 项目的 GitHub 工作流文件:

name: NodeJS CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [10.x]

    steps:
    - uses: actions/checkout@v2
    - name: Using Node version ${{ matrix.node-version }}
      uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test
    - name: Upload code coverage
      run: bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
      env:
        CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
Run Code Online (Sandbox Code Playgroud)

项目结构如下:

.
??? package-lock.json
??? package.json
??? src
?   ??? api
? …
Run Code Online (Sandbox Code Playgroud)

github mocha.js node.js node-modules github-actions

4
推荐指数
1
解决办法
2171
查看次数

GitHub action 自托管运行器如何工作?

我刚刚了解了 GitHub Actions,我认为它非常棒。

一开始让我印象深刻的一件事是,当我设置自托管运行器时,GitHub 要求我在我的本地机器上运行一堆命令,这显然是在私有网络中,它没有暴露在互联网上(入站- 意味着 www 无法访问它)。

但是,在安装了 GitHub 要求我安装的内容后,似乎已成功设置了一个 webhook,并且每次推送/合并到我的 master(在 GitHub 操作文件中设置)时,我计算机上的工作人员都知道并开始提取最新的版本并开始安装依赖项和其他 CI/CD 内容。

现在我很好奇的是,当我的虚拟机在私有网络中时,GitHub 实际上是如何与我的虚拟机对话的?

我从来都不是一个网络人,所以我不太确定为什么这是可能的。但它很迷人。

github-actions

4
推荐指数
1
解决办法
502
查看次数

Github Actions 无法在 ubuntu-18.04.5 上安装 Libv8 gem

我们正在使用 Github Actions 进行 CI 设置。当我们尝试安装mini_racer依赖于libv8gem 的 gem时,我们的 Gem 安装操作突然停止工作。但是当操作尝试为这个 gem 安装和构建扩展时,它在那里失败。

以下是配置:

jobs:
  spec:
    runs-on: ubuntu-latest

    services:
      postgresql:
        image: circleci/postgres:11.5-alpine-ram
        ports: ["5432:5432"]
        env:
          POSTGRES_USER:
          POSTGRES_DB:
          POSTGRES_PASSWORD:

    steps:
      - uses: actions/checkout@v1

      - name: Bundler/Gems Cache
        uses: actions/cache@v2
        with:
          path: vendor/bundle
          key: ${{ runner.os }}-bundle-v1-${{ hashFiles('Gemfile.lock') }}
          restore-keys: |
            ${{ runner.os }}-bundle-v1-

      - name: Read nvm version
        id: nvmrc
        run: echo ::set-output "name=NODEVERSION::$(cat .nvmrc)"

      - uses: ruby/setup-ruby@v1

      - uses: actions/setup-node@v1
        with:
          node-version: "${{ steps.nvmrc.outputs.NODEVERSION }}"

      - name: …
Run Code Online (Sandbox Code Playgroud)

ruby v8 bundler libv8 github-actions

4
推荐指数
1
解决办法
777
查看次数

您如何使用此 GitHub Actions 工作流程设置 PHP 版本?

我使用 GitHub Actions 工作流已经有一段时间了:

name: Laravel

on: [push]

jobs:
  laravel-tests:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: Copy .env
      run: php -r "file_exists('.env') || copy('.env.example', '.env');"
    - name: Install Dependencies
      run: |
        rm -rf vendor
        composer install
    - name: Generate key
      run: php artisan key:generate
    - name: Link Storage
      run: php artisan storage:link
    - name: Create Database
      run: |
        mkdir -p database
        touch database/database.sqlite
    - name: Execute tests (Unit and Feature tests) via PHPUnit
      env:
        DB_CONNECTION: sqlite
        DB_DATABASE: database/database.sqlite …
Run Code Online (Sandbox Code Playgroud)

laravel github-actions

4
推荐指数
1
解决办法
409
查看次数

github 动作矩阵中的成对值

我想针对 C 和 C++ 项目的三个编译器版本进行构建:gcc、gcc-8 和 clang(对于 C 编译器),对于 C++ 编译器,它们应该分别使用 g++、g++-8 和 clang++。

总共3个配置。我不想使用所有 C 和 C++ 编译器版本的产品进行构建,即。没有 gcc/g++-8 等。

如何指定具有这三种配置的矩阵,每种配置都设置两个变量?

目前我正在使用它(请注意,指定了 2 个操作系统,因此总共有 6 个配置):

    strategy:
      matrix:
        os: [ubuntu-16.04, ubuntu-latest]
        cpp_compiler: [g++, g++-8, clang++]
        include:
          - c_compiler: gcc
          - cpp_ompiler: g++-8
            c_compiler: gcc-8
          - cpp_compiler: clang++
            c_compiler: clang
Run Code Online (Sandbox Code Playgroud)

本质上就是把C++编译器( cpp_compiler)作为主版本,然后include用hacky的方式c_compiler根据cpp_compiler版本来设置,但一定有更好的...

github-actions

4
推荐指数
3
解决办法
274
查看次数

Github 提取 .zip 文件的操作步骤?

有没有办法使用 Windows 运行程序将 .zip 文件的内容提取为 Github Action 的一部分?

我似乎找不到重命名文件、解压缩/压缩等内容的参考。

unzip github-actions

4
推荐指数
1
解决办法
1834
查看次数

Github 操作:使用 PowerShell 为 Windows 构建设置环境变量

我定义GENERATOR_PLATFORM为一个空的环境变量,然后我想将它设置为我的 Windows 版本。但是,变量永远不会被设置:

env:
  GENERATOR_PLATFORM:

 steps:
    - name: windows-dependencies
      if: startsWith(matrix.os, 'windows')
      run: |
         $generator= "-DCMAKE_GENERATOR_PLATFORM=x64"
        echo "Generator: ${generator}"
        echo "GENERATOR_PLATFORM=$generator" >> $GITHUB_ENV

   - name: Configure CMake
      shell: bash
      working-directory: ${{github.workspace}}/build
      run: cmake $GITHUB_WORKSPACE $GENERATOR_PLATFORM
Run Code Online (Sandbox Code Playgroud)

powershell environment-variables github-actions

4
推荐指数
1
解决办法
329
查看次数

Github action 一个接一个运行两个进程

我有两个 GitHub 操作应该一个接一个地运行,第一个install 1是安装和运行服务器(例如,服务器在端口 3000 上运行),这可行,但是安装 1 未完成(服务器已启动,您没有得到“停止”信号是可以的)但我只需要install 2 在服务器启动时继续下一步,我应该如何解决这个问题?

简而言之,当您运行某个进程并且您需要在一段时间后运行其他进程时

请参阅此repo操作

- name: install 1
  shell: bash
  run: |
    make install
    make run
    
- name: install 2
  shell: bash
  run: |
    kubectl apply -f ./config/samples/test.yaml
Run Code Online (Sandbox Code Playgroud)

我使用 kubebuilder 来生成项目包括makefile... https://github.com/kubernetes-sigs/kubebuilder

github github-actions

4
推荐指数
1
解决办法
422
查看次数