我有一个类似于下面代码的 GitHub 操作。我有一个文件本来打算永远运行,但在需要时会被用户中断。我尝试过使用timeout,但它不起作用,并且给出了一些奇怪的消息。
对此的一个小警告是,如果该过程超时,我希望这不会引发错误,以便操作继续并报告成功。但是,如果 python 脚本本身失败,我希望报告这一点,因为运行一段时间进行调试是在操作中运行它的重点。
name: Run file with interrupt then save results
on:
push:
branches:
- master
jobs:
build:
strategy:
matrix:
python-version: [3.7]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies for ex 06
run: |
python -m pip install --upgrade pip
cd /home/runner/work/repo_name/repo_name
pip install -r requirements.txt
- name: Run file with timeout
run: |
cd …Run Code Online (Sandbox Code Playgroud) 我刚刚在我的项目上创建了操作并配置了那里的所有内容,但不幸的是,我在“部署文件”部分> ssh:连接到主机 ec2-MYIP.us-east-2.compute.amazonaws 中收到类似这样的消息.com 端口 22:操作超时

好消息是我知道发生了什么事。我必须允许以下入站规则:
类型:SSH / 协议:TCP / 帖子范围:22 / 来源:::/0;

正如你在这里看到的,在不限制源IP的情况下它工作得很好>

但显然出于安全原因我不想这样做,所以我需要找出我需要放在那里的来源。我已经尝试了很多Github IP地址,但都没有成功。
这里有谁知道它以受保护的方式工作的正确来源是什么,或者我如何找到它?
我正在使用的操作 > https://github.com/wlixcc/SFTP-Deploy-Action
我知道 GitHub Action 手动触发是一个经常讨论的问题,手动审批的讨论较少,但仍然存在于社区中。
我有一个问题想问那些使用 Github actions 进行 CD 的人。
如您所知,Bitbucket、Gitlab、Azure Devops 等具有手动批准功能,这意味着管道可以到达流程中的某个步骤,例如:构建 -> 测试 -> 部署到登台。
下一步是部署到生产环境,但需要手动批准或触发。所以我的问题是,你们中是否有人使用相同的信息(分支名称、相同的测试结果)在 GitHub 操作中实现了该功能,而无需再次运行整个管道?(这就是为什么我还没有将我们从 Bitbucket 迁移到 GitHub 的原因)
谢谢您的回答
我在一个项目中有 3 个不同的工作流程,顶部配置为:
plan_streamline.yml
name: plan
on:
push:
branches:
- main
workflow_dispatch:
...
Run Code Online (Sandbox Code Playgroud)
terrform_import.yml
name: terraform_import
on: workflow_dispatch
...
Run Code Online (Sandbox Code Playgroud)
计划.yml
on:
push:
branches:
- main
workflow_dispatch:
Run Code Online (Sandbox Code Playgroud)
但在 github 操作中,我看不到手动执行任何工作流程的能力,因为我应该看到类似https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-的内容with-workflow_dispatch/
我的工作流程配置有什么问题?
我正在尝试使用 GitHub Actions 构建 Maven 项目,作业运行后,我收到消息
各个测试结果请参阅/home/runner/work/testDemoAPI/testDemoAPI/mymeeave/target/surefire-reports。
您知道如何从中检索数据吗/home/runner/work/xxxxx?
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn clean test
Run Code Online (Sandbox Code Playgroud) 从Travis CI切换到GitHub Actions时,我想知道是否有一种方法可以在作业之间共享通用步骤。对于一个项目,我需要每个作业从 3 个操作开始:检查存储库代码、安装 Node.js v12、从缓存中恢复 node_modules(如果可用)。实际上,我为每个作业添加了这 3 个操作,虽然有效,但有点冗长。有没有办法说:“每个作业必须首先运行这些操作”或类似的话?
name: ci
on: [push, workflow_dispatch]
jobs:
setup:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: '12'
- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v2
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}
- name: Install dependencies
run: npm install
test_mysql:
runs-on: ubuntu-latest
needs: setup
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Setup …Run Code Online (Sandbox Code Playgroud) 我一直致力于设置 Github Actions 工作流程来构建 docker 映像。我需要将环境变量传递到图像中,以便我的 Django 项目能够正确运行。不幸的是,当我构建图像时,它没有收到变量的值。
我的工作流程文件的相关部分:
- name: Build, tag, and push image to AWS ECR
id: build-image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
IMAGE_TAG: ${{ github.sha }}
aws_ses_access_key_id: ${{ secrets.AWS_SES_ACCESS_KEY_ID }}
aws_ses_secret_access_key: ${{ secrets.AWS_SES_SECRET_ACCESS_KEY }}
DATABASE_ENGINE: ${{ secrets.DATABASE_ENGINE }}
db_host: ${{ secrets.DB_HOST }}
db_password: ${{ secrets.DB_PASSWORD }}
db_port: ${{ secrets.DB_PORT }}
db_username: ${{ secrets.DB_USERNAME }}
django_secret_key: ${{ secrets.DJANGO_SECRET_KEY }}
fcm_server_key: ${{ secrets.FCM_SERVER_KEY }}
run: |
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_ENV …Run Code Online (Sandbox Code Playgroud) 我是 github actions 的新手(来自 gitlab-ci),我正在尝试使用管道中的 testcontainers 运行集成测试,但我陷入了困境。这是我目前的定义。
name: Run Gradle
on: push
jobs:
gradle:
strategy:
matrix:
os: [ ubuntu-18.04 ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
with:
java-version: 11
- uses: eskatos/gradle-command-action@v1
with:
build-root-directory: backend
wrapper-directory: backend
arguments: check assemble
Run Code Online (Sandbox Code Playgroud)
如何确保 testcontainers 项目的 docker deamon 在运行期间可用?
我有一个 GitHub 操作,使用:
github_token: ${{ secrets.GITHUB_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到:
! [remote rejected] tmp_upstream/master -> master (refusing to allow a GitHub App to create or update workflow `.github/workflows/build-images-workflow-run.yml` without `workflows` permission)
error: failed to push some refs to '***github.com/myname/repo'
Run Code Online (Sandbox Code Playgroud)
https://docs.github.com/en/actions/reference/authentication-in-a-workflow解释说
GitHub 会自动创建一个 GITHUB_TOKEN 密钥以在您的工作流程中使用。您可以使用 GITHUB_TOKEN 在工作流运行中进行身份验证。
但我使用了工作流程,它似乎没有创建令牌。我去创建一个个人令牌,然后尝试使用名称保存它,GITHUB_TOKEN但它说该名称无效。我该如何解决这个问题?

我正在尝试创建 GitHub 操作,但我的存储库中不存在“操作”选项卡:

此 GitHub 文档页面建议导航到“设置”选项卡,然后从左侧边栏中选择“操作”并启用它们。

我的下一个想法是我的组织禁用了操作,因此我按照此 GitHub 文档页面上有关管理组织操作的步骤进行操作。但我再次转到“您的组织”->“设置”并在左侧边栏中查找“操作”,却找不到它。

然后我想也许我缺少管理员权限,所以我检查了我的组织下的“人员”选项卡,我是一个“所有者”,我的研究告诉我它与管理员相同。

所以我们到了。关于为什么我的组织中到处都缺少“操作”选项卡,您有什么想法吗?
github-actions ×10
github ×4
amazon-ec2 ×1
deployment ×1
devops ×1
dockerfile ×1
gradle ×1
tcp ×1
travis-ci ×1