On Sun, Feb 6, 2022 at 9:13 PM Richard W.M. Jones <rjones(a)redhat.com> wrote:
On Sun, Feb 06, 2022 at 07:21:02PM +0200, Nir Soffer wrote:
> Generated the list file when creating the distribution. Since the Go
> tool treat the list file on the proxy server as the source of truth, we
> do the same. The new list file is created by downloading the current
> list file, sorting it, and appending the current version.
>
> Creating a distribution tarball requires now access to
>
download.libguestfs.org.
>
> With this change the distribution tarball can be extract on the server
> without any additional manual process.
>
> Signed-off-by: Nir Soffer <nsoffer(a)redhat.com>
> ---
> golang/make-dist.sh | 16 +++++-----------
> 1 file changed, 5 insertions(+), 11 deletions(-)
>
> diff --git a/golang/make-dist.sh b/golang/make-dist.sh
> index a590e6c6..5fe006ff 100755
> --- a/golang/make-dist.sh
> +++ b/golang/make-dist.sh
> @@ -86,48 +86,42 @@ rm -rf
libguestfs.org
> #
> #
libguestfs.org
> # └── libnbd
> # ├── @latest
> # └── @v
> # ├── list
> # ├── v1.11.4.info
> # ├── v1.11.4.mod
> # └── v1.11.4.zip
> #
> -# We create @latest and @v/*{.info,mod,zip} here.
> -#
> -# The "@v/list" file must be created on the web server after uploading
> -# a new release:
> -#
> -# $ cd
libguestfs.org/libnbd/@v
> -# $ ls -1 v*.info | awk -F.info '{print $1}' > list
> -# $ cat list
> -# v1.11.3
> -# v1.11.4
> -#
> # See
https://golang.org/ref/mod#serving-from-proxy
>
>
module_dir=libguestfs.org/libnbd
> v_dir=$module_dir/@v
>
> mkdir -p $v_dir
>
> # Go wants a string in RFC 3339 format, git strict ISO 8601 format is
> # compatible.
> info="{
> \"Version\": \"$version\",
> \"Time\": \"$(git show -s --format=%cI)\"
> }"
> echo "$info" > $module_dir/@latest
> echo "$info" > $v_dir/$version.info
>
> cp go.mod $v_dir/$version.mod
> mv $version.zip $v_dir
>
> +# Create the list file by amending the curent file on the server.
>
+list_url=https://download.libguestfs.org/libnbd/golang/libguestfs.org/libnbd/@v/list
> +curl --silent --show-error "$list_url" | sort > $v_dir/list
> +grep -q "$version" $v_dir/list || echo "$version" >>
$v_dir/list
> +
> # Create tarball to upload and extract on the webserver. It should be
> # extracted in the directory pointed by the "go-import" meta tag.
> output=$PWD/libnbd-golang-$version.tar.gz
> tar czf $output
libguestfs.org
>
> rm -rf
libguestfs.org
>
> echo output written to $output
Yes this seems a reasonable approach.
ACK
Pushed as 3895a43f3e9f00f1d612d619caf62adb7ace2772
This should be tested with the actual server, so make sure it
will work for the next release.
Can you do a build from current git and upload it to the server?
Nir