标签: github-actions

通过 GitHub Actions 在 AWS ECS 上使用 Docker Compose 进行部署

我最近开始尝试 ECS、Docker Compose 和 context,这真的很有趣。我已经设法使用docker compose up\xc2\xa0 和 ecs-context 通过终端部署和托管一个 compose 文件,但我还想通过 Github 操作之类的东西来自动执行此操作。

\n

我正在努力了解如何设置它,而且我还没有找到它的指南。

\n

有没有什么好的资源可以进一步研究这个问题?通过 Github 在 AWS 上进行 CI/CD 的替代或什至更好的方法是什么?

\n

amazon-web-services amazon-ecs docker docker-compose github-actions

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

通过 github 操作将更改推送到我自己的公共存储库时出现错误

通过 GitHub 操作将更改推送到我自己的公共存储库时,我收到此错误。

remote: Permission to spooky/repo.git denied to github-actions[bot].
fatal: unable to access 'https://github.com/spooky/repo/': The requested URL returned error: 403
Error: Process completed with exit code 128.
Run Code Online (Sandbox Code Playgroud)

操作中的提交代码是

     - name: Commit Output files
        run: |
              git config remote.origin.url 'https://github_token@github.com/spooky/repo/'
              git config --local user.email "spook@gmail.com"
              git config --local user.name "spook"
              git init
              git add .
              git commit -m "Updated"
              git push origin main

- name: Push changes
        uses: ad-m/github-push-action@master
        with:
          github_token: github_token
Run Code Online (Sandbox Code Playgroud)

我也尝试过git config remote.origin.url 'https://username:github_token@github.com/spooky/repo/',得到同样的错误(GitHub 令牌具有所有权限)。

谁能帮我解决这个问题吗?

git github git-push github-actions

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

GitHub Actions - 为 Docker 容器安装卷

我一直在 GitHub Actions 中快速了解 Docker 的使用情况,并且不断运行如下代码:

docker run --rm -t \
            -v "/home/runner":"/home/runner" \
            -v "/home/runner/work/_temp/_github_home":"/github/home" \
            -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" \
            -v "${{ github.workspace }}":"/github/workspace" \
            ...
Run Code Online (Sandbox Code Playgroud)

我很好奇安装所有这些卷的动机是什么。我得到了/github/workspace一个,可以访问 Docker 容器内的所有存储库文件,但是这些文件有什么用呢?

  • /home/runner
  • /home/runner/work/_temp/_github_home
  • /home/runner/work/_temp/_github_workflow

“你说什么,你在哪里看到的?”

然而,我找不到任何有关您为什么要这样做的文档。

docker github-actions

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

如何增加 github 操作 Postgres 中的 max_connection

我想max_connections在github上增加Postgres服务的action。官方文档没有提及如何操作。有一些巧妙的技巧吗?

我尝试了这个 SO 答案,它似乎在 github 操作环境中不起作用。

postgresql github-actions

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

将 docker 映像推送到 ECR 时,Github 操作失败

我指的是官方github指南来设置自动部署到ECS https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-容器服务

我的deploy.yaml工作流程看起来与上面链接中的工作流程相同,只是替换了正确的环境变量

我已完成所需的所有步骤,并已在 AWS 上启动并运行所有必要的基础设施。但是当工作流程被触发时,它总是无法将 docker 镜像推送到 ECR。重试几次后,退出

EOF
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

从我在 github 操作上看到的输出,我相信登录 ecr 步骤成功,并且还可以确认它正在推送到正确的 ECR 存储库,但由于某种原因推送失败。

我已经将图像推送到本地存储库并且它可以工作,所以我认为 AWS 方面没有任何问题。

amazon-web-services docker amazon-ecr github-actions

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

GitHub Action:如何从表达式求值中获取值并将其分配给环境变量

环境表达式通常直接赋值,如下例所示

  - name: set up env var
    env:
      TAG: v1.2.3
    run: echo $TAG
Run Code Online (Sandbox Code Playgroud)

但是如何从 shell 脚本评估中获取值呢?例如,在我的终端中,我可以通过以下方式获取当前标签git describe --exact-match --tags $(git log -n1 --pretty='%h')

但是当我尝试将此脚本放入环境中时,如下所示

  - name: set up env var
    env:
      TAG: $(git describe --exact-match --tags $(git log -n1 --pretty='%h'))
    run: echo $TAG 
Run Code Online (Sandbox Code Playgroud)

打印出的 echo$(git describe --exact-match --tags $(git log -n1 --pretty='%h'))意味着它不被计算而是被视为字符串。

如何获取 的值git describe --exact-match --tags $(git log -n1 --pretty='%h')并将其分配给环境变量TAG

github-actions

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

排除路径的 Github 工作流程不起作用

我无法让 Github 工作流功能排除正常工作的路径,并且在堆栈溢出上找不到类似的问题。最相似的情况是Github 工作流程不会在推送基于路径的过滤时触发,但它对我没有帮助。

我的 PR 工作流程如下:

name: Build For PRs

on:
  pull_request:
    types: [opened, synchronize, ready_for_review]
    paths:
      - 'src/**'
      - '!src/abc/**'
      - '!src/def/**'
      - '!src/ghi/**'
      - '!src/docker-compose*.yml'
      - '!**.md'
Run Code Online (Sandbox Code Playgroud)

我希望它在“src”下的任何文件发生更改时在 PR 上运行,除非负过滤器之一匹配。

即使更改 .md 文件也会触发此 WF。我怎样才能实现上面的逻辑呢?

continuous-integration github github-actions

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

Github 操作权限被拒绝(公钥)

我在尝试启动 Github 操作工作流程时陷入困境。Flutter项目有一个自定义包的依赖。我在 Github 存储库中有这个自定义包。这是我在 pubspec.yaml 中设置此依赖项的方式:

xxxx_package:
git:
  url: git@github.com:USER_NAME/xxxx_package.git
  ref: develop
Run Code Online (Sandbox Code Playgroud)

如果我启动flutter pub get命令,它就会成功结束,我可以毫无问题地构建和执行应用程序。

但是当我向 Github 发送推送并启动工作流程时,该过程结束时出现以下错误:

Running "flutter pub get" in Project-Flutter...            
Git error. Command: `git clone --mirror git@github.com:xxx/xxxx_package.git /home/runner/.pub-cache/git/cache/xxxx_package-123456789`
stdout: 
stderr: Cloning into bare repository '/home/runner/.pub-cache/git/cache/xxxx_package-123456789'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)

这是我的操作工作流程文件:

name: Check merge

on:
  push:
    branches: [ main, develop ]

  pull_request:
    branches: [main, develop]
    

  workflow_dispatch:

jobs:
  build:
    name: flutter environment
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2 …
Run Code Online (Sandbox Code Playgroud)

flutter github-actions

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

如何在 github actions 中的推送事件上获得 PR 标题?

在推送事件中,是否可以获得 PR 标题,以便我可以使用相同的内容来创建版本和标签。

目前,我无法在推送事件中获得 PR 头衔。

任何人都可以帮忙吗?

workflow github github-api github-actions

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

如何抑制/忽略 tflint 警告

我第一次使用 tflint 扫描我的 terraform 代码。为此,我创建了 shell 脚本来执行 tflint 命令,但是,在执行 tflint 作业时,我收到一些 [WARN] 消息。我不确定它们是如何生成的。有办法抑制吗?

tflint 命令已成功执行,并且还在我的 terraform 代码中显示可能的问题/通知。

我正在使用下面的 Github 工作流程操作;

      - name: Setup TFLint
        uses: terraform-linters/setup-tflint@v1
        with:
          tflint_version: v0.26.0

      - name: Lint Terraform Code
        run: scripts/tflint.sh
        shell: bash
        continue-on-error: false
Run Code Online (Sandbox Code Playgroud)

“.tflint.hcl”文件 ->

plugin "aws" {
  enabled = true
  version = "0.12.0"
  source  = "github.com/terraform-linters/tflint-ruleset-aws"
}

rule "terraform_naming_convention" {
  enabled = true
}

rule "terraform_unused_declarations" {
  enabled = true
}

rule "terraform_deprecated_index" {
  enabled = true
}

rule "terraform_documented_outputs" {
  enabled …
Run Code Online (Sandbox Code Playgroud)

lint terraform github-actions

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