From cd60809788439a5860891d95e18362ae6b413492 Mon Sep 17 00:00:00 2001 From: Yuvraj Date: Mon, 6 Dec 2021 11:10:26 +0530 Subject: [PATCH] Added script for checking diff of generated code (#30) * Added ci check for go generate Signed-off-by: Yuvraj --- .github/workflows/pull_request.yml | 10 +++++++++ Makefile | 3 --- boilerplate/flyte/end2end/end2end.sh | 17 -------------- .../flyte/golang_test_targets/Makefile | 4 ++++ .../flyte/golang_test_targets/go-gen.sh | 22 +++++++++++++++++++ 5 files changed, 36 insertions(+), 20 deletions(-) create mode 100755 boilerplate/flyte/golang_test_targets/go-gen.sh diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index fd58431..e77f6fd 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -68,3 +68,13 @@ jobs: with: version: latest args: --snapshot --skip-publish --rm-dist + + generate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - uses: actions/setup-go@v2 + with: + go-version: '1.16' + - name: Go generate and diff + run: DELTA_CHECK=true make generate \ No newline at end of file diff --git a/Makefile b/Makefile index e9905ab..1763fff 100755 --- a/Makefile +++ b/Makefile @@ -7,9 +7,6 @@ update_boilerplate: @curl https://raw.githubusercontent.com/flyteorg/boilerplate/master/boilerplate/update.sh -o boilerplate/update.sh @boilerplate/update.sh -generate: download_tooling - @go generate ./... - clean: rm -rf bin diff --git a/boilerplate/flyte/end2end/end2end.sh b/boilerplate/flyte/end2end/end2end.sh index 45877e4..60109c6 100755 --- a/boilerplate/flyte/end2end/end2end.sh +++ b/boilerplate/flyte/end2end/end2end.sh @@ -15,22 +15,5 @@ git clone https://github.com/flyteorg/flyte.git "${OUT}" pushd ${OUT} -if [ ! -z "$IMAGE" ]; -then - kind load docker-image ${IMAGE} - if [ "${IMAGE_NAME}" == "flytepropeller" ] - then - sed -i.bak -e "s_${IMAGE_NAME}:.*_${IMAGE}_g" "${OUT}"/kustomize/base/propeller/deployment.yaml - fi - - if [ "${IMAGE_NAME}" == "flyteadmin" ] - then - sed -i.bak -e "s_${IMAGE_NAME}:.*_${IMAGE}_g" "${OUT}"/kustomize/base/admindeployment/deployment.yaml - fi -fi - -make kustomize -# launch flyte end2end -kubectl apply -f "${OUT}/deployment/test/flyte_generated.yaml" make end2end_execute popd diff --git a/boilerplate/flyte/golang_test_targets/Makefile b/boilerplate/flyte/golang_test_targets/Makefile index 21d8b5b..280e1e5 100644 --- a/boilerplate/flyte/golang_test_targets/Makefile +++ b/boilerplate/flyte/golang_test_targets/Makefile @@ -8,6 +8,10 @@ download_tooling: #download dependencies (including test deps) for the package @boilerplate/flyte/golang_test_targets/download_tooling.sh +.PHONY: generate +generate: download_tooling #generate go code + @boilerplate/flyte/golang_test_targets/go-gen.sh + .PHONY: lint lint: download_tooling #lints the package for common code smells GL_DEBUG=linters_output,env golangci-lint run --deadline=5m --exclude deprecated -v diff --git a/boilerplate/flyte/golang_test_targets/go-gen.sh b/boilerplate/flyte/golang_test_targets/go-gen.sh new file mode 100755 index 0000000..54bd6af --- /dev/null +++ b/boilerplate/flyte/golang_test_targets/go-gen.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -ex + +echo "Running go generate" +go generate ./... + +# This section is used by GitHub workflow to ensure that the generation step was run +if [ -n "$DELTA_CHECK" ]; then + DIRTY=$(git status --porcelain) + if [ -n "$DIRTY" ]; then + echo "FAILED: Go code updated without commiting generated code." + echo "Ensure make generate has run and all changes are committed." + DIFF=$(git diff) + echo "diff detected: $DIFF" + DIFF=$(git diff --name-only) + echo "files different: $DIFF" + exit 1 + else + echo "SUCCESS: Generated code is up to date." + fi +fi