Skip to content

Latest commit

 

History

History
96 lines (73 loc) · 2.46 KB

File metadata and controls

96 lines (73 loc) · 2.46 KB
runpage
required dependencies workdir
version
git
gem
docker
curl
ruby
self

Bashly release checklist

Release verification for Bashly. Run this document with runpage:

BASHLY_SITE_DIR=/path/to/bashly-book \
  runpage release.md version:2.0.0

Baseline

test "$(git branch --show-current)" = master && test -z "$(git status --porcelain)"
grep -Fq "VERSION = '{{ version }}'" lib/bashly/version.rb
gem list --local --exact bashly --installed --version "{{ version }}" >/dev/null

RubyGems

curl -fsS -o /dev/null "https://rubygems.org/gems/bashly/versions/{{ version }}"

Docker

grep -Fq "ENV BASHLY_VERSION={{ version }}" Dockerfile
docker image inspect "dannyben/bashly:{{ version }}" >/dev/null

Git release

git rev-parse --quiet --verify "refs/tags/v{{ version }}" >/dev/null
grep -Fq "v{{ version }}" CHANGELOG.md
curl -fsS -o /dev/null "https://github.com/bashly-framework/bashly/tree/v{{ version }}"

Published release

docker pull "dannyben/bashly:{{ version }}" >/dev/null
location=$(
  curl -fsSI https://github.com/bashly-framework/bashly/releases/latest |
    tr -d '\r' |
    awk 'tolower($1) == "location:" { print $2 }' |
    tail -n 1
)
test "$location" = "https://github.com/bashly-framework/bashly/releases/tag/v{{ version }}"

Documentation

: "${BASHLY_SITE_DIR:?Set BASHLY_SITE_DIR to the local bashly-book checkout}"
test "$(git -C "$BASHLY_SITE_DIR" branch --show-current)" = master &&
  test -z "$(git -C "$BASHLY_SITE_DIR" status --porcelain)"
: "${BASHLY_SITE_DIR:?Set BASHLY_SITE_DIR to the local bashly-book checkout}"
ruby -ryaml -e '
  abort unless YAML.load_file(ARGV[0]).dig("branding", "label") == ARGV[1]
' "$BASHLY_SITE_DIR/retype.yml" "v{{ version }}"
curl -fsS "https://raw.githubusercontent.com/bashly-framework/bashly-book/master/retype.yml" |
  grep -Fq "label: v{{ version }}"