Тайм-аут операции при публикации артефактов в gitlab с помощью горелесера

Я использую golang для создания простого приложения CLI. Я использую GoReleaser, чтобы опубликовать это в Gitlab. Я выполнил шаги, описанные в https://goreleaser.com/quick-start/, чтобы выпустить изменения в gitlab. Я создал токен личного доступа с областью действия API. Я отмечаю изменения и отправляю их, прежде чем использовать goreleaser для публикации артефактов.

Я всегда получаю сообщение об ошибке, в котором говорится, что выпуск завершился неудачно после 452,34 с error =github / gitlab / gitea Release: не удалось опубликовать артефакты: получить "https: // PRIVATEGITLABURL / api / v4 / projects / PRIVATE_GITLAB_PROJECT / Release / v1%2E0%2E3": dial tcp IP_ADDRESS:443: connect: время ожидания операции истекло.

Мой файл .gorelease.yml

      before:
  hooks:
    # You may remove this if you don't use go modules.
    - go mod tidy
    # you may remove this if you don't need go generate
    - go generate ./...
builds:
  - env:
      - CGO_ENABLED=0
    goos:
      - windows
snapshot:
  name_template: "{{ incpatch .Version }}-next"
changelog:
  sort: asc
  filters:
    exclude:
      - '^docs:'
      - '^test:'
# .goreleaser.yml
gitlab_urls:
  api: https://PRIVATE_GITLAB_REPO/api/v4/
  download: https://PRIVATE_GITLAB_REPO
  # set to true if you use a self-signed certificate
  skip_tls_verify: false 

Любые идеи? Моя версия gitlab - GitLab Enterprise Edition 14.1.5-ee

1 ответ

Сначала проверьте, если это из-за goreleaser/goreleaserissue 1879 («Использование goreleaser за http (s) прокси»), который поддерживается с PR 1885 и goreleaser v0.147.0:

  • либо ваш сервер GitLab доступен через Интернет, и вы не установили переменные среды
  • или ваш сервер GitLab находится в вашей интрасети, вы установили HTTP(S)_PROXY, но забыл NO_PROXY(чтобы не использовать прокси при доступе через https:// ресурс интрасети).

Батухан Апайдин предлагает в обсуждении OP применить конфигурацию gitlab :

      # .goreleaser.yml
release:
  # Default is extracted from the origin remote URL or empty if its private hosted.
  # You can also use Gitlab's internal project id by setting it in the name
  #  field and leaving the owner field empty.
  gitlab:
    owner: user
    name: repo. 
Другие вопросы по тегам