我正在开始使用 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中。然而,自从我添加了这个之后,我的泊坞窗一直崩溃。有人知道我做错了什么吗?**** 只是我的项目的名称,我想保密。
我正在尝试使用缓存优化 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) 我正在尝试构建一个存储库,它允许我为我正在分叉的项目的不同版本构建 Docker 映像。存储库应具有以下布局:
main定义工作流的分支,带有触发器,例如:
on:
push:
branches-ignore:
- main
Run Code Online (Sandbox Code Playgroud)
该工作流程从任何分支构建软件(基本上是mvn clean package,docker build并且docker push适用于软件的所有版本)software-1.2.3不包含任何.github/workflow文件的分支(将此文件复制到每个分支并在那里维护会很麻烦)从我迄今为止的研究来看,GitHub Actions 似乎仅在存在工作流定义时运行。但是,我想知道是否有一种方法可以使用网络钩子或其他方法来欺骗系统执行我想要的操作。
我的下一个最佳选择可能是使用workflow_dispatch,
我有一个 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
我正在尝试在 Azure Web 应用程序上部署我的应用程序。连接 Azure 中的 GitHub 存储库时默认给出的 Github 操作。问题是部署一个东西大约需要 45 分钟才能部署完毕!部署所需的时间实在是太疯狂了。我看到这样一条消息:
知道为什么会发生这种情况或者有更好的方法来优化吗?(顺便说一下,我实际上正在部署一个 Next.js 应用程序)
# 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) 我正在尝试在 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 文件。
知道我做错了什么吗?
使用 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 提供商
我一直在围绕可重用工作流程查找 Github Action 文档,并尝试将一系列矩阵拼凑在一起。
我的伪工作流程类似于以下步骤。
这似乎是一个相对简单的目标。然而,工作流程可重用调用似乎不支持strategy. 如我错了请纠正我?
尝试从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)