From 37daa06eb76b1a99c9a20acfbc82a71c171ddcd8 Mon Sep 17 00:00:00 2001 From: Anton Novojilov Date: Wed, 30 Mar 2022 11:31:48 +0300 Subject: [PATCH 1/3] Migrate to go modules + Improve GitHub actions workflows --- .github/dependabot.yml | 30 ++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 14 +++++++------- .github/workflows/codeql.yml | 5 +---- Makefile | 24 ++++++++++++++++-------- README.md | 2 +- bop.go | 5 +++-- cli/cli.go | 26 +++++++++++++------------- data/data.go | 2 +- extractor/extractor.go | 8 ++++---- generator/generator.go | 6 +++--- go.mod | 7 +++++++ go.sum | 27 +++++++++++++++++++++++++++ rpm/rpm.go | 4 ++-- 13 files changed, 115 insertions(+), 45 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 go.mod create mode 100644 go.sum diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..fc51337 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,30 @@ +version: 2 + +updates: + - package-ecosystem: "gomod" + directory: "/" + target-branch: "develop" + schedule: + interval: "daily" + timezone: "Europe/London" + time: "03:00" + labels: + - "PR • MAINTENANCE" + assignees: + - "andyone" + reviewers: + - "andyone" + + - package-ecosystem: "github-actions" + directory: "/" + target-branch: "develop" + schedule: + interval: "daily" + timezone: "Europe/London" + time: "04:00" + labels: + - "PR • MAINTENANCE" + assignees: + - "andyone" + reviewers: + - "andyone" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 07345a7..5cf3abe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: strategy: matrix: - go: [ '1.16.x', '1.17.x' ] + go: [ '1.17.x', '1.18.x' ] steps: - name: Set up Go @@ -35,7 +35,7 @@ jobs: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH" - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: path: ${{env.SRC_DIR}} @@ -61,7 +61,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: '1.16.x' + go-version: '1.17.x' id: go - name: Setup PATH @@ -71,7 +71,7 @@ jobs: echo "${{ github.workspace }}/bin" >> "$GITHUB_PATH" - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: path: ${{env.SRC_DIR}} @@ -93,7 +93,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Check scripts with Shellcheck uses: essentialkaos/shellcheck-action@v1 @@ -108,7 +108,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Check dockerfiles with Hadolint uses: essentialkaos/hadolint-action@v1 @@ -123,7 +123,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Login to DockerHub uses: docker/login-action@v1 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 293a697..3444662 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -6,7 +6,7 @@ on: pull_request: branches: [master] schedule: - - cron: '0 18 * * 1,3,5' + - cron: '0 17 * * 1,3,5' jobs: analyse: @@ -19,9 +19,6 @@ jobs: with: fetch-depth: 2 - - run: git checkout HEAD^2 - if: ${{ github.event_name == 'pull_request' }} - - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: diff --git a/Makefile b/Makefile index 850ef69..13ce468 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,16 @@ ################################################################################ -# This Makefile generated by GoMakeGen 1.3.2 using next command: -# gomakegen . +# This Makefile generated by GoMakeGen 1.5.1 using next command: +# gomakegen --mod . # # More info: https://kaos.sh/gomakegen ################################################################################ +export GO111MODULE=on + .DEFAULT_GOAL := help -.PHONY = fmt vet all clean git-config deps help +.PHONY = fmt vet all clean deps mod-init mod-update mod-vendor help ################################################################################ @@ -23,11 +25,17 @@ install: ## Install all binaries uninstall: ## Uninstall all binaries rm -f /usr/bin/bop -git-config: ## Configure git redirects for stable import path services - git config --global http.https://pkg.re.followRedirects true +deps: mod-update ## Download dependencies + +mod-init: ## Initialize new module + go mod init + go mod tidy + +mod-update: ## Download modules to local cache + go mod download -deps: git-config ## Download dependencies - go get -d -v pkg.re/essentialkaos/ek.v12 +mod-vendor: ## Make vendored copy of dependencies + go mod vendor fmt: ## Format source code with gofmt find . -name "*.go" -exec gofmt -s -w {} \; @@ -43,6 +51,6 @@ help: ## Show this info @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \ | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[33m%-12s\033[0m %s\n", $$1, $$2}' @echo -e '' - @echo -e '\033[90mGenerated by GoMakeGen 1.3.2\033[0m\n' + @echo -e '\033[90mGenerated by GoMakeGen 1.5.1\033[0m\n' ################################################################################ diff --git a/README.md b/README.md index 04a562d..5f92899 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ #### From source -To build the `bop` from scratch, make sure you have a working Go 1.16+ workspace (_[instructions](https://golang.org/doc/install)_), then: +To build the `bop` from scratch, make sure you have a working Go 1.17+ workspace (_[instructions](https://golang.org/doc/install)_), then: ``` go install github.com/essentialkaos/bop diff --git a/bop.go b/bop.go index 943b0c7..d6c9a12 100644 --- a/bop.go +++ b/bop.go @@ -1,10 +1,11 @@ -// +build linux, !darwin, !windows +//go:build linux +// +build linux package main // ////////////////////////////////////////////////////////////////////////////////// // // // -// Copyright (c) 2020 ESSENTIAL KAOS // +// Copyright (c) 2022 ESSENTIAL KAOS // // Apache License, Version 2.0 // // // // ////////////////////////////////////////////////////////////////////////////////// // diff --git a/cli/cli.go b/cli/cli.go index 4616d05..0114b7a 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -2,7 +2,7 @@ package cli // ////////////////////////////////////////////////////////////////////////////////// // // // -// Copyright (c) 2020 ESSENTIAL KAOS // +// Copyright (c) 2022 ESSENTIAL KAOS // // Apache License, Version 2.0 // // // // ////////////////////////////////////////////////////////////////////////////////// // @@ -14,17 +14,17 @@ import ( "strings" "time" - "pkg.re/essentialkaos/ek.v12/env" - "pkg.re/essentialkaos/ek.v12/fmtc" - "pkg.re/essentialkaos/ek.v12/fsutil" - "pkg.re/essentialkaos/ek.v12/options" - "pkg.re/essentialkaos/ek.v12/pluralize" - "pkg.re/essentialkaos/ek.v12/timeutil" - "pkg.re/essentialkaos/ek.v12/usage" - "pkg.re/essentialkaos/ek.v12/usage/completion/bash" - "pkg.re/essentialkaos/ek.v12/usage/completion/fish" - "pkg.re/essentialkaos/ek.v12/usage/completion/zsh" - "pkg.re/essentialkaos/ek.v12/usage/update" + "github.com/essentialkaos/ek/v12/env" + "github.com/essentialkaos/ek/v12/fmtc" + "github.com/essentialkaos/ek/v12/fsutil" + "github.com/essentialkaos/ek/v12/options" + "github.com/essentialkaos/ek/v12/pluralize" + "github.com/essentialkaos/ek/v12/timeutil" + "github.com/essentialkaos/ek/v12/usage" + "github.com/essentialkaos/ek/v12/usage/completion/bash" + "github.com/essentialkaos/ek/v12/usage/completion/fish" + "github.com/essentialkaos/ek/v12/usage/completion/zsh" + "github.com/essentialkaos/ek/v12/usage/update" "github.com/essentialkaos/bop/extractor" "github.com/essentialkaos/bop/generator" @@ -36,7 +36,7 @@ import ( // App info const ( APP = "bop" - VER = "1.1.3" + VER = "1.1.4" DESC = "Utility for generating formal bibop tests for RPM packages" ) diff --git a/data/data.go b/data/data.go index 01a0290..fa4cb3f 100644 --- a/data/data.go +++ b/data/data.go @@ -2,7 +2,7 @@ package data // ////////////////////////////////////////////////////////////////////////////////// // // // -// Copyright (c) 2020 ESSENTIAL KAOS // +// Copyright (c) 2022 ESSENTIAL KAOS // // Apache License, Version 2.0 // // // // ////////////////////////////////////////////////////////////////////////////////// // diff --git a/extractor/extractor.go b/extractor/extractor.go index 6779a7a..8f8c6d8 100644 --- a/extractor/extractor.go +++ b/extractor/extractor.go @@ -2,7 +2,7 @@ package extractor // ////////////////////////////////////////////////////////////////////////////////// // // // -// Copyright (c) 2020 ESSENTIAL KAOS // +// Copyright (c) 2022 ESSENTIAL KAOS // // Apache License, Version 2.0 // // // // ////////////////////////////////////////////////////////////////////////////////// // @@ -15,9 +15,9 @@ import ( "sort" "strings" - PATH "pkg.re/essentialkaos/ek.v12/path" - "pkg.re/essentialkaos/ek.v12/sliceutil" - "pkg.re/essentialkaos/ek.v12/strutil" + PATH "github.com/essentialkaos/ek/v12/path" + "github.com/essentialkaos/ek/v12/sliceutil" + "github.com/essentialkaos/ek/v12/strutil" "github.com/essentialkaos/bop/data" "github.com/essentialkaos/bop/rpm" diff --git a/generator/generator.go b/generator/generator.go index 8d9cd95..b4848ac 100644 --- a/generator/generator.go +++ b/generator/generator.go @@ -2,7 +2,7 @@ package generator // ////////////////////////////////////////////////////////////////////////////////// // // // -// Copyright (c) 2020 ESSENTIAL KAOS // +// Copyright (c) 2022 ESSENTIAL KAOS // // Apache License, Version 2.0 // // // // ////////////////////////////////////////////////////////////////////////////////// // @@ -11,8 +11,8 @@ import ( "fmt" "strings" - PATH "pkg.re/essentialkaos/ek.v12/path" - "pkg.re/essentialkaos/ek.v12/sliceutil" + PATH "github.com/essentialkaos/ek/v12/path" + "github.com/essentialkaos/ek/v12/sliceutil" "github.com/essentialkaos/bop/data" "github.com/essentialkaos/bop/rpm" diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..642962f --- /dev/null +++ b/go.mod @@ -0,0 +1,7 @@ +module github.com/essentialkaos/bop + +go 1.17 + +require github.com/essentialkaos/ek/v12 v12.42.1 + +require golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..2a04230 --- /dev/null +++ b/go.sum @@ -0,0 +1,27 @@ +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/essentialkaos/check v1.2.1 h1:avvyFy/1acUNwfxwuOLsHeCjfXtMygtbu0lVDr3nxFs= +github.com/essentialkaos/check v1.2.1/go.mod h1:PhxzfJWlf5L/skuyhzBLIvjMB5Xu9TIyDIsqpY5MvB8= +github.com/essentialkaos/ek/v12 v12.42.1 h1:h3PPy0XNXUj1IsEid/p9IzaF0o5hZEGOBFh7XZawAyg= +github.com/essentialkaos/ek/v12 v12.42.1/go.mod h1:Cv/tOZshmFg4pMJnBkg4aW/WyYhzzc41qzZIfk5RSi4= +github.com/essentialkaos/go-linenoise/v3 v3.3.5/go.mod h1:g4X3LhT83XT4h7xwrCLclAdMkJvS9qWBQTGNdS6y4vo= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8 h1:OH54vjqzRWmbJ62fjuhxy7AxFFgoHN0/DPc/UrL8cAs= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= diff --git a/rpm/rpm.go b/rpm/rpm.go index 9a33e76..be603ab 100644 --- a/rpm/rpm.go +++ b/rpm/rpm.go @@ -2,7 +2,7 @@ package rpm // ////////////////////////////////////////////////////////////////////////////////// // // // -// Copyright (c) 2020 ESSENTIAL KAOS // +// Copyright (c) 2022 ESSENTIAL KAOS // // Apache License, Version 2.0 // // // // ////////////////////////////////////////////////////////////////////////////////// // @@ -15,7 +15,7 @@ import ( "strconv" "strings" - "pkg.re/essentialkaos/ek.v12/strutil" + "github.com/essentialkaos/ek/v12/strutil" ) // ////////////////////////////////////////////////////////////////////////////////// // From 1ef1955a956e402ffbc23b0a08591a6cf3ffcddc Mon Sep 17 00:00:00 2001 From: Anton Novojilov Date: Wed, 30 Mar 2022 11:35:36 +0300 Subject: [PATCH 2/3] Migrate to go modules + Improve GitHub actions workflows --- cli/cli.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cli/cli.go b/cli/cli.go index 0114b7a..a95d34e 100644 --- a/cli/cli.go +++ b/cli/cli.go @@ -67,6 +67,7 @@ var optMap = options.Map{ // ////////////////////////////////////////////////////////////////////////////////// // +// Init is main function func Init() { args, errs := options.Parse(optMap) From c6be11b769ccaa3116d5694c9e1a3bd12bbe719f Mon Sep 17 00:00:00 2001 From: Anton Novojilov Date: Wed, 30 Mar 2022 11:39:14 +0300 Subject: [PATCH 3/3] Improve Dockerfile --- Dockerfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index c2e579c..e509e3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,11 +12,8 @@ COPY . . # hadolint ignore=DL3031,DL3033 RUN yum -y -q install https://yum.kaos.st/kaos-repo-latest.el7.noarch.rpm && \ - yum -y update && \ yum -y -q install make golang git upx && \ - yum clean all && \ - make deps && \ - make all && \ + yum clean all && make deps && make all && \ upx bop ## FINAL IMAGE #################################################################