标签: github-actions

如何将所有 Github 环境特定变量从 vars 注入到 env 上下文?

GitHub 环境中的环境变量可在vars context中使用。

有时,上下文中可能有 5-6 个变量vars,并且您希望将它们注入到env上下文中以便在步骤中使用它们。有自动化的或简单的方法吗?

github github-actions

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

将 GitHub Action 从 set-output 更新为 GITHUB_OUTPUT

我已经尝试了一切我能想到的变体,但未能找到正确的语法。我有一个 GitHub Actions 工作流程,当前包含以下步骤:

steps:
- name: Parse Assignee Properties
  id: assignee_properties
  uses: actions/github-script@v6
  with:
    script: |
      const assignees = context.payload.issue.assignees;
      const assigneeStrings = assignees.map(a => `{'login': '${a.login}', 'id': ${a.id}, 'url': '${a.html_url}'}`);
      const jsonArrayString = `[${assigneeStrings.join(', ')}]`;
      console.log(`::set-output name=assigneeJson::${jsonArrayString}`);
Run Code Online (Sandbox Code Playgroud)

上面使用了旧的 set-output 命令,该命令已被删除。https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/上的文档示例均使用 echo "::set-output name={ name}::{value}" 以及如何更改它们。

我在上面的脚本中尝试过这种格式,它返回一个语法错误的错误。我尝试使用 console.log 的不同变量,例如:

  • console.log(`assigneeJson='${jsonArrayString}' >> $GITHUB_OUTPUT`);
  • console.log("assigneeJson='${jsonArrayString}' >> $env:GITHUB_OUTPUT");
  • console.log("assigneeJson='${jsonArrayString}'") >> $env:GITHUB_OUTPUT;

没有一个有效。我猜这非常简单,我错过了一些明显的东西,但似乎很少有在脚本中使用它和使用 console.log 的文档。

github-actions

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

在 GitHub 操作中,如果没有 SSH 私钥或密码,突然无法连接

我使用 GitHub actions 的持续部署已经有一年或更长时间了,一切都很好,直到昨天我推送更新时,我发现 GitHub actions 中出现错误,并显示以下消息:

没有 SSH 私钥或密码就无法连接

这是我的 yml 代码

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v1

      - name: Copy repository contents via scp
        uses: appleboy/scp-action@master
        env:
          HOST: ${{ secrets.HOST }}
          USERNAME: ${{ secrets.USERNAME }}
          PORT: ${{ secrets.PORT }}
          KEY: ${{ secrets.SSHKEY }}
        with:
          source: "."
          target: "/home/ubuntu/dev-folder"

      - name: Executing remote command
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.HOST }}
          USERNAME: ${{ secrets.USERNAME }}
          PORT: ${{ secrets.PORT }}
          KEY: ${{ secrets.SSHKEY }}
          command_timeout: 10m
          script: cd …
Run Code Online (Sandbox Code Playgroud)

github continuous-deployment github-actions

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

在 GitHub 上更新您的操作以在节点 16 而不是节点 12 上运行

虽然我看到它声称这个问题在其他地方得到了回答,但事实并非如此。我收到关于在此代码中使用 Node 12 而不是 Node 16 的投诉:

没有文档准确说明 Node 12 和 Node 16 之间的区别(至少在提供的链接中没有)。

  lint-flake8:
    runs-on: ubuntu-latest
    name: flake8
    strategy:
      fail-fast: false
      matrix:
        python-version: [3.8]
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python ${{matrix.python-version}}
      uses: actions/setup-python@v2
      with:
        python-version: ${{matrix.python-version}}
    - name: flake8
      continue-on-error: false
      run: |
        pip install flake8
        flake8 pyuvm tests/pytests

Run Code Online (Sandbox Code Playgroud)

StackExchange 上的假设答案(GitHub Actions - “Node.js 12 actions are deprecated.”,虽然我将所有内容升级到 v18)说了一些关于runvs的内容runs

我是否只需将最后一个命令中的单词更改为runruns

node.js github-actions

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

使用 GitHub Actions 检查分支是否与主分支保持同步

main如何向我的 GitHub Actions 脚本中添加一些内容,以确保分支与当前分支保持同步,即具有main祖先分支?

我知道 GitHub 的存储库设置页面有一个“合并前要求分支保持最新”选项。但是,如果分支不是最新的,让 GitHub Actions 脚本快速失败仍然很有用,而不是花费 5-10 分钟来设置我们的测试环境。

git github-actions

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

有谁知道从GitHub Actions删除工作流程的方法吗?

我在.github/workflows存储库的文件夹中创建了几个工作流,以尝试使用GitHub Actions。从那以后,我学到了很多东西,并从我的仓库中删除了所说的“实验”工作流程。删除“实验性”工作流yaml文件并提交删除操作后,当我转到存储库的“操作”选项卡时,仍会看到此后删除的工作流。

我没有选择删除并重新开始的选项吗?这不可能吗?是否有可能通过GitHub API?嗯

github github-api github-actions

1
推荐指数
9
解决办法
483
查看次数

使用 GitHub Actions(和 GitHub 包注册表)自动化构建和发布过程

这是一个问答,我已经把我的解决方案放在了答案中。

我是 GitHub Actions beta 和 GitHub Package Registry beta 的一部分。因为我是一个非常懒惰的人,所以我不仅自动化了 npm 包的构建过程,而且我还想自动化它的发布。
为了做到这一点,我不得不面对一些问题:

  1. 如何确保在刚刚构建的版本上执行“发布”作业?
  2. 如何在 GitHub Actions 中检测包版本何时更新?
  3. 如何使用该检查的结果来编辑操作工作流的行为?
  4. 如何从工作流中将包发布到 npm?
  5. 发布到 npm 后,如何将完全相同的版本发布到 GitHub 包注册表?

github npm github-actions github-package-registry

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

如何给 Github Action 一个文件的内容作为输入?

我有一个工作流程,其中包含在构建和人工制品时创建版本号的操作。这个版本号被写入文件。

我怎样才能把它作为另一个动作的输入?

即:如何在另一个操作中使用此版本号作为提交消息的一部分?

github github-actions

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

如何使用 GitHub 操作 SCP 存储库文件?

我正在尝试实施一个 GitHub 操作,该操作将我的 repo 文件在推送到 master 分支时将其 SCP 到服务器。我在 Bitbucket Pipelines 上有一个类似的设置,但现在我正在学习使用 GitHub 操作来做到这一点,我没有任何运气。

我的项目是一个简单的Node.js 应用程序,我想简单地将所有文件 scp 到服务器,然后我将运行 post-scp 脚本,以便npm i将新文件复制到服务器。只是想在我学习的时候保持简单。

我正在使用scp-files GitHub Action。这是我的文件:

name: Deploy to production

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
jobs:
  deploy:
    name: SCP files to server
    runs-on: ubuntu-latest
    steps:
      - name: SCP files via ssh key
        uses: appleboy/scp-action@master
        env:
          USERNAME: ${{ secrets.USERNAME }}
          HOST: ${{ secrets.HOST }}
          KEY: ${{ secrets.SSH_DEPLOYMENT_KEY }}
        with:
          source: './*'
          target: '/home/ubuntu/flatbread/' …
Run Code Online (Sandbox Code Playgroud)

git continuous-integration scp github github-actions

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

Github Action 使用现有的 Python 脚本并获取 String 输出

我第一次致力于Github Action在 Android 中设置 CI/CD 工作流程

我有一个现有的Python scriptChange log成为HTML String out put.

我想在 github action 中使用它并接收更改日志作为字符串输出。

我有这样的事情

- name: Generate Change logs
  id: changelogs
  working-directory: .github/workflows/
  run: python release_mail_generator.py ${{ secrets.GITHUB_TOKEN }}  v2.21
Run Code Online (Sandbox Code Playgroud)

想使用这样的东西来获取changelog字符串作为输出

- name: Generate Change logs
  id: changelogs
  working-directory: .github/workflows/
  run: echo "::set-output name=changelog::$(echo python release_mail_generator.py ${{ secrets.GITHUB_TOKEN }}  v2.21)"
Run Code Online (Sandbox Code Playgroud)

我的python脚本

from __future__ import print_function

import sys
from collections import defaultdict
from github import Github

# Install …
Run Code Online (Sandbox Code Playgroud)

python workflow continuous-integration android github-actions

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