标签: github-actions

Github Actions - 如何在同一 env 部分中使用 env 中定义的变量?

我想重用同一部分中定义的环境变量。

这不起作用

env:
   HOST: example.com
   URL: $HOST/foo.html
Run Code Online (Sandbox Code Playgroud)

它只会产生一个详细的“$HOST/foo.html”,而在使用时不会解析主机。

我也尝试过

env:
   HOST: example.com
   URL: ${{ env.HOST }}/foo.html
Run Code Online (Sandbox Code Playgroud)

这只是告诉我 无法识别的命名值:'env'

github-actions

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

如何将 github 秘密变量通过管道传输到文件中

我有一个 github 管道,并将 github sercret 变量通过管道传输到文件中,但出现以下错误。

/home/runner/work/_temp/c6144b9a-c8e3-489a-ae97-795f592c57f0.sh: line 6: /config: Permission denied
echo: write error: Broken pipe
Run Code Online (Sandbox Code Playgroud)

name: pipeline

on: [ push ]

env:

  KUBECONFIG_B64DATA: ${{ secrets.KUBECONFIG_B64DATA }}

  deploy:
    name: Deploy
    # if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@master

    - name: Setup Kubectl
      run: |
        sudo apt-get -y install curl
        curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
        chmod +x ./kubectl
        sudo mv ./kubectl /usr/local/bin/kubectl
        sudo echo $KUBECONFIG_B64DATA | base64 --decode > /config
        sudo mkdir -p ~/.kube
        sudo mv …
Run Code Online (Sandbox Code Playgroud)

kubectl github-actions

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

从 GitHub Actions 中当前运行的工作流程中获取最新成功运行的工作流程的提交哈希值?

我正在 GitHub 存储库中编写 LaTeX 文档,我想使用git-latexdiffHEAD编译一个 pdf 文件,该文件显示上次成功工作流程运行的提交哈希之间的差异:

git latexdiff "$LAST_SUCCESSFUL_COMMIT_HASH" HEAD --no-view -o diff.pdf

因此,我需要一种方法来从当前工作流程运行中访问最新成功工作流程运行的提交哈希。

我在文档中没有找到任何内容,但也许有解决方法?

git github-actions

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

Flutter:在具有私有依赖项的 github 操作中运行 flutter pub get

我正在使用在 Github 上私有托管并具有 ssh 访问权限的插件。在 Github 操作中运行时,flutter pub get此命令会失败。我按照使用部署密钥的教程进行操作,并尝试了以下操作:

jobs:
    build:
        runs-on: ubuntu-18.04
        steps:
            -   uses: actions/checkout@v1

            -   name: Setup SSH Keys and known_hosts
                env:
                    SSH_AUTH_SOCK: /tmp/ssh_agent.sock
                run: |
                    mkdir -p ~/.ssh
                    ssh-keyscan github.com >> ~/.ssh/known_hosts
                    ssh-agent -a $SSH_AUTH_SOCK > /dev/null
                    ssh-add - <<< "${{ secrets.SSH_PRIVATE_KEY }}"

            -   name: Some task that fetches dependencies
                env:
                    SSH_AUTH_SOCK: /tmp/ssh_agent.sock
                run: flutter pub get
Run Code Online (Sandbox Code Playgroud)

还尝试过:

  - uses: webfactory/ssh-agent@v0.4.0
    with:
      ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
  - name: Fetch flutter dependencies
    run: flutter pub …
Run Code Online (Sandbox Code Playgroud)

continuous-integration github continuous-deployment flutter github-actions

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

如何在删除事件 Github 操作中提取分支名称

我正在尝试提取删除事件中的分支名称。事实证明它不在 GITHUB_REF 对象中,因为那将是default branch.

通常我会跑

- name: Extract branch name
  shell: bash
  run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
  id: extract_branch
Run Code Online (Sandbox Code Playgroud)

但显然,对于删除事件,我需要通过以下方式提取分支${{ github.event.ref }}

- name: Extract branch name
  shell: bash
  run: echo "##[set-output name=branch;]$(echo ${{ github.event.ref }})" # how to drop refs/heads/?
  id: extract_branch
Run Code Online (Sandbox Code Playgroud)

现在我不知道如何删除分支名称的 refs/heads 方面。

编辑:因为在删除事件的情况下,github.event.ref已经包含简单的分支名称,例如,上面的示例代码不起作用feature-1-my-branchrefs/heads/feature-1-my-branch

如果我想在不同的事件类型中对此上下文进行一些后处理,在这种情况下我将如何删除 where 返回github.event.refrefs/heads/feature-1-my-branchrefs/heads

github-actions

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

Github 操作工作流程 PG::ConnectionBad:无法连接到服务器:运行 bundle exec rake 时没有此类文件或目录

这是我的第一个问题。

我正在尝试集成github actions到我的 Rails 项目中。

我的 ruby​​.yml 是这样的:

name: Ruby

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

jobs:
  test:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Ruby
      uses: ruby/setup-ruby@ec106b438a1ff6ff112340de34ddc62c540232e0
      with:
        ruby-version: 2.6.5
    - name: Install dependencies
      run: bundle install
    - name: Run tests
      run: bundle exec rake
Run Code Online (Sandbox Code Playgroud)

捆绑步骤需要很多时间,我不知道是否可以只加载 Gemfile.lock 而不是每次都运行捆绑。但运行起来没问题。

问题是测试步骤。

所以这是错误:

rails aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
    Is the server running locally and …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails github github-actions

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

如何在 GitHub Actions 中配置/使用 AWS CLI?

我想运行类似aws amplify start-jobGitHub Actions 中的命令。我了解 AWS CLI 已预先安装,但我不确定如何配置它。

特别是,我不确定如何为所有配置选项命名环境变量,因为一些文档只提到了区域和输出设置,但没有提及AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

amazon-web-services aws-cli aws-amplify github-actions

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

如何将 Jekyll 站点从 github 存储库部署到我的 ftp?

我有一个自定义 Jekyll 网站,它在本地运行良好。

我想将我构建的站点部署到我的托管环境中。通过 FTP 和 github actions 可以正常工作:https: //github.com/SamKirkland/FTP-Deploy-Action

这是 FTP 工作流程:

on: push
name: Publish Website
jobs:
  FTP-Deploy-Action:
    name: FTP-Deploy-Action
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2.1.0
      with:
        fetch-depth: 2
    - name: FTP-Deploy-Action
      uses: SamKirkland/FTP-Deploy-Action@3.1.1
      with:
        ftp-server: ${{ secrets.FTP_HOST }}
        ftp-username: ${{ secrets.FTP_USER }}
        ftp-password: ${{ secrets.FTP_PASSWORD }}
        local-dir: _site
        git-ftp-args: --changed-only
Run Code Online (Sandbox Code Playgroud)

我尝试使用该_site文件夹,并且当不忽略 _site 时,每次提交都会运行操作。

所以最好的是,如果我不提交该_site页面,那么 GitHub 服务器就可以了。我发现了这个动作: https: //github.com/marketplace/actions/jekyll-actions

我的测试流程:

on: push
name: Testing the GitHub Pages building
    
jobs:
  jekyll:
    runs-on: ubuntu-16.04
    steps:
    - …
Run Code Online (Sandbox Code Playgroud)

workflow build github jekyll github-actions

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

如何使用 CI 中的 Git API 读取 GitHub 存储库中的所有分支?

在 CI 系统中使用Git API(例如 GitHub Actions 或 Travis-CI),我想收集有关存储库所有分支的信息。

遗憾的是,与本地分支不同,GitHub 分支似乎是相互隔离的。

假设我有一个包含三个分支的存储库(master另外两个分支是从master):

在此输入图像描述

如果我运行以下脚本:

#!/usr/bin/env bash

printf "\n$ git for-each-ref --format='%(refname)' \n"
printf "$(git for-each-ref)\n"

printf "__________________________________________\n"

printf "\n$ git branch -a\n"
printf "$(git branch -a)\n"
Run Code Online (Sandbox Code Playgroud)

我只能看到master,看不到其他两个分支:

在此输入图像描述

有没有办法使用 Git API 读取所有 GitHub 分支,或者我被迫使用 GitHub API

我希望至少能够读取从我所在的分支生成的分支(master在本例中为 )。我开始猜测 GitHub 会为自己保留这些信息,而不会以任何规范的 Git 方式公开它......

git bash github git-branch github-actions

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

如何克服在 VPS 上设置 Github Actions 配置时出现的“不得使用 Sudo”错误

我试图在我的 Ubuntu VPS 上设置 Github actions runner,在步骤 3 中我必须设置 config.sh 文件,我得到的错误为:Must not run with Sudo并且该过程失败。我的 root 帐户受密码保护,但我不明白这里的问题是什么。但我正在寻找的是如何解决这个问题。我实际上并没有部署一个严肃的应用程序,这只是为了练习。

ubuntu sudo vps github-actions

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