标签: github-actions

在github工作流程中运行超时命令

我有一个类似于下面代码的 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)

github-actions

9
推荐指数
1
解决办法
5937
查看次数

如何为我的 Github 操作找到正确的入站规则以部署在我的 AWS EC2 服务器上?

我刚刚在我的项目上创建了操作并配置了那里的所有内容,但不幸的是,我在“部署文件”部分> ssh:连接到主机 ec2-MYIP.us-east-2.compute.amazonaws 中收到类似这样的消息.com 端口 22:操作超时

EC2 安全性导致的错误

好消息是我知道发生了什么事。我必须允许以下入站规则:

类型:SSH / 协议:TCP / 帖子范围:22 / 来源:::/0;

EC2 入站规则使其正常工作

正如你在这里看到的,在不限制源IP的情况下它工作得很好> 当我没有为 TCP 端口 22 指定任何源时

但显然出于安全原因我不想这样做,所以我需要找出我需要放在那里的来源。我已经尝试了很多Github IP地址,但都没有成功。

这里有谁知道它以受保护的方式工作的正确来源是什么,或者我如何找到它?

我正在使用的操作 > https://github.com/wlixcc/SFTP-Deploy-Action

deployment tcp github amazon-ec2 github-actions

9
推荐指数
2
解决办法
4201
查看次数

GitHub 操作 手动审批流程

我知道 GitHub Action 手动触发是一个经常讨论的问题,手动审批的讨论较少,但仍然存在于社区中。

我有一个问题想问那些使用 Github actions 进行 CD 的人。

如您所知,Bitbucket、Gitlab、Azure Devops 等具有手动批准功能,这意味着管道可以到达流程中的某个步骤,例如:构建 -> 测试 -> 部署到登台。

下一步是部署到生产环境,但需要手动批准或触发。所以我的问题是,你们中是否有人使用相同的信息(分支名称、相同的测试结果)在 GitHub 操作中实现了该功能,而无需再次运行整个管道?(这就是为什么我还没有将我们从 Bitbucket 迁移到 GitHub 的原因)

谢谢您的回答

continuous-delivery devops github-actions

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

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 building-github-actions

9
推荐指数
1
解决办法
5543
查看次数

如何在 GitHub Actions 中从 /home/runner/XXXXX 检索文件

我正在尝试使用 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)

github-actions

9
推荐指数
1
解决办法
8411
查看次数

GitHub Actions:在作业之间共享常见操作

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)

continuous-integration github travis-ci github-actions

9
推荐指数
1
解决办法
5170
查看次数

将变量从 Github Action 传递到 Docker 镜像构建

我一直致力于设置 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)

dockerfile github-actions

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

用于使用 testcontainers 和 gradle 运行测试的 github 操作

我是 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 在运行期间可用?

continuous-integration gradle testcontainers github-actions

9
推荐指数
1
解决办法
8334
查看次数

拒绝允许 GitHub 应用程序创建或更新工作流程

我有一个 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-actions

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

GitHub 上的“操作”选项卡丢失

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

缺少“操作”选项卡的图像

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

“设置”选项卡中缺少“操作”选项卡的图像

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

组织设置中缺少“操作”选项卡的图像

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

所有者特权形象

所以我们到了。关于为什么我的组织中到处都缺少“操作”选项卡,您有什么想法吗?

github github-enterprise github-actions

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