标签: github-actions

如何在 GitHub Actions 中使用最新版本标签?

我想通过在 GitHub 中创建发布标签来控制发布,例如:

name: deploy-live

on:
  push:
    tags:
      - release-v*
Run Code Online (Sandbox Code Playgroud)

但也可以运行部署来使用 Webhook 重新构建我的静态网站,该 Webhook 采用最新版本标签(并且不包括最新版本标签之后的任何开发工作):

name: deploy-live

on:
  push:
    tags:
      - release-v*
  repository_dispatch:
    types:
      - prismic_content_update
Run Code Online (Sandbox Code Playgroud)

目前,这将从主分支重新构建站点,包括自上次发布标签以来的所有更改。有没有办法在部署之前将 HEAD(不包括更改)重置为最新版本标签?

workflow yaml release github github-actions

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

如何在 GitHub Actions 工作流程中创建下拉菜单

我的工作流程需要从用户接收 2 个输入参数。这些参数的有效值由单独的脚本定义。这些值可以更改(无法对它们进行硬编码),因此我想在运行作业时动态填充列表。选择器应根据允许用户选择的脚本结果进行更新,然后才应使用这些值作为作业的输入来运行实际作业

如何提供这样的下拉菜单?

github github-actions

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

GitHub Actions:每个步骤都必须定义“uses”或“run”键

我想设置 github 操作

  • 调用 nuget 并缓存它
  • 构建解决方案
  • 运行单元测试

我设法让第二步和第三步正常工作,但现在将第一步结合起来是一个问题。

 - name: Cache Nuget
    - uses: actions/cache@v1
      with:
        path: ~/.nuget/packages
        key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
        restore-keys: |
          ${{ runner.os }}-nuget-
Run Code Online (Sandbox Code Playgroud)

我试图把它放在后面- uses: actions/checkout@v2,但它抛出以下错误。

every step must define a `uses` or `run` key
Run Code Online (Sandbox Code Playgroud)
   ...
   steps:
    - uses: actions/checkout@v2
    - name: Cache Nuget
    - uses: actions/cache@v1
      with:
        path: ~/.nuget/packages
        key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj') }}
        restore-keys: |
          ${{ runner.os }}-nuget-
    - name: Setup .NET
      uses: actions/setup-dotnet@v1
    ...
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

感谢帮助。

这是完整的配置。 …

github-actions

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

如何根据整个 github actions 工作流程的成功或失败设置 github 分支保护规则?

我正在尝试根据 github 操作工作流程的成功或失败设置 github 分支保护规则。

您可以在此处查看工作流程:

https://github.com/apostropecms/apostrope/blob/main/.github/workflows/main.yml

工作流程通过了,我什至有一个工作徽章,但我无法设置要求其通过状态检查的分支保护规则。

可以根据矩阵中的任何一个单独构建设置分支保护规则,但我不想单独设置所有这些规则并在矩阵规则更改时跟踪它们。

正如您从屏幕截图中看到的,我无法选择“构建”,即作业的名称(尽管我可以选择任何子构建),而且我也无法选择“测试”,即作业的名称。整个工作流程(如果我使用大写 t,它不会改变)。

我缺少什么?感谢您的帮助!

屏幕截图一:我可以选择一个子构建,但不能选择整个构建作业。

我可以选择一个子构建,但不能选择整个构建作业

屏幕截图二:我根本无法选择整个“测试”工作流程的名称。

我根本无法选择整个“测试”工作流程的名称

github github-actions

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

Github Actions 和 npm - npm:找不到命令

我已经在 github actions 上创建了一个部署操作。这一切都适用于composer install 和 git pull master 分支。然而,在我的数字海洋水滴上,我遇到了问题: bash: line 4: npm: command not found 如果我 ssh 进入我的服务器,我可以很好地使用 npm。这是通过 nvm 安装的并使用最新版本,但由于某种原因无法通过操作访问。我的部署脚本是


on:
  push:
    branches: [master]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy Laravel APP
        uses: appleboy/ssh-action@v0.1.4
        with:
          host: ${{secrets.SSH_HOST}} 
          key: ${{secrets.SSH_KEY}} 
          username: ${{ secrets.SSH_USER }} 

          script: |
            cd /var/www/admin
            git pull origin master
            composer install
            npm install
            npm run prod
Run Code Online (Sandbox Code Playgroud)

我认为这更多地与 nvm 的设置有关,因为我可以通过 ssh 使用它,但由于他们使用同一用户通过 ssh 登录,我似乎看不到问题。

有什么想法可以解决此问题以授予访问/允许 github 操作使用 npm 的权限吗?

ubuntu node.js npm nvm github-actions

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

在 CI 管道中运行开发服务器

我有一个使用 Github Action/Workflows 的 CI 管道设置,我想在其中运行 Cypress 自动化测试,但是我在如何运行我的开发服务器方面遇到了一些逻辑问题。让我向你展示我的管道

name: Nuxt CI Pipeline

on:
  push:
    branches: [ CI-pipeline ]
  # pull_request:
  #   branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [ 14.x ]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - name: Make envfile
      uses: SpicyPizza/create-envfile@v1
      with:
        envkey_ENV: staging
        file_name: .env
    - run: npm ci
    - run: …
Run Code Online (Sandbox Code Playgroud)

continuous-integration vue.js devops nuxt.js github-actions

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

获取 github.rest.issues.createComment() 以使用环境变量进行多行注释

我一直在尝试了解如何使用 github actions 将多行评论写入 PR。我试图使用 github.rest.issues.createComment() (如评论拉取请求...中所示),然后使用环境变量处理多行问题,如下所示:工作流命令。最终目标是从 python 脚本(或日志文件)中获取一些多行输出标准输出,并将其作为注释放回到正在运行的工作流的 PR。下面的 yml 文件运行良好,直到最后一步,我尝试访问我创建的环境变量并将其用作 createComment() 的主体。环境变量已创建并且似乎可用,但当我尝试将其用于评论正文时失败。来自 github 操作的错误位于代码下方。如果我像这样添加引号,body: "${{env.SCRIPT_OUTPUT}}"我会得到同样的错误。如果可能的话,我想使用 createComment() ,我知道 Peter Evans 有一个创建评论,我接下来可能会尝试,但试图理解为什么这不起作用。

name: GitHub Actions Test Multi-line
on:
  pull_request:
    branches:
      - Dev
jobs:
  Run-check-references:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - run: |
          SCRIPT_OUTPUT=$(cat << EOF
          first line
          second line
          third line
          EOF
          )
          echo "SCRIPT_OUTPUT<<EOF" >> $GITHUB_ENV
          echo "$SCRIPT_OUTPUT" >> $GITHUB_ENV
          echo "EOF" >> $GITHUB_ENV
      - run: |
          echo "${{env.SCRIPT_OUTPUT}}" …
Run Code Online (Sandbox Code Playgroud)

yaml pull-request github-actions

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

如何在 Github Actions 中从 Artifactory 安装范围内的私有 npm 包

这个问题包括一个特定的用例:

  1. 我有一个私有范围的包:@myscope/mypackage
  2. 它托管在 Artifactory NPM 注册表中:https://company.jfrog.io/artifactory/api/npm/my-npm-registry/
  3. 我需要使用我的凭据来使用它。
  4. 我想在 Github Actions 中使用它。

我怎样才能做到这一点?

artifactory npm-registry github-actions

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

如何关联JIB和GraalVM

介绍

我目前正在开发一个 GitHub CI,它可以使用 JIB buildpack 自动构建容器。

我想知道是否可以结合 JIB 和 GraalVM 来构建本机解决方案?

CI 的代码:

jobs:
  publish:

    runs-on: ubuntu-latest
    
    steps:

    - name: downcase IMAGE_NAME
      run: |
        echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV}
    - uses: actions/checkout@v2
    - name: Set up JDK 17
      uses: actions/setup-java@v2
      with:
        distribution: 'adopt'
        java-version: 17

    - name: Buil JIB container and publish to GitHub Packages
      run: |
       mvn compile com.google.cloud.tools:jib-maven-plugin:3.1.4:build \
       -Djib.to.image=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.release.tag_name }} \
       -Djib.to.auth.username=${{ env.USERNAME }} \
       -Djib.to.auth.password=${{ env.PASSWORD }} \
       -Djib.from.image=azul/zulu-openjdk:17-jre-headless
Run Code Online (Sandbox Code Playgroud)

问题

您认为在这种情况下可以将 JIB …

graalvm jib github-actions graalvm-native-image

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

GCP - Cloud Run:“错误:禁止用户访问存储桶”

我正在编写一个 GitHub Action,将我的应用程序部署到 GCP 的“Cloud Run”服务。

name: Deploy to production

on:
  push:
    branches:
      - master

env:
  PROJECT_ID: XXX
  SERVICE_NAME: XXX
  RUN_REGION: XXX
  PACKAGE_VERSION : XXX

permissions:
  contents: read
  id-token: write

jobs:
  deployment-job:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - uses: actions/checkout@v2
      - name: Authenticate to Google Cloud
        uses: google-github-actions/auth@v0
        with:
          workload_identity_provider: XXX
          service_account: XXX
      - name: Deploy to Cloud Run
        uses: google-github-actions/deploy-cloudrun@v0
        with:
          service: ${{ env.SERVICE_NAME }}
          source: gcr.io/${{ env.PROJECT_ID }}/${{ env.SERVICE_NAME }}:${{ env.PACKAGE_VERSION }} # equivalent to "gcloud builds submit …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform github-actions

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