mirror of
https://github.com/mikefarah/yq.git
synced 2026-07-06 21:55:37 +00:00
build: pass GOFLAGS to docker to support buildvcs=false
In trying to develop the KYAML support, various tests gave false positive results because they made assumptions about Git functionality Make it possible to avoid that by passing GOFLAGS='-buildvcs=false' to to Makefile. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
This commit is contained in:
parent
97dc8f7e30
commit
08be1ce7ec
@ -197,6 +197,21 @@ Note: PRs with small changes (e.g. minor typos) may not be merged (see https://j
|
|||||||
make [local] test # Run in Docker container
|
make [local] test # Run in Docker container
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- **Problem**: Tests fail with a VCS error:
|
||||||
|
```bash
|
||||||
|
error obtaining VCS status: exit status 128
|
||||||
|
Use -buildvcs=false to disable VCS stamping.
|
||||||
|
```
|
||||||
|
- **Solution**:
|
||||||
|
Git security mechanisms prevent Golang from detecting the Git details inside
|
||||||
|
the container; either build with the `local` option, or pass GOFLAGS to
|
||||||
|
disable Golang buildvcs behaviour.
|
||||||
|
```bash
|
||||||
|
make local test
|
||||||
|
# OR
|
||||||
|
make test GOFLAGS='-buildvcs=true'
|
||||||
|
```
|
||||||
|
|
||||||
### Documentation Generation Issues
|
### Documentation Generation Issues
|
||||||
- **Problem**: Generated docs don't update after test changes
|
- **Problem**: Generated docs don't update after test changes
|
||||||
- **Solution**:
|
- **Solution**:
|
||||||
|
|||||||
1
Makefile
1
Makefile
@ -35,6 +35,7 @@ clean:
|
|||||||
## prefix before other make targets to run in your local dev environment
|
## prefix before other make targets to run in your local dev environment
|
||||||
local: | quiet
|
local: | quiet
|
||||||
@$(eval ENGINERUN= )
|
@$(eval ENGINERUN= )
|
||||||
|
@$(eval GOFLAGS="$(GOFLAGS)" )
|
||||||
@mkdir -p tmp
|
@mkdir -p tmp
|
||||||
@touch tmp/dev_image_id
|
@touch tmp/dev_image_id
|
||||||
quiet: # this is silly but shuts up 'Nothing to be done for `local`'
|
quiet: # this is silly but shuts up 'Nothing to be done for `local`'
|
||||||
|
|||||||
@ -4,6 +4,7 @@ IMPORT_PATH := github.com/mikefarah/${PROJECT}
|
|||||||
export GIT_COMMIT = $(shell git rev-parse --short HEAD)
|
export GIT_COMMIT = $(shell git rev-parse --short HEAD)
|
||||||
export GIT_DIRTY = $(shell test -n "$$(git status --porcelain)" && echo "+CHANGES" || true)
|
export GIT_DIRTY = $(shell test -n "$$(git status --porcelain)" && echo "+CHANGES" || true)
|
||||||
export GIT_DESCRIBE = $(shell git describe --tags --always)
|
export GIT_DESCRIBE = $(shell git describe --tags --always)
|
||||||
|
GOFLAGS :=
|
||||||
LDFLAGS :=
|
LDFLAGS :=
|
||||||
LDFLAGS += -X main.GitCommit=${GIT_COMMIT}${GIT_DIRTY}
|
LDFLAGS += -X main.GitCommit=${GIT_COMMIT}${GIT_DIRTY}
|
||||||
LDFLAGS += -X main.GitDescribe=${GIT_DESCRIBE}
|
LDFLAGS += -X main.GitDescribe=${GIT_DESCRIBE}
|
||||||
@ -33,6 +34,7 @@ DEV_IMAGE := ${PROJECT}_dev
|
|||||||
|
|
||||||
ENGINERUN := ${ENGINE} run --rm \
|
ENGINERUN := ${ENGINE} run --rm \
|
||||||
-e LDFLAGS="${LDFLAGS}" \
|
-e LDFLAGS="${LDFLAGS}" \
|
||||||
|
-e GOFLAGS="${GOFLAGS}" \
|
||||||
-e GITHUB_TOKEN="${GITHUB_TOKEN}" \
|
-e GITHUB_TOKEN="${GITHUB_TOKEN}" \
|
||||||
-v ${ROOT}/vendor:/go/src${SELINUX} \
|
-v ${ROOT}/vendor:/go/src${SELINUX} \
|
||||||
-v ${ROOT}:/${PROJECT}/src/${IMPORT_PATH}${SELINUX} \
|
-v ${ROOT}:/${PROJECT}/src/${IMPORT_PATH}${SELINUX} \
|
||||||
|
|||||||
@ -291,3 +291,4 @@ KYAML
|
|||||||
nokyaml
|
nokyaml
|
||||||
buildvcs
|
buildvcs
|
||||||
behaviour
|
behaviour
|
||||||
|
GOFLAGS
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user