From 4324616b7ec24b745499a715fdd74d91bc71d300 Mon Sep 17 00:00:00 2001 From: docktermj Date: Wed, 21 Aug 2024 16:28:13 -0400 Subject: [PATCH 1/4] #162 Fix new linting tests --- .github/workflows/README.md | 66 ++++++++++++++++++------------------- docs/development.md | 2 +- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index c690e31..17e8a25 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -6,7 +6,7 @@ When issues are opened, this action adds appropriate labels to the issue. (e.g. "triage", "customer-submission") -- [Add Labels Standardized GitHub action] +- [Add Labels Standardized GitHub Action] - Uses: [senzing-factory/build-resources/.../add-labels-to-issue.yaml] ## add-to-project-garage-dependabot.yaml @@ -14,7 +14,7 @@ this action adds appropriate labels to the issue. When a Dependabot Pull Request (PR) is made against `main` branch, this action adds the PR to the "Garage" project board as "In Progress". -- [Add to Project Garage Dependabot GitHub action] +- [Add to Project Garage Dependabot GitHub Action] - Uses: [senzing-factory/build-resources/.../add-to-project-dependabot.yaml] ## add-to-project-garage.yaml @@ -22,7 +22,7 @@ this action adds the PR to the "Garage" project board as "In Progress". When an issue is created, this action adds the issue to the "Garage" board as "Backlog". -- [Add to Project Garage GitHub action] +- [Add to Project Garage GitHub Action] - Uses: [senzing-factory/build-resources/.../add-to-project.yaml] ## dependabot-approve-and-merge.yaml @@ -31,7 +31,7 @@ When a Dependabot Pull Request (PR) is made against the `main` branch, this action determines if it should be automatically approved and merged into the `main` branch. Once this action occurs [move-pr-to-done-dependabot.yaml] moves the PR on the "Garage" project board to "Done". -- [Dependabot Approve and Merge GitHub action] +- [Dependabot Approve and Merge GitHub Action] - Uses: [senzing-factory/build-resources/.../dependabot-approve-and-merge.yaml] ## docker-build-container.yaml @@ -39,9 +39,9 @@ Once this action occurs [move-pr-to-done-dependabot.yaml] moves the PR on the "G When a Pull Request is made against the `main` branch, this action verifies that the `Dockerfile` can be successfully built. -*Note:* The Docker image is **not** pushed to [DockerHub]. +_Note:_ The Docker image is **not** pushed to [DockerHub]. -- [Docker Build Container GitHub action] +- [Docker Build Container GitHub Action] - Uses: [senzing-factory/github-action-docker-buildx-build] ## docker-push-containers-to-dockerhub.yaml @@ -49,7 +49,7 @@ this action verifies that the `Dockerfile` can be successfully built. After a [Semantic Version] release is created, this action builds Docker images on multiple architectures and pushes the Docker images to [DockerHub]. -- [Docker Push Containers to DockerHub GitHub action] +- [Docker Push Containers to DockerHub GitHub Action] - Uses: [senzing-factory/github-action-docker-buildx-build] ## golangci-lint.yaml @@ -57,7 +57,7 @@ this action builds Docker images on multiple architectures and pushes the Docker When a change is committed to GitHub or a Pull Request is made against the `main` branch, this action runs [golangci-lint] to run multiple linters against the code. -- [Golangci Lint GitHub action] +- [Golangci Lint GitHub Action] - Configuration: - [.golangci.yaml] - Uses: @@ -71,7 +71,7 @@ this action runs [golangci-lint] to run multiple linters against the code. After a [Semantic Version] release is created, this action expedites the Go publishing process. -- [Go Proxy Pull GitHub action] +- [Go Proxy Pull GitHub Action] - Uses: [andrewslotin/go-proxy-pull-action] ## go-test-darwin.yaml @@ -79,7 +79,7 @@ this action expedites the Go publishing process. When a Pull Request is made against the `main` branch, this action runs `go test` with coverage testing on macOS. -- [Go Test Darwin GitHub action] +- [Go Test Darwin GitHub Action] - Configuration: [testcoverage.yaml] - Uses: - [actions/checkout] @@ -94,7 +94,7 @@ this action runs `go test` with coverage testing on macOS. When a change is committed to GitHub or a Pull Request is made against the `main` branch, this action runs `go test` with coverage testing on Linux. -- [Go Test Linux GitHub action] +- [Go Test Linux GitHub Action] - Configuration: [testcoverage.yaml] - Uses: - [actions/checkout] @@ -109,7 +109,7 @@ this action runs `go test` with coverage testing on Linux. When a Pull Request is made against the `main` branch, this action runs `go test` with coverage testing on Windows. -- [Go Test Windows GitHub action] +- [Go Test Windows GitHub Action] - Configuration: [testcoverage.yaml] - Uses: - [actions/checkout] @@ -124,7 +124,7 @@ this action runs `go test` with coverage testing on Windows. When a change is committed to GitHub or a Pull Request is made against the `main` branch, this action runs [super-linter] to run multiple linters against the code. -- [Lint Workflows GitHub action] +- [Lint Workflows GitHub Action] - Configuration: - [.checkov.yaml] - [.jscpd.json] @@ -137,7 +137,7 @@ After a [Semantic Version] release is created, this action creates a Pull Request for an updated [github.go] file for the **next** Semantic Version release by increasing the Semantic Version's Patch value. -- [Make Go GitHub File GitHub action] +- [Make Go GitHub File GitHub Action] - Uses: [senzing-factory/build-resources/.../make-go-github-file.yaml] ## make-go-tag.yaml @@ -146,7 +146,7 @@ After a [Semantic Version] release is created, this action creates a tag in the form `vM.m.P` using the SHA of the `M.m.P` release. The `v` prefix is standard usage in [Go]. -- [Make Go Tag GitHub action] +- [Make Go Tag GitHub Action] - Uses: - [actions/checkout] - [senzing-factory/github-action-make-go-tag] @@ -156,38 +156,38 @@ The `v` prefix is standard usage in [Go]. When a Pull Request is merged into the `main` branch, this action moves the PR on the "Garage" project board to "Done". -- [Move PR to Done Dependabot GitHub action] +- [Move PR to Done Dependabot GitHub Action] - Uses: [senzing-factory/build-resources/.../move-pr-to-done-dependabot.yaml] -[.checkov.yaml]: ../linters/README.md#checkovyaml +[.checkov.yaml]: ../linters/README.md#checkovyaml [.golangci.yaml]: ../linters/README.md#golangciyaml [.jscpd.json]: ../linters/README.md#jscpdjson [.yaml-lint.yml]: ../linters/README.md#yaml-lintyml [actions/checkout]: https://github.com/actions/checkout [actions/setup-go]: https://github.com/actions/setup-go [actions/upload-artifact]: https://github.com/actions/upload-artifact -[Add Labels Standardized GitHub action]: add-labels-standardized.yaml -[Add to Project Garage Dependabot GitHub action]: add-to-project-garage-dependabot.yaml -[Add to Project Garage GitHub action]: add-to-project-garage.yaml +[Add Labels Standardized GitHub Action]: add-labels-standardized.yaml +[Add to Project Garage Dependabot GitHub Action]: add-to-project-garage-dependabot.yaml +[Add to Project Garage GitHub Action]: add-to-project-garage.yaml [andrewslotin/go-proxy-pull-action]: https://github.com/andrewslotin/go-proxy-pull-action -[Dependabot Approve and Merge GitHub action]: dependabot-approve-and-merge.yaml -[Docker Build Container GitHub action]: docker-build-container.yaml -[Docker Push Containers to DockerHub GitHub action]: docker-push-containers-to-dockerhub.yaml +[Dependabot Approve and Merge GitHub Action]: dependabot-approve-and-merge.yaml +[Docker Build Container GitHub Action]: docker-build-container.yaml +[Docker Push Containers to DockerHub GitHub Action]: docker-push-containers-to-dockerhub.yaml [DockerHub]: https://hub.docker.com/ [github.go]: ../../cmd/github.go -[Go Proxy Pull GitHub action]: go-proxy-pull.yaml -[Go Test Darwin GitHub action]: go-test-darwin.yaml -[Go Test Linux GitHub action]: go-test-linux.yaml -[Go Test Windows GitHub action]: go-test-windows.yaml +[Go Proxy Pull GitHub Action]: go-proxy-pull.yaml +[Go Test Darwin GitHub Action]: go-test-darwin.yaml +[Go Test Linux GitHub Action]: go-test-linux.yaml +[Go Test Windows GitHub Action]: go-test-windows.yaml [Go]: https://go.dev/ -[Golangci Lint GitHub action]: golangci-lint.yaml +[Golangci Lint GitHub Action]: golangci-lint.yaml [golangci-lint]: https://github.com/golangci/golangci-lint [golangci/golangci-lint-action]: https://github.com/golangci/golangci-lint-action [gotesttools/gotestfmt-action]: https://github.com/gotesttools/gotestfmt-action -[Lint Workflows GitHub action]: lint-workflows.yaml -[Make Go GitHub File GitHub action]: make-go-github-file.yaml -[Make Go Tag GitHub action]: make-go-tag.yaml -[Move PR to Done Dependabot GitHub action]: move-pr-to-done-dependabot.yaml +[Lint Workflows GitHub Action]: lint-workflows.yaml +[Make Go GitHub File GitHub Action]: make-go-github-file.yaml +[Make Go Tag GitHub Action]: make-go-tag.yaml +[Move PR to Done Dependabot GitHub Action]: move-pr-to-done-dependabot.yaml [move-pr-to-done-dependabot.yaml]: move-pr-to-done-dependabotyaml [Semantic Version]: https://semver.org/ [senzing-factory/build-resources/.../add-labels-to-issue.yaml]: https://github.com/senzing-factory/build-resources/blob/main/.github/workflows/add-labels-to-issue.yaml @@ -202,4 +202,4 @@ this action moves the PR on the "Garage" project board to "Done". [senzing-factory/github-action-install-senzing-api]: https://github.com/senzing-factory/github-action-install-senzing-api [senzing-factory/github-action-make-go-tag]: https://github.com/senzing-factory/github-action-make-go-tag [super-linter]: https://github.com/super-linter/super-linter -[testcoverage.yaml]: ../coverage/README.md#testcoverageyaml +[testcoverage.yaml]: ../coverage/README.md#testcoverageyaml diff --git a/docs/development.md b/docs/development.md index 5ca77e7..0ca690e 100644 --- a/docs/development.md +++ b/docs/development.md @@ -168,7 +168,7 @@ Create a code coverage map. 1. If a web page doesn't appear, visit [localhost:6060]. 1. Senzing documentation will be in the "Third party" section. - `github.com` > `senzing` > `template-go` + `github.com` > `senzing-garage` > `template-go` 1. When a versioned release is published with a `v0.0.0` format tag, the reference can be found by clicking on the following badge at the top of the README.md page. From 26f9c476f66d9a37158bbeb541a0dd4f130bb7f4 Mon Sep 17 00:00:00 2001 From: docktermj Date: Mon, 26 Aug 2024 10:32:15 -0400 Subject: [PATCH 2/4] #162 Add variations of G2C.db --- testdata/sqlite/G2C-empty.db | 0 testdata/sqlite/G2C-with-config.db | Bin 0 -> 307200 bytes testdata/sqlite/G2C-with-schema.db | Bin 0 -> 48128 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 testdata/sqlite/G2C-empty.db create mode 100644 testdata/sqlite/G2C-with-config.db create mode 100644 testdata/sqlite/G2C-with-schema.db diff --git a/testdata/sqlite/G2C-empty.db b/testdata/sqlite/G2C-empty.db new file mode 100644 index 0000000..e69de29 diff --git a/testdata/sqlite/G2C-with-config.db b/testdata/sqlite/G2C-with-config.db new file mode 100644 index 0000000000000000000000000000000000000000..9b308c1b69500b38850f39dae7c192602ecfe058 GIT binary patch literal 307200 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

TjwW{+-Lb0J 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 literal 0 HcmV?d00001 From 1b1f55a85de04de74d6fba5c47b4c11da5b061da Mon Sep 17 00:00:00 2001 From: docktermj Date: Mon, 26 Aug 2024 11:39:11 -0400 Subject: [PATCH 3/4] #162 simplify layers --- package.Dockerfile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package.Dockerfile b/package.Dockerfile index e346c44..2f3bbe4 100755 --- a/package.Dockerfile +++ b/package.Dockerfile @@ -3,8 +3,8 @@ # ----------------------------------------------------------------------------- ARG IMAGE_SENZINGAPI_RUNTIME=senzing/senzingapi-runtime-staging:latest -ARG IMAGE_GO_BUILDER=golang:1.22.3-bullseye -ARG IMAGE_FPM_BUILDER=dockter/fpm:latest +ARG IMAGE_BUILDER=golang:1.22.3-bullseye +ARG IMAGE_FPM=dockter/fpm:latest ARG IMAGE_FINAL=alpine # ----------------------------------------------------------------------------- @@ -14,10 +14,10 @@ ARG IMAGE_FINAL=alpine FROM ${IMAGE_SENZINGAPI_RUNTIME} AS senzingapi_runtime # ----------------------------------------------------------------------------- -# Stage: go_builder +# Stage: builder # ----------------------------------------------------------------------------- -FROM ${IMAGE_GO_BUILDER} AS go_builder +FROM ${IMAGE_BUILDER} AS builder ENV REFRESHED_AT=2024-07-01 LABEL Name="senzing/go-builder" \ Maintainer="support@senzing.com" \ @@ -51,12 +51,12 @@ RUN mkdir -p /output \ && cp -R ${GOPATH}/src/${GO_PACKAGE_NAME}/target/* /output/ # ----------------------------------------------------------------------------- -# Stage: fpm_builder +# Stage: fpm # - Reference: https://github.com/jordansissel/fpm/blob/master/Dockerfile # - FPM: https://fpm.readthedocs.io/en/latest/cli-reference.html # ----------------------------------------------------------------------------- -FROM ${IMAGE_FPM_BUILDER} AS fpm_builder +FROM ${IMAGE_FPM} AS fpm ENV REFRESHED_AT=2024-07-01 LABEL Name="senzing/fpm-builder" \ Maintainer="support@senzing.com" \ @@ -71,7 +71,7 @@ ARG GO_PACKAGE_NAME # Copy files from prior stage. -COPY --from=go_builder "/output/linux-amd64/*" "/output/linux-amd64/" +COPY --from=builder "/output/linux-amd64/*" "/output/linux-amd64/" # Create Linux RPM package. @@ -117,8 +117,8 @@ ARG PROGRAM_NAME # Copy files from prior step. -COPY --from=fpm_builder "/output/*" "/output/" -COPY --from=fpm_builder "/output/linux-amd64/${PROGRAM_NAME}" "/output/linux-amd64/${PROGRAM_NAME}" +COPY --from=fpm "/output/*" "/output/" +COPY --from=fpm "/output/linux-amd64/${PROGRAM_NAME}" "/output/linux-amd64/${PROGRAM_NAME}" USER 1001 CMD ["/bin/bash"] From 81fb377fd22b44f17c83460c3fb5224f8139da66 Mon Sep 17 00:00:00 2001 From: docktermj Date: Wed, 28 Aug 2024 09:25:33 -0400 Subject: [PATCH 4/4] #162 Change database --- testdata/sqlite/G2C.db | Bin 48128 -> 307200 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/testdata/sqlite/G2C.db b/testdata/sqlite/G2C.db index 8c0428ce2759bc03bb23aefafeee2dac7950e0bb..9b308c1b69500b38850f39dae7c192602ecfe058 100644 GIT binary patch literal 307200 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

TjwW{+-Lb0J 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