erlef / setup-beam

Set up your BEAM-based GitHub Actions workflow (Erlang, Elixir, Gleam, ...)
MIT License
373 stars 50 forks source link

Alternate mirrors config attribute being ignored #262

Closed heroinbob closed 5 months ago

heroinbob commented 5 months ago

The bug

We have been running into #260 on a regular basis. In an attempt to fix it I configured our CI action with the official hex.pm mirror listed on their site as a backup in case it happens again.

The issue is that it appears that the hexpm-mirrors attribute is being ignored and the alternate mirror is not being attempted. I could be misinterpreting the output though. There is no output indicating that it failed to fetch from the alternate mirror, nor does it show up in the config output when it runs.

Software versions

STR

  1. Configure our action with the default mirror and an alternate. (Maybe use invalid URLs to replicate?)
  2. Run until the action fails to fetch the data.
  3. Notice there's no output in the error indicating that it tried and failed via both mirrors.

Expected behaviour

Based on a quick glance of the code I expect there to be output when it failed attempting to download from each configured mirror.

Example Action Config

- name: Set up Elixir and Erlang
  uses: erlef/setup-beam@v1
  with:
    elixir-version: "1.16.1"
    otp-version: "26.0.2"
    hexpm-mirrors: |
      https://builds.hex.pm
      https://repo.hex.pm

Action Output

Run erlef/setup-beam@v1
  with:
    elixir-version: 1.16.1
    otp-version: 26.0.2
    github-token: ***
    install-hex: true
    install-rebar: true
    version-type: loose
    disable_problem_matchers: false
    hexpm-mirrors: https://builds.hex.pm

  env:
    GITHUB_TOKEN: ***
    ELIXIR_VERSION: 1.16.1
    OTP_VERSION: 26.0.2
Action fetch /builds/otp/ubuntu-22.04/builds.txt failed for mirror https://builds.hex.pm, with Error: Request timeout: /builds/otp/ubuntu-22.04/builds.txt
##[debug]Stacktrace: Error: Request timeout: /builds/otp/ubuntu-22.04/builds.txt
##[debug]    at ClientRequest.<anonymous> (/home/runner/work/_actions/erlef/setup-beam/v1/dist/index.js:2225:26)
##[debug]    at Object.onceWrapper (node:events:628:28)
##[debug]    at ClientRequest.emit (node:events:514:28)
##[debug]    at TLSSocket.emitRequestTimeout (node:_http_client:840:9)
##[debug]    at Object.onceWrapper (node:events:628:28)
##[debug]    at TLSSocket.emit (node:events:526:[35](https://github.com/Veeps-Official/veeps_umbrella/actions/runs/8443612025/job/23127625152#step:3:35))
##[debug]    at Socket._onTimeout (node:net:589:8)
##[debug]    at listOnTimeout (node:internal/timers:573:17)
##[debug]    at process.processTimers (node:internal/timers:514:7)
Error: Could not fetch /builds/otp/ubuntu-22.04/builds.txt from any hex.pm mirror
heroinbob commented 5 months ago

This was my mistake. After debugging all day I discovered that I'd missed adding hexpm-mirrors to the use of this action in one of the other steps. Sorry about that!