标签: github-actions

如何访问 GitHub Actions 环境机密?

很简单的问题,我不确定我错过了什么。

\n

我有一个环境秘密:

\n

在此输入图像描述

\n

在这种情况下,“生产”环境可用于所有分支。\n我只是尝试在 appsettings 替换操作中访问 MESSAGE 变量(我尝试添加和删除存储库级别 MESSAGE 但无济于事):

\n
- uses: actions/checkout@master\n- name: Variable\xe2\x80\xafSubstitution\n  uses: microsoft/variable-substitution@v1\n  with:\n    files: DummyApi/appsettings.json\n  env:\n    Message: ${{ secrets.MESSAGE }}\n
Run Code Online (Sandbox Code Playgroud)\n

这将用 repo 级别设置替换它,但不是 env 级别设置,这根本不会替换它:

\n
- uses: actions/checkout@master\n- name: Variable\xe2\x80\xafSubstitution\n  uses: microsoft/variable-substitution@v1\n  with:\n    files: DummyApi/appsettings.json\n  env:\n    Message: ${{ env.MESSAGE }}\n
Run Code Online (Sandbox Code Playgroud)\n

简单地说 - 如何访问环境中的 MESSAGE 值?我需要手动设置环境吗?谢谢。

\n

补充信息:

\n

我真正想做的是这样的:

\n
on: [push]\njobs:\n  build-and-deploy:\n    runs-on: ubuntu-latest\n    environment: contains(\'main\', $GITHUB_REF) ? production : development\n
Run Code Online (Sandbox Code Playgroud)\n

我知道最后一行不起作用,但似乎如果我设置环境,我可以看到秘密 - 我只想重用大量部署代码而不是复制/粘贴。

\n

github appsettings github-actions

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

如何将 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
查看次数

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
查看次数

卸载app后如何去除github自动检查和部署

我从 github 卸载了 Vercel 应用程序,但当我提交代码或打开拉取请求时,它仍在运行检查和自动部署。如何删除应用程序安装的所有自动检查、环境和部署?我认为卸载应用程序会默认删除自动化功能,但我想事实并非如此。这是在私人仓库上。

感谢您的帮助!

在此输入图像描述

在此输入图像描述

在此输入图像描述

github github-api github-actions

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

从 s3 下载到操作工作流程中

我正在开发 2 个 github 操作工作流程:

  1. 训练模型并将其保存到 s3(每月)
  2. 从 s3 下载模型并将其用于预测(每日)

使用https://github.com/jakejarvis/s3-sync-action我能够完成第一个工作流程。我训练一个模型,然后将“模型”目录与 s3 上的存储桶同步。

我本来计划使用相同的操作来下载模型以用于预测,但看起来此操作是单向的,仅上传而不下载。

我通过创建工作流程并尝试与跑步者同步发现了困难的方法:

  retreive-model-s3:
    runs-on: ubuntu-latest
    steps:
      - name: checkout current repo
        uses: actions/checkout@master
      - name: make dir to sync with s3
        run: mkdir models
      - name: checkout s3 sync action
        uses: jakejarvis/s3-sync-action@master
        with:
          args: --follow-symlinks
        env:
          AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          AWS_S3_ENDPOINT: ${{ secrets.AWS_S3_ENDPOINT }}
          AWS_REGION: 'us-south'  # optional: defaults to us-east-1
          SOURCE_DIR: 'models'    # optional: defaults to …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 github-actions

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

Docker:通过缓存重用容器镜像

这里我在一个作业下有两个工作流程。我们想要实现的唯一目标是,我们希望通过缓存或其他方式重用容器镜像。我们对node_modules 的做法类似

jobs:
    build:
        name: build
        runs-on: [self-hosted, x64, linux, research]
        container:
          image: <sample docker image>
        env:
          NPM_AUTH_TOKEN: <sample token>
        steps:
          - uses: actions/checkout@v2
          - name: Install
            run: |
              npm install
          - name: Build
            run: |
          npm build
    Test:
        name: Test Lint
        runs-on: [self-hosted, x64, linux, research]
        container:
          image: <sample docker image>
        env:
          NPM_AUTH_TOKEN: <sample token>
        steps:
          - uses: actions/checkout@v2
          - name: Install Dependencies
            run: npm ci
          - name: Lint Check
            run: npm run lint
Run Code Online (Sandbox Code Playgroud)

github docker dockerfile docker-compose github-actions

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