Goreleaser не нашел GITHUB_TOKEN

У меня есть проект , и я пытаюсь настроить goreleaser с помощью GitHub Actions . Но я получаю сообщение об ошибке:

      GoReleaser latest installed successfully v0.1.0 tag found for commit '96480db'
/opt/hostedtoolcache/goreleaser-action/1.10.2/x64/goreleaser release --rm-dist
  •starting release...
  • loading config file                              file=.goreleaser.yml
  ⨯release failed after 0serror=yaml: line 26: did not find expected key

Error: The process '/opt/hostedtoolcache/goreleaser-action/1.10.2/x64/goreleaser' failed with exit code 1

.goreleaser.yml

      before:
  hooks:
    - go mod tidy

builds:

  - main: cmd/gsolc-select/main.go
    binary: gsolc-select
    id: gsolc-select-cli

    env:
      - CGO_ENABLED=0

    goos: [ windows,linux,darwin ]
    goarch: [ amd64,386,arm,arm64 ]
    ignore:
      - goos: darwin
        goarch: 386
      - goos: windows
        goarch: arm
      - goos: windows
        goarch: arm64

    flags:
      - -trimpath

  - main: cmd/solc/main.go
    binary: solc
    id: solc

    env:
      - CGO_ENABLED=0

    goos: [ windows,linux,darwin ]
      goarch: [ amd64,386,arm,arm64 ]
      ignore:
        - goos: darwin
          goarch: 386
        - goos: windows
          goarch: arm
        - goos: windows
          goarch: arm64

archives:
  - format: zip
    id: gsolc-select
    builds: [ gsolc-select-cli ]
    replacements:
      darwin: macOS

  - format: zip
      id: solc
      builds: [ solc ]
      replacements:
        darwin: macOS

checksum:
  algorithm: sha256

.github/рабочие процессы/release.yml

      name:  Release Binary

on:
  push:
    tags:
      - "v*"
jobs:
  release:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - uses: actions/setup-go@v3
        with:
          go-version: 1.18

      - uses: goreleaser/goreleaser-action@v3
        with:
          args: "release --rm-dist"
          version: latest
          workdir: .
        env:
          GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

Насколько я понимаю, гитхаб сам предоставляет значение secrets.GITHUB_TOKEN . Я пробовал через настройки -> секреты -> добавить пользовательский токен (переменная среды), но ошибка была та же. Я не могу понять, что я делаю неправильно.

1 ответ

Твойgorelease.ymlфайл имеет различные проблемы с отступами.

Я не знаком с GoReleaser, и сообщение об ошибке не помогает, но я использую такие инструменты, как:

  • http://www.yamllint.com/ (здесь воспроизводится то же сообщение об ошибке при проверке файла: error=yaml: строка 26: не найден ожидаемый ключ)
    • Обратите внимание, что goreleaser checkтакже возвращает это сообщение.
  • https://jsonformatter.org/yaml-validator (этот указал на ошибку отступа)
  • https://codebeautify.org/yaml-validator (этот тоже указал на ошибку отступа)

Я заметил, что этот блок:

          goos: [ windows,linux,darwin ]
      goarch: [ amd64,386,arm,arm64 ]
      ignore:
        - goos: darwin
          goarch: 386
        - goos: windows
          goarch: arm
        - goos: windows
          goarch: arm64

Вместо этого должно быть так:

          goos: [ windows,linux,darwin ]
    goarch: [ amd64,386,arm,arm64 ]
    ignore:
      - goos: darwin
        goarch: 386
      - goos: windows
        goarch: arm
      - goos: windows
        goarch: arm64

И этот другой блок:

        - format: zip
      id: solc
      builds: [ solc ]
      replacements:
        darwin: macOS

Вместо этого должно быть так:

        - format: zip
    id: solc
    builds: [ solc ]
    replacements:
      darwin: macOS

Исправление отступа должно решить проблему. Более того, поскольку это, похоже, не связано с конфигурациями рабочего процесса Github Actions, это должно позволить рабочему процессу работать должным образом.

Другие вопросы по тегам