Действия GitHub: запустить golint на wihdows
Я хочу запустить golint в окнах в GitHub Actions.
go install golang.org/x/lint/golint
golint ./...
Но я встретил эту ошибку:
golint : The term 'golint' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At D:\a\_temp\dd1f47cc-42be-445e-9300-b2b5fbfd04da.ps1:4 char:1
+ golint ./...
+ ~~~~~~
+ CategoryInfo : ObjectNotFound: (golint:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : CommandNotFoundException
##[error]Process completed with exit code 1.
Что мне делать дальше?
Это мое .github/workflows/test.yaml
ниже. Это хорошо работает на Ubuntu и Mac.
name: test
on:
push:
branches:
- "**"
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macOS-latest
- windows-latest
steps:
- name: setup env unix
run: |
echo ::set-env name=GOPATH::${{ runner.workspace }}
echo ::add-path::${{ runner.workspace }}/bin
if: "matrix.os == 'ubuntu-latest' || matrix.os == 'macOS-latest'"
- name: setup env windows
run: |
echo ::set-env name=GOPATH::${{ runner.workspace }}
echo ::add-path::${{ runner.workspace }}\bin
if: "matrix.os == 'windows-latest'"
- name: setup go
uses: actions/setup-go@v1
with:
go-version: 1.x
- name: checkout
uses: actions/checkout@v1
with:
fetch-depth: 1
path: src/github.com/${{ github.repository }}
- name: golint
run: |
go env
go install golang.org/x/lint/golint
golint ./...
Это минимальный репозиторий: https://github.com/sanemat/use-golint-on-windows Это запрос на вытягивание: https://github.com/sanemat/use-golint-on-windows/pull/2
1 ответ
Решение
Как упоминалось в другом (удаленном) ответе, это проблема PATH.
Вместо этого используйте этот рабочий процесс:
name: test
on:
push:
branches:
- "**"
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macOS-latest
- windows-latest
steps:
- name: setup go
uses: actions/setup-go@v1
with:
go-version: 1.x
- name: setup env
run: |
echo "::set-env name=GOPATH::$(go env GOPATH)"
echo "::add-path::$(go env GOPATH)/bin"
shell: bash
- name: checkout
uses: actions/checkout@v1
with:
fetch-depth: 1
path: src/github.com/${{ github.repository }}
- name: golint
run: |
go env
go install golang.org/x/lint/golint
golint ./...