标签: github-actions

如何将 Github Secret 作为环境变量传递给 Docker?

我正在开始使用 CI/CD 和 Docker,我想在工作流程文件中将连接字符串传递给 docker。

deploy:
    runs-on: ubuntu-latest
    needs: publish
    steps:
    - name: deploy to server
      uses: appleboy/ssh-action@master
      env: 
        CONN_STRING: ${{ secrets.CONN_STRING }}
      with:
        host: ${{ secrets.SECRET_IP }}
        username: ${{ secrets.SERVER_USERNAME }}
        key: ${{ secrets.SERVER_KEY }}
        port: 22
        script: docker stop *** && docker rm **** && docker pull **** && docker run --env CONN_STRING=$CONN_STRING -d --name ******
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我创建了一个名为“CONN_STRING”的环境,它从我的 github 秘密中获取连接字符串。之后我想通过“CONN_STRING=$CONN_STRING”将其传递到dockerscript中。然而,自从我添加了这个之后,我的泊坞窗一直崩溃。有人知道我做错了什么吗?**** 只是我的项目的名称,我想保密。

workflow github docker github-actions cicd

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

具有 fastlane 和 flutter 的 Github 工作流缓存路径

我正在尝试使用缓存优化 android 和 ios 的 CICD 部署工作流程,但缓存路径有问题。当不缓存工作流程时效果很好,但在缓存时,fastlane 操作找不到 flutter 或 pod,并且我收到类似“error: /Users/runner/work/xxx/xxx/ios/Flutter/Release.xcconfig:1: ”的错误:在搜索路径中找不到包含的文件“Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig”(在项目“Runner”的目标“Runner”中)”

name: Deploy staging

on:
  workflow_dispatch:
    inputs:
      lane:
        description: "Staging lane to use : alpha or beta"
        required: true
        default: "alpha"

jobs:
  deploy-to-ios:
    runs-on: macos-latest
    timeout-minutes: 30

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Flutter Cache
        id: cache-flutter
        uses: actions/cache@v2
        with:
          path: /Users/runner/hostedtoolcache/flutter
          key: ${{ runner.os }}-flutter
          restore-keys: |
            ${{ runner.os }}-flutter-

      - name: Setup Flutter
        uses: subosito/flutter-action@v1
        if: steps.cache-flutter.outputs.cache-hit != 'true'
        with:
          channel: …
Run Code Online (Sandbox Code Playgroud)

caching ios fastlane flutter github-actions

6
推荐指数
0
解决办法
1533
查看次数

触发除主分支之外的所有分支的 GitHub Actions,其中唯一的工作流程定义文件是

我正在尝试构建一个存储库,它允许我为我正在分叉的项目的不同版本构建 Docker 映像。存储库应具有以下布局:

  • main定义工作流的分支,带有触发器,例如:
    on:
       push:
         branches-ignore:
           - main
    
    Run Code Online (Sandbox Code Playgroud) 该工作流程从任何分支构建软件(基本上是mvn clean packagedocker build并且docker push适用于软件的所有版本)
  • 许多software-1.2.3不包含任何.github/workflow文件的分支(将此文件复制到每个分支并在那里维护会很麻烦)

从我迄今为止的研究来看,GitHub Actions 似乎仅在存在工作流定义时运行。但是,我想知道是否有一种方法可以使用网络钩子或其他方法来欺骗系统执行我想要的操作。

我的下一个最佳选择可能是使用workflow_dispatch

github-actions

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

您可以将“enum”与 GitHub Action 的“action.yml”和工作流程文件中的输入一起使用吗?

我有一个 GitHub 操作(在 中.github/actions/my-custom-action),它接受一个枚举输入。在action.yml

inputs:
  my-enum-input:
    description: "This is an input that's an enum"
    default: "all"
    required: true
Run Code Online (Sandbox Code Playgroud)

在文件调用的脚本文件中是否INPUT_MY_ENUM_INPUT有类似的类型。有没有办法强制将文件中的枚举作为输入,并检查调用该操作的工作表 YAML 文件以确保其有效?['all', 'a', 'b']action.ymlaction.yml

github github-actions

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

Github Actions Artifact 在 Azure Web Apps 中部署需要花费大量时间

我正在尝试在 Azure Web 应用程序上部署我的应用程序。连接 Azure 中的 GitHub 存储库时默认给出的 Github 操作。问题是部署一个东西大约需要 45 分钟才能部署完毕!部署所需的时间实在是太疯狂了。我看到这样一条消息:

在此输入图像描述

知道为什么会发生这种情况或者有更好的方法来优化吗?(顺便说一下,我实际上正在部署一个 Next.js 应用程序)

这是我的 Github 操作文件:

# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy Node.js app to Azure Web App - app-admin

on:
  push:
    branches:
      - develop
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    env:
      AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }}
      AUTH0_DOMAIN: ${{secrets.AUTH0_DOMAIN}}
      AUTH0_MANAGEMENT_CLIENT_ID: ${{secrets.AUTH0_MANAGEMENT_CLIENT_ID}}
      AUTH0_MANAGEMENT_CLIENT_SECRET: ${{secrets.AUTH0_MANAGEMENT_CLIENT_SECRET}}
      NEXT_PUBLIC_HASURA_GRAPHQL_ENDPOINT: ${{secrets.NEXT_PUBLIC_HASURA_GRAPHQL_ENDPOINT}}
      NEXT_PUBLIC_HASURA_GRAPHQL_API_KEY: ${{secrets.NEXT_PUBLIC_HASURA_GRAPHQL_API_KEY}}
      NEXT_PUBLIC_AUTH0_CLIENT_ID: ${{secrets.NEXT_PUBLIC_AUTH0_CLIENT_ID}}
      NEXT_PUBLIC_AUTH0_DOMAIN: ${{secrets.NEXT_PUBLIC_AUTH0_DOMAIN}}
      


    steps:
      - uses: actions/checkout@v2 …
Run Code Online (Sandbox Code Playgroud)

azure azure-web-app-service azure-artifacts github-actions

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

dependentabot:错误:.github#L1 在“on”中没有定义事件触发器

我正在尝试在 Github 存储库上设置 dependentabot。

这是我的配置文件:

version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "daily"
    open-pull-requests-limit: 10
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Annotations
1 error
Error : .github#L1
No event triggers defined in `on`
Run Code Online (Sandbox Code Playgroud)

如果解析错误,可能会出现此错误但我根据文档中示例的复制粘贴改编了此文件。此外,我使用验证工具验证了 yaml 文件。

知道我做错了什么吗?

github-actions dependabot

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

Rails Github Action 无法填写操作文本

使用 Rails 6.1.4,以下工作在本地进行,以在系统测试中填充富文本(操作文本):

find("trix-editor").set("Something")
Run Code Online (Sandbox Code Playgroud)

但是,在 GitHub 操作上运行时,我收到:

Capybara::ElementNotFound: Unable to find visible css "trix-editor"

将代码更改为:

find("trix-editor", visible: false).set("Something")
Run Code Online (Sandbox Code Playgroud)

在本地也可以工作,但在 GitHub CI 上再次失败:

Selenium::WebDriver::Error::ElementNotInteractableError: element not interactable

我还尝试过以下方法:

find("#unique_element_id").set("Something")
find(:css, ".trix-content").click.set("Something")
Run Code Online (Sandbox Code Playgroud)

我在本地和 GitHub CI 映像上运行 Ubuntu 20.04。我该如何解决这个问题?

编辑:

我发现有一些未合并的 Rails 代码应该执行此操作。然而,在 my 中实现它test_helper也可以在本地工作,但在 CI 上失败。也许我只需要尝试另一个 CI 提供商

ruby-on-rails capybara github-actions

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

Github Action 使用具有可重用工作流程的矩阵

我一直在围绕可重用​​工作流程查找 Github Action 文档,并尝试将一系列矩阵拼凑在一起。

我的伪工作流程类似于以下步骤。

  • 作业 1:找出路径下更改的文件并将其输出为 json
  • 作业 2:将文件列表迭代为矩阵并调用另一个工作流程。
  • 作业 3(在其他工作流程中):只需将另一个矩阵定义与单个输入值结合使用即可执行一组步骤。

这似乎是一个相对简单的目标。然而,工作流程可重用调用似乎不支持strategy. 如我错了请纠正我?

github github-actions

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

Github 不会在手动运行工作流的工作流运行旁边显示分支名称

有谁知道如何查看分行名称吗?即使手动运行工作流程?看不到任何明显的设置来更改它。

*** 编辑 ***

这是它在大多数存储库中的外观(分支名称为蓝色):

在此输入图像描述

这是没有分支名称链接的异常存储库:

在此输入图像描述

github github-actions

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

如何在 github actions 中的其他运行命令中使用curl的响应

尝试从curl 获取响应并在后续命令中使用它。不确定这里的正确语法应该是什么。

    - name: Get Token    
    run: |
      response = $(curl https://********* -header "Accept: application/json" -header "X-Username: ${{ secrets.USER_NAME }}" -header "X-Password: ${{ secrets.PASSWORD }}")         
      echo "response from curl= $response"  
Run Code Online (Sandbox Code Playgroud)

github-actions

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