Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fortio for openSUSE:Factory checked in at 2022-04-21 15:42:24 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fortio (Old) and /work/SRC/openSUSE:Factory/.fortio.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fortio" Thu Apr 21 15:42:24 2022 rev:8 rq:971248 version:1.27.0 Changes: -------- --- /work/SRC/openSUSE:Factory/fortio/fortio.changes 2022-04-17 23:51:54.010476434 +0200 +++ /work/SRC/openSUSE:Factory/.fortio.new.1538/fortio.changes 2022-04-21 15:48:39.412316120 +0200 @@ -1,0 +2,6 @@ +Wed Apr 20 05:47:11 UTC 2022 - ka...@b1-systems.de + +- Update to version 1.27.0: + * Multiarch enablement on Dockerfile and Dockerfile.build (#538) + +------------------------------------------------------------------- Old: ---- fortio-1.26.0.tar.gz New: ---- fortio-1.27.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fortio.spec ++++++ --- /var/tmp/diff_new_pack.SPcnkD/_old 2022-04-21 15:48:40.108316863 +0200 +++ /var/tmp/diff_new_pack.SPcnkD/_new 2022-04-21 15:48:40.116316872 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: fortio -Version: 1.26.0 +Version: 1.27.0 Release: 0 Summary: Load testing library, command line tool, advanced echo server and web UI License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.SPcnkD/_old 2022-04-21 15:48:40.152316910 +0200 +++ /var/tmp/diff_new_pack.SPcnkD/_new 2022-04-21 15:48:40.156316914 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/fortio/fortio</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v1.26.0</param> + <param name="revision">v1.27.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> @@ -16,7 +16,7 @@ <param name="compression">gz</param> </service> <service name="go_modules" mode="disabled"> - <param name="archive">fortio-1.26.0.tar.gz</param> + <param name="archive">fortio-1.27.0.tar.gz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.SPcnkD/_old 2022-04-21 15:48:40.180316940 +0200 +++ /var/tmp/diff_new_pack.SPcnkD/_new 2022-04-21 15:48:40.184316944 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/fortio/fortio</param> - <param name="changesrevision">1219538d78b521e348bc2ba6d177049e7993f0a4</param></service></servicedata> + <param name="changesrevision">450fe3dfe6302e1430d8eb00d37b4386f83ffd6d</param></service></servicedata> (No newline at EOF) ++++++ fortio-1.26.0.tar.gz -> fortio-1.27.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/.circleci/config.yml new/fortio-1.27.0/.circleci/config.yml --- old/fortio-1.26.0/.circleci/config.yml 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/.circleci/config.yml 2022-04-18 21:54:08.000000000 +0200 @@ -7,7 +7,7 @@ defaultEnv: &defaultEnv docker: # specify the version - - image: docker.io/fortio/fortio.build:v38 + - image: docker.io/fortio/fortio.build:v39 working_directory: /go/src/fortio.org/fortio jobs: @@ -20,9 +20,12 @@ <<: *defaultEnv steps: - setup_remote_docker: - version: 17.11.0-ce + version: 20.10.12 - checkout - - run: make release-test + - run: | + docker context create release-tests + docker buildx create release-tests --use + make release-test BUILDX_PLATFORMS=linux/amd64 linters: <<: *defaultEnv steps: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/.github/workflows/main.yml new/fortio-1.27.0/.github/workflows/main.yml --- old/fortio-1.26.0/.github/workflows/main.yml 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/.github/workflows/main.yml 2022-04-18 21:54:08.000000000 +0200 @@ -18,6 +18,16 @@ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + + - name: Available platforms + run: echo ${{ steps.buildx.outputs.platforms }} + - name: Log in to Docker Hub uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: @@ -39,6 +49,7 @@ uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc with: context: . + platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x push: true tags: fortio/fortio:${{ steps.build.outputs.VERSION }}, fortio/fortio:latest @@ -52,54 +63,9 @@ release_name: Fortio ${{ steps.build.outputs.VERSION }} draft: true - - name: Upload release artifact 1 - id: upload-release-asset1 - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: release/fortio_${{ steps.build.outputs.VERSION }}.orig.tar.gz - asset_name: fortio_${{ steps.build.outputs.VERSION }}.orig.tar.gz - asset_content_type: application/x-compressed-tar -# Todo find a way to upload all in 1... it's silly to have to do 1 by 1 - - name: Upload release artifact 2 - id: upload-release-asset2 - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: release/fortio-${{ steps.build.outputs.PACKAGE_VERSION }}-1.x86_64.rpm - asset_name: fortio-${{ steps.build.outputs.PACKAGE_VERSION }}-1.x86_64.rpm - asset_content_type: application/x-rpm - - name: Upload release artifact 3 - id: upload-release-asset3 - uses: actions/upload-release-asset@v1 + - name: Upload release artifacts env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: release/fortio-linux_x64-${{ steps.build.outputs.VERSION }}.tgz - asset_name: fortio-linux_x64-${{ steps.build.outputs.VERSION }}.tgz - asset_content_type: application/x-compressed-tar - - name: Upload release artifact 4 - id: upload-release-asset4 - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: release/fortio_${{ steps.build.outputs.VERSION }}_amd64.deb - asset_name: fortio_${{ steps.build.outputs.VERSION }}_amd64.deb - asset_content_type: application/vnd.debian.binary-package - - name: Upload release artifact 5 - id: upload-release-asset5 - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: release/fortio_win_${{ steps.build.outputs.VERSION }}.zip - asset_name: fortio_win_${{ steps.build.outputs.VERSION }}.zip - asset_content_type: application/zip + run: | + tag_name="${GITHUB_REF##*/}" + gh release upload "${tag_name}" release/*.{tgz,zip,rpm,deb,gz} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/Dockerfile new/fortio-1.27.0/Dockerfile --- old/fortio-1.26.0/Dockerfile 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/Dockerfile 2022-04-18 21:54:08.000000000 +0200 @@ -1,14 +1,11 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v38 as build +FROM docker.io/fortio/fortio.build:v39 as build WORKDIR /go/src/fortio.org COPY . fortio # We moved a lot of the logic into the Makefile so it can be reused in brew # but that also couples the 2, this expects to find binaries in the right place etc RUN make -C fortio official-build-version BUILD_DIR=/build OFFICIAL_BIN=../fortio_go_latest.bin -# Check we still build with go 1.8 (and macos does not break) -RUN make -C fortio official-build BUILD_DIR=/build OFFICIAL_BIN=../fortio_go_latest.mac GOOS=darwin GO_BIN=/usr/local/go/bin/go -# Windows release, for now assumes running from fortio directory (static resources in .) -RUN make -C fortio official-build BUILD_DIR=/build LIB_DIR=. OFFICIAL_BIN=../fortio.exe GOOS=windows + # Minimal image with just the binary and certs FROM scratch as release # NOTE: the list of files here, if updated, must be changed in release/Dockerfile.in too diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/Dockerfile.build new/fortio-1.27.0/Dockerfile.build --- old/fortio-1.26.0/Dockerfile.build 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/Dockerfile.build 2022-04-18 21:54:08.000000000 +0200 @@ -1,26 +1,28 @@ # Dependencies and linters for build: -FROM ubuntu:focal +FROM golang:1.17.9 # Need gcc for -race test (and some linters though those work with CGO_ENABLED=0) RUN apt-get -y update && \ apt-get --no-install-recommends -y upgrade && \ - DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -y install ca-certificates curl make git gcc \ - libc6-dev apt-transport-https ssh ruby-dev build-essential rpm gnupg zip netcat + DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends -y install libc6-dev apt-transport-https ssh \ + ruby-dev build-essential rpm gnupg zip netcat + # Install FPM RUN gem install --no-document fpm -# From fortio 1.4 onward we dropped go 1.8 compatibility -RUN curl -f https://dl.google.com/go/go1.17.8.linux-amd64.tar.gz | tar xfz - -C /usr/local -ENV GOPATH /go -RUN mkdir -p $GOPATH/bin -ENV PATH /usr/local/go/bin:$PATH:$GOPATH/bin RUN go version # check it's indeed the version we expect + # golangci-lint -RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $GOPATH/bin +# See https://github.com/golangci/golangci-lint/issues/2673 (and 2374) +# Use 1.44.2 which works on arm while 1.45.2 doesn't... somehow +RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.44.2 RUN golangci-lint version + # Docker: -RUN curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | apt-key add -RUN echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" > /etc/apt/sources.list.d/docker.list -RUN apt-get -y update -RUN apt-get install --no-install-recommends -y docker-ce +RUN set -x; if [ x"$(dpkg --print-architecture)" != x"s390x" ]; then \ + curl -fsSL "https://download.docker.com/linux/debian/gpg" | apt-key add; \ + echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/debian bullseye stable" > /etc/apt/sources.list.d/docker.list && \ + apt-get -y update && apt-get install --no-install-recommends -y docker-ce; \ + fi + WORKDIR /build VOLUME /build COPY .golangci.yml . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/Dockerfile.echosrv new/fortio-1.27.0/Dockerfile.echosrv --- old/fortio-1.26.0/Dockerfile.echosrv 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/Dockerfile.echosrv 2022-04-18 21:54:08.000000000 +0200 @@ -1,5 +1,5 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v38 as build +FROM docker.io/fortio/fortio.build:v39 as build WORKDIR /go/src/fortio.org COPY . fortio RUN make -C fortio official-build-version BUILD_DIR=/build OFFICIAL_TARGET=fortio.org/fortio/echosrv OFFICIAL_BIN=../echosrv.bin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/Dockerfile.fcurl new/fortio-1.27.0/Dockerfile.fcurl --- old/fortio-1.26.0/Dockerfile.fcurl 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/Dockerfile.fcurl 2022-04-18 21:54:08.000000000 +0200 @@ -1,5 +1,5 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v38 as build +FROM docker.io/fortio/fortio.build:v39 as build WORKDIR /go/src/fortio.org COPY . fortio # fcurl should not need vendor/no dependencies diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/Dockerfile.test new/fortio-1.27.0/Dockerfile.test --- old/fortio-1.26.0/Dockerfile.test 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/Dockerfile.test 2022-04-18 21:54:08.000000000 +0200 @@ -1,5 +1,5 @@ # Getting the source tree ready for running tests (sut) -FROM docker.io/fortio/fortio.build:v38 +FROM docker.io/fortio/fortio.build:v39 WORKDIR /go/src/fortio.org COPY . fortio RUN make -C fortio dependencies diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/Makefile new/fortio-1.27.0/Makefile --- old/fortio-1.26.0/Makefile 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/Makefile 2022-04-18 21:54:08.000000000 +0200 @@ -7,7 +7,12 @@ IMAGES=echosrv fcurl # plus the combo image / Dockerfile without ext. DOCKER_PREFIX := docker.io/fortio/fortio -BUILD_IMAGE_TAG := v38 +BUILD_IMAGE_TAG := v39 +BUILDX_PLATFORMS := linux/amd64,linux/arm64,linux/ppc64le,linux/s390x +BUILDX_POSTFIX := +ifeq '$(shell echo $(BUILDX_PLATFORMS) | awk -F "," "{print NF-1}")' '0' + BUILDX_POSTFIX = --load +endif BUILD_IMAGE := $(DOCKER_PREFIX).build:$(BUILD_IMAGE_TAG) TAG:=$(USER)$(shell date +%y%m%d_%H%M%S) @@ -96,12 +101,13 @@ Dockerfile.test Dockerfile.fcurl release/Dockerfile.in Webtest.sh # then run make update-build-image and check the diff, etc... see release/README.md update-build-image: - docker pull ubuntu:focal + docker buildx create --use $(MAKE) docker-push-internal IMAGE=.build TAG=$(BUILD_IMAGE_TAG) +SED:=sed update-build-image-tag: - @echo 'Need to use gnu sed (brew install gnu-sed; PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$$PATH")' - sed --in-place=.bak -e 's!$(DOCKER_PREFIX).build:v..!$(BUILD_IMAGE)!g' $(FILES_WITH_IMAGE) + @echo 'Need to use gnu sed (brew install gnu-sed; make update-build-image-tag SED=gsed)' + $(SED) --in-place=.bak -e 's!$(DOCKER_PREFIX).build:v..!$(BUILD_IMAGE)!g' $(FILES_WITH_IMAGE) docker-version: @echo "### Docker is `which docker`" @@ -109,11 +115,13 @@ docker-internal: dependencies @echo "### Now building $(DOCKER_TAG)" - docker build -f Dockerfile$(IMAGE) -t $(DOCKER_TAG) . + docker buildx build --platform $(BUILDX_PLATFORMS) -f Dockerfile$(IMAGE) -t $(DOCKER_TAG) $(BUILDX_POSTFIX) . -docker-push-internal: docker-internal +docker-push-internal: docker-internal docker-buildx-push + +docker-buildx-push: @echo "### Now pushing $(DOCKER_TAG)" - docker push $(DOCKER_TAG) + docker buildx build --push --platform $(BUILDX_PLATFORMS) -f Dockerfile$(IMAGE) -t $(DOCKER_TAG) . release: dist release/release.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/README.md new/fortio-1.27.0/README.md --- old/fortio-1.26.0/README.md 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/README.md 2022-04-18 21:54:08.000000000 +0200 @@ -32,27 +32,32 @@ ## Installation -1. [Install go](https://golang.org/doc/install) (golang 1.16 or later) -2. `go get fortio.org/fortio` -3. you can now run `fortio` (from your gopath bin/ directory) - -Or use docker, for instance: +We publish a multi architecture docker image (linux/amd64, linux/arm64, linux/ppc64le, linux/s390x) `fortio/fortio` +For instance: ```shell docker run -p 8080:8080 -p 8079:8079 fortio/fortio server & # For the server docker run fortio/fortio load http://www.google.com/ # For a test run ``` -Or download one of the binary distributions, from the [releases](https://github.com/fortio/fortio/releases) assets page or for instance: +The [releases](https://github.com/fortio/fortio/releases) page has binaries for many OS/architecture combinations (see assets). + +You can install from source: + +1. [Install go](https://golang.org/doc/install) (golang 1.16 or later) +2. `go get fortio.org/fortio` +3. you can now run `fortio` (from your gopath bin/ directory) + ```shell -curl -L https://github.com/fortio/fortio/releases/download/v1.26.0/fortio-linux_x64-1.26.0.tgz \ +curl -L https://github.com/fortio/fortio/releases/download/v1.27.0/fortio-linux_amd64-1.27.0.tgz \ | sudo tar -C / -xvzpf - # or the debian package -wget https://github.com/fortio/fortio/releases/download/v1.26.0/fortio_1.26.0_amd64.deb -dpkg -i fortio_1.26.0_amd64.deb +wget https://github.com/fortio/fortio/releases/download/v1.27.0/fortio_1.27.0_amd64.deb +dpkg -i fortio_1.27.0_amd64.deb # or the rpm -rpm -i https://github.com/fortio/fortio/releases/download/v1.26.0/fortio-1.26.0-1.x86_64.rpm +rpm -i https://github.com/fortio/fortio/releases/download/v1.27.0/fortio-1.27.0-1.x86_64.rpm +# and more, see assets in release page ``` On a MacOS you can also install Fortio using [Homebrew](https://brew.sh/): @@ -61,7 +66,7 @@ brew install fortio ``` -On Windows, download https://github.com/fortio/fortio/releases/download/v1.26.0/fortio_win_1.26.0.zip and extract `fortio.exe` to any location, then using the Windows Command Prompt: +On Windows, download https://github.com/fortio/fortio/releases/download/v1.27.0/fortio_win_1.27.0.zip and extract `fortio.exe` to any location, then using the Windows Command Prompt: ``` fortio.exe server ``` @@ -107,7 +112,7 @@ <details> <!-- use release/updateFlags.sh to update this section --> <pre> -???????????? 1.26.0 usage: +???????????? 1.27.0 usage: where command is one of: load (load testing), server (starts ui, http-echo, redirect, proxies, tcp-echo and grpc ping servers), tcp-echo (only the tcp-echo server), report (report only UI server), redirect (only the redirect server), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/Webtest.sh new/fortio-1.27.0/Webtest.sh --- old/fortio-1.26.0/Webtest.sh 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/Webtest.sh 2022-04-18 21:54:08.000000000 +0200 @@ -115,7 +115,7 @@ PPROF_URL="$BASE_URL/debug/pprof/heap?debug=1" $CURL "$PPROF_URL" | grep -i TotalAlloc # should find this in memory profile # creating dummy container to hold a volume for test certs due to remote docker bind mount limitation. -docker create -v $TEST_CERT_VOL --name $DOCKERSECVOLNAME docker.io/fortio/fortio.build:v38 /bin/true # cleaned up by name +docker create -v $TEST_CERT_VOL --name $DOCKERSECVOLNAME docker.io/fortio/fortio.build:v39 /bin/true # cleaned up by name # copying cert files into the certs volume of the dummy container for f in ca.crt server.crt server.key; do docker cp "$PWD/cert-tmp/$f" "$DOCKERSECVOLNAME:$TEST_CERT_VOL/$f"; done # start server in secure grpc mode. uses non-default ports to avoid conflicts with fortio_server container. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/release/Dockerfile.in new/fortio-1.27.0/release/Dockerfile.in --- old/fortio-1.26.0/release/Dockerfile.in 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/release/Dockerfile.in 2022-04-18 21:54:08.000000000 +0200 @@ -1,16 +1,43 @@ # Concatenated after ../Dockerfile to create the tgz -FROM docker.io/fortio/fortio.build:v38 as stage +FROM docker.io/fortio/fortio.build:v39 as stage +ARG archs="amd64 arm64 ppc64le s390x" +ENV archs=${archs} + WORKDIR /stage -COPY --from=release /usr/bin/fortio usr/bin/fortio #COPY --from=release /usr/share/fortio usr/share/fortio COPY docs/fortio.1 usr/share/man/man1/fortio.1 -RUN mkdir /tgz -# Make sure the list here is both minimal and complete -# we could take all of * but that adds system directories to the tar -RUN tar cvf - usr/share/man/man1/fortio.1 usr/bin/fortio | gzip --best > /tgz/fortio-linux_x64-$(./usr/bin/fortio version -s).tgz -COPY --from=build /go/src/fortio.org/fortio.exe usr/share/fortio/ -WORKDIR /stage/usr/share/fortio -RUN zip -9 -r fortio_win_$(/stage/usr/bin/fortio version -s).zip fortio.exe && mv *.zip /tgz + +RUN mkdir -p /tgz usr/bin + +WORKDIR /go/src/fortio.org +COPY . fortio +# Check we still build with go 1.8 (and macos does not break) +RUN make -C fortio official-build BUILD_DIR=/build OFFICIAL_BIN=../fortio_go_latest.mac GOOS=darwin GO_BIN=/usr/local/go/bin/go +# Windows release, for now assumes running from fortio directory (static resources in .) +RUN make -C fortio official-build BUILD_DIR=/build LIB_DIR=. OFFICIAL_BIN=/tmp/fortio.exe GOOS=windows +# Linux per-architecture binaries building +RUN sh -c \ + 'set -ex; for arch in ${archs}; do \ + make -C fortio official-build-version BUILD_DIR=/build GOARCH=${arch} OFFICIAL_BIN=/tmp/fortio_${arch}; \ + done' + +RUN cd fortio && /tmp/fortio_$(go env GOARCH) version -s > /tmp/version + +WORKDIR /stage + +# Make per-architecture .tgz files +RUN sh -c \ + 'set -ex; for arch in ${archs}; do \ + cp /tmp/fortio_${arch} usr/bin/fortio; \ + # Make sure the list here is both minimal and complete \ + # we could take all of * but that adds system directories to the tar \ + tar cvf - usr/share/man/man1/fortio.1 usr/bin/fortio | gzip --best > /tgz/fortio-linux_${arch}-$(cat /tmp/version).tgz; \ + rm -rf usr/bin/fortio; \ + done' + +WORKDIR /tmp +RUN zip -9 -r fortio_win_$(cat /tmp/version).zip fortio.exe && mv *.zip /tgz + WORKDIR /tgz COPY release/ffpm.sh / RUN bash -x /ffpm.sh deb diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/release/ffpm.sh new/fortio-1.27.0/release/ffpm.sh --- old/fortio-1.26.0/release/ffpm.sh 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/release/ffpm.sh 2022-04-18 21:54:08.000000000 +0200 @@ -15,7 +15,11 @@ # # Ran from the release/Dockerfile[.in] to invoke fpm with common arguments # Assumes the layout from the Dockerfiles (/stage source, /tgz destination etc) -fpm -v $(/stage/usr/bin/fortio version -s) -n fortio --license "Apache License, Version 2.0" \ - --category utils --url https://fortio.org/ --maintainer for...@fortio.org \ - --description "Fortio is a load testing library, command line tool, advanced echo server and web UI in go (golang)." \ - -s tar -t $1 /tgz/*.tgz +for f in /tgz/*.tgz; do + arch=${f:18} + arch=${arch/-*/} + fpm -v "$(cat /tmp/version)" -n fortio --license "Apache License, Version 2.0" \ + --category utils --url https://fortio.org/ --maintainer for...@fortio.org \ + --description "Fortio is a load testing library, command line tool, advanced echo server and web UI in go (golang)." \ + -s tar -t "$1" -a "${arch}" "$f" +done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.26.0/release/release.sh new/fortio-1.27.0/release/release.sh --- old/fortio-1.26.0/release/release.sh 2022-04-15 22:29:36.000000000 +0200 +++ new/fortio-1.27.0/release/release.sh 2022-04-18 21:54:08.000000000 +0200 @@ -16,9 +16,7 @@ # To be run by ../Makefile as release/release.sh set -x set -e -# Release tgz Dockerfile is based on the normal docker one -cat Dockerfile release/Dockerfile.in > release/Dockerfile -docker build -f release/Dockerfile -t fortio/fortio:release . +docker build -f release/Dockerfile.in -t fortio/fortio:release . DOCKERID=$(docker create --name fortio_release fortio/fortio:release x) function cleanup { docker rm fortio_release @@ -30,7 +28,9 @@ rmdir release/tgz || true docker cp -a fortio_release:/tgz/ release/tgz # Check the tar balls and zip -tar tvfz release/tgz/*.tgz +for f in release/tgz/*.tgz; do + tar tvfz "$f" +done unzip -l release/tgz/*.zip # then save the results 1 level up mv release/tgz/* release/ ++++++ vendor.tar.gz ++++++