• Nicolas Iooss's avatar
    scripts/release: make the script more robust, and release a source repository snapshot · 108c8edd
    Nicolas Iooss authored
    Following Petr Lautrbach's suggestion, release a snapshot of the source
    repository next to the individual archives which constitute a release.
    While at it, make scripts/release more robust:
    - Fix many warnings reported by shellcheck, by quoting strings.
    - Use bash arrays for DIRS and DIRS_NEED_PREFIX
    - Merge DIRS and DIRS_NEED_PREFIX into a single array, in order to
      produce SHA256 digests that are directly in alphabetical order, for
    - Use "set -e" in order to fail as soon as a command fails
    - Change to the top-level directory at the start of the script, in order
      to be able to run it from anywhere.
    - Use `cat $DIR/VERSION` and `git -C $DIR` instead of `cd $i ; cat VERSION`
      in order to prevent unexpected issues from directory change.
    Finally, if version tags already exists, re-use them. This enables using
    this script to re-generate the release archive (and check that they
    really match the git repository). Currently, running scripts/release
    will produce the same archives as the ones published in the 3.2-rc1
    release (with the same SHA256 digests as the ones on the release page,
    https://github.com/SELinuxProject/selinux/wiki/Releases). This helps to
    ensure that the behaviour of the script is still fine.
    Suggested-by: default avatarPetr Lautrbach <plautrba@redhat.com>
    Signed-off-by: default avatarNicolas Iooss <nicolas.iooss@m4x.org>