From 2284bcf7ecd793264bae38a39ee88ea4b1b36796 Mon Sep 17 00:00:00 2001 From: Ugo Mignon Date: Mon, 23 Jan 2023 18:52:07 +0100 Subject: [PATCH] !feat(rootless): add podman for rootless --- .circleci/config.yml | 6 +- Makefile | 60 +++++++++---------- README.md | 2 +- examples/go_examples.md | 6 +- examples/multiple_suites.md | 2 +- examples/php_examples.md | 4 +- examples/ruby_examples.md | 4 +- vendor/github.com/spf13/cobra/.travis.yml | 2 +- vendor/github.com/spf13/cobra/README.md | 4 +- vendor/golang.org/x/sys/plan9/mksyscall.go | 2 +- vendor/golang.org/x/sys/unix/README.md | 4 +- vendor/golang.org/x/sys/unix/linux/Dockerfile | 4 +- vendor/golang.org/x/sys/unix/linux/mkall.go | 2 +- .../golang.org/x/sys/unix/linux/mksysnum.go | 2 +- vendor/golang.org/x/sys/unix/mkall.sh | 8 +-- vendor/golang.org/x/sys/unix/mkerrors.sh | 2 +- vendor/golang.org/x/sys/unix/mkpost.go | 2 +- vendor/golang.org/x/sys/unix/mksyscall.go | 2 +- vendor/golang.org/x/tools/cmd/tip/Makefile | 16 ++--- .../go-git.v4/_examples/storage/README.md | 4 +- .../src-d/go-git.v4/references_test.go | 5 +- 21 files changed, 70 insertions(+), 73 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 19f78526..5a063cf4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,11 +1,11 @@ version: 2 linux_image: &linux_image - docker: + podman: - image: circleci/golang:1.15 working_directory: /go/src/github.com/codeclimate/test-reporter - setup_remote_docker: - docker_layer_caching: true + setup_remote_podman: + podman_layer_caching: true macos_image: &macos_image macos: diff --git a/Makefile b/Makefile index 181039e0..0bd97741 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ -.PHONY: test-docker build-docker build-linux-cgo release test-excoveralls +.PHONY: test-podman build-podman build-linux-cgo release test-excoveralls AWS ?= $(shell which aws) SHA_SUM ?= $(shell which shasum) GPG ?= $(shell which gpg) TAR ?= $(shell which tar) -DOCKER_RUN ?= $(shell which docker) run --rm +PODMAN_RUN ?= $(shell which podman) run --rm PANDOC ?= $(shell which pandoc) MAN_FILES = $(wildcard man/*.md) @@ -35,7 +35,7 @@ endef man/%: man/%.md $(PANDOC) -s -t man $< -o $@ -all: test-docker build-all $(MAN_PAGES) +all: test-podman build-all $(MAN_PAGES) test: go test $(shell go list ./... | grep -v /vendor/) @@ -81,9 +81,9 @@ build-darwin: PREFIX=artifacts/ \ BINARY_SUFFIX=-$(VERSION)-darwin-amd64 -build-docker: BINARY_SUFFIX ?= -$(VERSION)-$$GOOS-$$GOARCH -build-docker: - $(DOCKER_RUN) \ +build-podman: BINARY_SUFFIX ?= -$(VERSION)-$$GOOS-$$GOARCH +build-podman: + $(PODMAN_RUN) \ --env PREFIX=/artifacts/ \ --env BINARY_SUFFIX=${BINARY_SUFFIX} \ --env GOARCH \ @@ -95,53 +95,53 @@ build-docker: --workdir "/src/$(PROJECT)" \ golang:1.15 make build BUILD_TAGS=${BUILD_TAGS} -build-docker-linux: - $(MAKE) build-docker GOOS=linux GOARCH=amd64 CGO_ENABLED=0 +build-podman-linux: + $(MAKE) build-podman GOOS=linux GOARCH=amd64 CGO_ENABLED=0 -build-docker-linux-arm64: - $(MAKE) build-docker GOOS=linux GOARCH=arm64 CGO_ENABLED=0 +build-podman-linux-arm64: + $(MAKE) build-podman GOOS=linux GOARCH=arm64 CGO_ENABLED=0 -build-docker-linux-cgo: - $(MAKE) build-docker GOOS=linux GOARCH=amd64 CGO_ENABLED=1 \ +build-podman-linux-cgo: + $(MAKE) build-podman GOOS=linux GOARCH=amd64 CGO_ENABLED=1 \ BUILD_TAGS="netcgo" BINARY_SUFFIX=-$(VERSION)-netcgo-linux-amd64 -test-docker: - $(DOCKER_RUN) \ +test-podman: + $(PODMAN_RUN) \ --env GOPATH=/ \ --volume "$(PWD)":"/src/$(PROJECT)":ro \ --workdir "/src/$(PROJECT)" \ golang:1.15 make test -benchmark-docker: - $(DOCKER_RUN) \ +benchmark-podman: + $(PODMAN_RUN) \ --env GOPATH=/ \ --volume "$(PWD)":"/src/$(PROJECT)":ro \ --workdir "/src/$(PROJECT)" \ golang:1.15 make benchmark test-simplecov: - docker build -f integration-tests/simplecov/Dockerfile . + podman build -f integration-tests/simplecov/Dockerfile . test-lcov: - docker build -f integration-tests/lcov/Dockerfile . + podman build -f integration-tests/lcov/Dockerfile . test-covpy: - docker build -f integration-tests/coverage_py/Dockerfile . + podman build -f integration-tests/coverage_py/Dockerfile . test-gcov: - docker build -f integration-tests/gcov/Dockerfile . + podman build -f integration-tests/gcov/Dockerfile . test-gocov: - docker build -f integration-tests/gocov/Dockerfile . + podman build -f integration-tests/gocov/Dockerfile . test-clover: - docker build -f integration-tests/clover/Dockerfile . + podman build -f integration-tests/clover/Dockerfile . test-cobertura: - docker build -f integration-tests/cobertura/Dockerfile . + podman build -f integration-tests/cobertura/Dockerfile . test-excoveralls: - docker build -f integration-tests/excoveralls/Dockerfile . + podman build -f integration-tests/excoveralls/Dockerfile . publish-head: $(call upload_artifacts,head) @@ -174,17 +174,17 @@ tag: # Must be run in a OS X machine. OS X binary is build natively. manual-release: - $(MAKE) build-docker-linux - $(MAKE) build-docker-linux-arm64 - $(MAKE) build-docker-linux-cgo + $(MAKE) build-podman-linux + $(MAKE) build-podman-linux-arm64 + $(MAKE) build-podman-linux-cgo $(MAKE) build-darwin $(MAKE) gen-linux-checksum $(MAKE) gen-linux-arm64-checksum $(MAKE) gen-linux-cgo-checksum $(MAKE) gen-darwin-checksum - $(MAKE) build-docker-linux VERSION=latest - $(MAKE) build-docker-linux-arm64 VERSION=latest - $(MAKE) build-docker-linux-cgo VERSION=latest + $(MAKE) build-podman-linux VERSION=latest + $(MAKE) build-podman-linux-arm64 VERSION=latest + $(MAKE) build-podman-linux-cgo VERSION=latest $(MAKE) build-darwin VERSION=latest $(MAKE) gen-linux-checksum VERSION=latest $(MAKE) gen-linux-arm64-checksum VERSION=latest diff --git a/README.md b/README.md index 0ddaac47..66435d20 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ The test reporter is distributed as a pre-built binary named cc-test-reporter. Y ### Linux ARM64 - [codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-arm64](https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-arm64) -- [codeclimate.com/downloads/test-reporter/test-reporter-${VERSION}-linux-amd64](https://codeclimate.com/downloads/test-reporter/test-reporter-${VERSION}-linux-arm64) +- [codeclimate.com/downloads/test-reporter/test-reporter-${VERSION}-linux-arm64](https://codeclimate.com/downloads/test-reporter/test-reporter-${VERSION}-linux-arm64) ### Linux netcgo (recommended if you're using a VPN) - [codeclimate.com/downloads/test-reporter/test-reporter-latest-netcgo-linux-amd64](https://codeclimate.com/downloads/test-reporter/test-reporter-latest-netcgo-linux-amd64) diff --git a/examples/go_examples.md b/examples/go_examples.md index 0f492fc4..a31c9613 100644 --- a/examples/go_examples.md +++ b/examples/go_examples.md @@ -93,11 +93,11 @@ RUN "$(go env GOPATH)/bin/go-bindata" -o global/assets.go -pkg global assets/... travis.yml ```yaml services: - - docker + - podman script: - - docker build -t app . - - docker run --rm app ./codecoverage.sh + - podman build -t app . + - podman run --rm app ./codecoverage.sh ``` diff --git a/examples/multiple_suites.md b/examples/multiple_suites.md index 66556d24..77d2410f 100644 --- a/examples/multiple_suites.md +++ b/examples/multiple_suites.md @@ -13,7 +13,7 @@ version: 2.0 defaults: &defaults working_directory: ~/repo - docker: + podman: - image: circleci/ruby:2.4.2-jessie-node-browsers environment: PGHOST: 127.0.0.1 diff --git a/examples/php_examples.md b/examples/php_examples.md index 4e60f145..a8590a53 100644 --- a/examples/php_examples.md +++ b/examples/php_examples.md @@ -97,13 +97,13 @@ jobs: build: environment: CC_TEST_REPORTER_ID: YOUR_CODE_CLIMATE_REPORTER_ID - docker: + podman: - image: notnoopci/php:7.1.5-browsers working_directory: ~/repo steps: - checkout - run: sudo pecl channel-update pecl.php.net - - run: sudo pecl install xdebug && sudo docker-php-ext-enable xdebug + - run: sudo pecl install xdebug && sudo podman-php-ext-enable xdebug - run: curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - run: chmod +x ./cc-test-reporter - run: sudo mkdir -p $CIRCLE_TEST_REPORTS/phpunit diff --git a/examples/ruby_examples.md b/examples/ruby_examples.md index b9619010..c52be7b6 100644 --- a/examples/ruby_examples.md +++ b/examples/ruby_examples.md @@ -132,7 +132,7 @@ jobs: RACK_ENV: test COVERAGE: true TZ: /usr/share/zoneinfo/America/Chicago - docker: + podman: - image: circleci/ruby:2.5.1-stretch-node environment: PGHOST: 127.0.0.1 @@ -218,7 +218,7 @@ jobs: path: test-artifacts upload-coverage: - docker: + podman: - image: circleci/ruby:2.5.1-stretch-node environment: CC_TEST_REPORTER_ID: c3ff91e23ea0fea718bb62dae0a8a5440dc082d5d2bb508af6b33d0babac479a diff --git a/vendor/github.com/spf13/cobra/.travis.yml b/vendor/github.com/spf13/cobra/.travis.yml index 42d1f57d..b941e8c5 100644 --- a/vendor/github.com/spf13/cobra/.travis.yml +++ b/vendor/github.com/spf13/cobra/.travis.yml @@ -14,7 +14,7 @@ matrix: before_install: - mkdir -p bin - - curl -Lso bin/shellcheck https://github.com/caarlos0/shellcheck-docker/releases/download/v0.4.3/shellcheck + - curl -Lso bin/shellcheck https://github.com/caarlos0/shellcheck-podman/releases/download/v0.4.3/shellcheck - chmod +x bin/shellcheck script: - PATH=$PATH:$PWD/bin go test -v ./... diff --git a/vendor/github.com/spf13/cobra/README.md b/vendor/github.com/spf13/cobra/README.md index 2de98401..9cc46a6b 100644 --- a/vendor/github.com/spf13/cobra/README.md +++ b/vendor/github.com/spf13/cobra/README.md @@ -8,8 +8,8 @@ Many of the most widely used Go projects are built using Cobra including: * [Hugo](http://gohugo.io) * [rkt](https://github.com/coreos/rkt) * [etcd](https://github.com/coreos/etcd) -* [Docker](https://github.com/docker/docker) -* [Docker (distribution)](https://github.com/docker/distribution) +* [Podman](https://podman.io/) +* [Distribution](https://github.com/distribution/distribution) * [OpenShift](https://www.openshift.com/) * [Delve](https://github.com/derekparker/delve) * [GopherJS](http://www.gopherjs.org/) diff --git a/vendor/golang.org/x/sys/plan9/mksyscall.go b/vendor/golang.org/x/sys/plan9/mksyscall.go index a5062c26..e9e7ab4f 100644 --- a/vendor/golang.org/x/sys/plan9/mksyscall.go +++ b/vendor/golang.org/x/sys/plan9/mksyscall.go @@ -101,7 +101,7 @@ func main() { // Check that we are using the Docker-based build system if we should if goos == "linux" { - if os.Getenv("GOLANG_SYS_BUILD") != "docker" { + if os.Getenv("GOLANG_SYS_BUILD") != "podman" { fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n") fmt.Fprintf(os.Stderr, "See README.md\n") os.Exit(1) diff --git a/vendor/golang.org/x/sys/unix/README.md b/vendor/golang.org/x/sys/unix/README.md index 7d3c060e..b911dd11 100644 --- a/vendor/golang.org/x/sys/unix/README.md +++ b/vendor/golang.org/x/sys/unix/README.md @@ -52,7 +52,7 @@ system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will then generate all of the files for all of the GOOS/GOARCH pairs in the new build system. Running `mkall.sh -n` shows the commands that will be run. -Requirements: bash, go, docker +Requirements: bash, go, podman ## Component files @@ -60,7 +60,7 @@ This section describes the various files used in the code generation process. It also contains instructions on how to modify these files to add a new architecture/OS or to add additional syscalls, types, or constants. Note that if you are using the new build system, the scripts/programs cannot be called normally. -They must be called from within the docker container. +They must be called from within the podman container. ### asm files diff --git a/vendor/golang.org/x/sys/unix/linux/Dockerfile b/vendor/golang.org/x/sys/unix/linux/Dockerfile index 12889096..c6ca7a0b 100644 --- a/vendor/golang.org/x/sys/unix/linux/Dockerfile +++ b/vendor/golang.org/x/sys/unix/linux/Dockerfile @@ -68,7 +68,7 @@ RUN apt-get update && apt-get install wget xz-utils -y && mkdir /loong64 && cd / && ln -s /usr/local/cross-tools-loong64/bin/loongarch64-unknown-linux-gnu-gcc /usr/bin/loongarch64-linux-gnu-gcc \ && rm -rf /loong64 -# Let the scripts know they are in the docker environment -ENV GOLANG_SYS_BUILD docker +# Let the scripts know they are in the podman environment +ENV GOLANG_SYS_BUILD podman WORKDIR /build/unix ENTRYPOINT ["go", "run", "linux/mkall.go", "/git/linux", "/git/glibc"] diff --git a/vendor/golang.org/x/sys/unix/linux/mkall.go b/vendor/golang.org/x/sys/unix/linux/mkall.go index ef49c5d7..f5258bad 100644 --- a/vendor/golang.org/x/sys/unix/linux/mkall.go +++ b/vendor/golang.org/x/sys/unix/linux/mkall.go @@ -179,7 +179,7 @@ func main() { } // Check that we are using the new build system if we should - if os.Getenv("GOLANG_SYS_BUILD") != "docker" { + if os.Getenv("GOLANG_SYS_BUILD") != "podman" { fmt.Println("In the new build system, mkall.go should not be called directly.") fmt.Println("See README.md") return diff --git a/vendor/golang.org/x/sys/unix/linux/mksysnum.go b/vendor/golang.org/x/sys/unix/linux/mksysnum.go index ed41ce9a..c80e65e8 100644 --- a/vendor/golang.org/x/sys/unix/linux/mksysnum.go +++ b/vendor/golang.org/x/sys/unix/linux/mksysnum.go @@ -82,7 +82,7 @@ func main() { os.Exit(1) } // Check that we are using the new build system if we should - if os.Getenv("GOLANG_SYS_BUILD") != "docker" { + if os.Getenv("GOLANG_SYS_BUILD") != "podman" { fmt.Fprintf(os.Stderr, "In the new build system, mksysnum should not be called directly.\n") fmt.Fprintf(os.Stderr, "See README.md\n") os.Exit(1) diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index dcef4de6..6656a8d8 100755 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -47,10 +47,10 @@ case "$#" in esac if [[ "$GOOS" = "linux" ]]; then - # Use the Docker-based build system - # Files generated through docker (use $cmd so you can Ctl-C the build or run) - $cmd docker build --tag generate:$GOOS $GOOS - $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && /bin/pwd):/build generate:$GOOS + # Use the Podman-based build system + # Files generated through podman (use $cmd so you can Ctl-C the build or run) + $cmd podman build --tag generate:$GOOS $GOOS + $cmd podman run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && /bin/pwd):/build generate:$GOOS exit fi diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index 2ab44aa6..7d038aaf 100755 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -17,7 +17,7 @@ if test -z "$GOARCH" -o -z "$GOOS"; then fi # Check that we are using the new build system if we should -if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then +if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "podman" ]]; then echo 1>&2 "In the Docker based build system, mkerrors should not be called directly." echo 1>&2 "See README.md" exit 1 diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go index 366b2d48..e7fee22d 100644 --- a/vendor/golang.org/x/sys/unix/mkpost.go +++ b/vendor/golang.org/x/sys/unix/mkpost.go @@ -31,7 +31,7 @@ func main() { } // Check that we are using the Docker-based build system if we should be. if goos == "linux" { - if os.Getenv("GOLANG_SYS_BUILD") != "docker" { + if os.Getenv("GOLANG_SYS_BUILD") != "podman" { os.Stderr.WriteString("In the Docker-based build system, mkpost should not be called directly.\n") os.Stderr.WriteString("See README.md\n") os.Exit(1) diff --git a/vendor/golang.org/x/sys/unix/mksyscall.go b/vendor/golang.org/x/sys/unix/mksyscall.go index e9bf2dea..df8c3e63 100644 --- a/vendor/golang.org/x/sys/unix/mksyscall.go +++ b/vendor/golang.org/x/sys/unix/mksyscall.go @@ -103,7 +103,7 @@ func main() { // Check that we are using the Docker-based build system if we should if goos == "linux" { - if os.Getenv("GOLANG_SYS_BUILD") != "docker" { + if os.Getenv("GOLANG_SYS_BUILD") != "podman" { fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n") fmt.Fprintf(os.Stderr, "See README.md\n") os.Exit(1) diff --git a/vendor/golang.org/x/tools/cmd/tip/Makefile b/vendor/golang.org/x/tools/cmd/tip/Makefile index 5844307b..9e8740f6 100644 --- a/vendor/golang.org/x/tools/cmd/tip/Makefile +++ b/vendor/golang.org/x/tools/cmd/tip/Makefile @@ -4,12 +4,12 @@ VERSION=v1 -docker-prod: Dockerfile - docker build -f Dockerfile --tag=gcr.io/symbolic-datum-552/tip:$(VERSION) . -docker-dev: Dockerfile - docker build -f Dockerfile --tag=gcr.io/go-dashboard-dev/tip:$(VERSION) . +podman-prod: Dockerfile + podman build -f Dockerfile --tag=gcr.io/symbolic-datum-552/tip:$(VERSION) . +podman-dev: Dockerfile + podman build -f Dockerfile --tag=gcr.io/go-dashboard-dev/tip:$(VERSION) . -push-prod: docker-prod - gcloud docker push -- gcr.io/symbolic-datum-552/tip:$(VERSION) -push-dev: docker-dev - gcloud docker push -- gcr.io/go-dashboard-dev/tip:$(VERSION) +push-prod: podman-prod + gcloud podman push -- gcr.io/symbolic-datum-552/tip:$(VERSION) +push-dev: podman-dev + gcloud podman push -- gcr.io/go-dashboard-dev/tip:$(VERSION) diff --git a/vendor/gopkg.in/src-d/go-git.v4/_examples/storage/README.md b/vendor/gopkg.in/src-d/go-git.v4/_examples/storage/README.md index 02b68daf..2b152927 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/_examples/storage/README.md +++ b/vendor/gopkg.in/src-d/go-git.v4/_examples/storage/README.md @@ -19,7 +19,7 @@ Installation What do you need? You need an *aerospike* server. The easiest way to get one for testing is running the official **docker** container provided by Aerospike: ``` -docker run -d -p 3000:3000 --name aerospike aerospike/aerospike-server +podman run -d -p 3000:3000 --name aerospike aerospike/aerospike-server ``` Now, we need the sample code. @@ -102,6 +102,6 @@ The process has read all the commits and all the needed objects from the aerospi If you want to explore the database, you can execute the `aql` tool and run some queries: ```sh -docker run -it aerospike/aerospike-tools aql -h 172.17.0.1 +podman run -it aerospike/aerospike-tools aql -h 172.17.0.1 aql> SELECT * FROM test; ``` diff --git a/vendor/gopkg.in/src-d/go-git.v4/references_test.go b/vendor/gopkg.in/src-d/go-git.v4/references_test.go index e901ec0b..b28fc01b 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/references_test.go +++ b/vendor/gopkg.in/src-d/go-git.v4/references_test.go @@ -4,11 +4,8 @@ import ( "bytes" "fmt" - "github.com/src-d/go-git-fixtures" "gopkg.in/src-d/go-git.v4/plumbing" "gopkg.in/src-d/go-git.v4/plumbing/object" - - . "gopkg.in/check.v1" ) type ReferencesSuite struct { @@ -145,7 +142,7 @@ var referencesTests = [...]struct { {"https://github.com/spinnaker/spinnaker.git", "b32b2aecae2cfca4840dd480f8082da206a538da", "install/__init__.py", []string{ "a24001f6938d425d0e7504bdf5d27fc866a85c3d", }}, - {"https://github.com/spinnaker/spinnaker.git", "b32b2aecae2cfca4840dd480f8082da206a538da", "experimental/docker-compose/docker-compose.yml", []string{ + {"https://github.com/spinnaker/spinnaker.git", "b32b2aecae2cfca4840dd480f8082da206a538da", "experimental/podman-compose/podman-compose.yml", []string{ "fda357835d889595dc39dfebc6181d863cce7d4f", "57c59e7144354a76e1beba69ae2f85db6b1727af", "7682dff881029c722d893a112a64fea6849a0428",