【问题标题】:Running setup-ruby (GitHub Actions) on EC2 throws ENOENT: no such file or directory, mkdir在 EC2 上运行 setup-ruby (GitHub Actions) 会抛出 ENOENT: no such file or directory, mkdir
【发布时间】:2021-09-08 03:45:05
【问题描述】:

上下文

我正在 GitHub Actions 上设置 CI,它最近连接到 Amazon Linux 2 实例。我怀疑问题与ruby-setup 尝试在实例上创建新文件夹时的权限有关,但堆栈跟踪是模糊的。这发生在两个都需要 ruby​​ 的不同工作中。

堆栈跟踪

Run ruby/setup-ruby@v1
  with:
    ruby-version: default
    bundler: default
    bundler-cache: false
    working-directory: .
    cache-version: 0
  env:
    ImageOS: ubuntu20
    JAVA_HOME_8_x64: /home/ec2-user/actions-runner/_work/_tool/jdk/8.0.292/x64
    JAVA_HOME: /home/ec2-user/actions-runner/_work/_tool/jdk/8.0.292/x64
    JAVA_HOME_8_X64: /home/ec2-user/actions-runner/_work/_tool/jdk/8.0.292/x64
Using ruby-2.3.1 as input from file .ruby-version
Error: ENOENT: no such file or directory, mkdir

Run ruby/setup-ruby@v1
  with:
    ruby-version: default
    bundler: default
    bundler-cache: false
    working-directory: .
    cache-version: 0
  env:
    PGHOST: localhost
    PGUSER: postgres
    RAILS_ENV: test
    ImageOS: ubuntu20
Using ruby-2.3.1 as input from file .ruby-version
Error: ENOENT: no such file or directory, mkdir

setup-ruby 之前,checkout 两个步骤都成功运行。

设置红宝石

https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby

疑难解答

我试过了:

  • 修改用户的权限 (ec2-user)
  • 寻找替代行动,这似乎是唯一维护的一个

我需要做什么才能完成这些步骤?

【问题讨论】:

    标签: ruby-on-rails ruby amazon-ec2 github-actions


    【解决方案1】:

    这是一个令人困惑的错误,但它实际上说的是它试图创建一个目录,但父目录不存在。确保你有/opt/hostedtoolcache 并且它可以被runner 用户写入。实现这一目标的最简单方法:

    mkdir /opt/hostedtoolcache && chmod -R 777 /opt/hostedtoolcache
    

    【讨论】:

      猜你喜欢
      • 2022-12-01
      • 2020-08-14
      • 2017-08-23
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多