summaryrefslogtreecommitdiffstats
path: root/src/arrow/dev/release/post-04-ruby.sh
blob: edcb54c130c0bf66ba6021da6595f09ab11cb0a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/usr/bin/env bash
# -*- indent-tabs-mode: nil; sh-indentation: 2; sh-basic-offset: 2 -*-
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
set -e
set -o pipefail

SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

if [ "$#" -ne 1 ]; then
  echo "Usage: $0 <version>"
  exit
fi

version=$1
archive_name=apache-arrow-${version}
tar_gz=${archive_name}.tar.gz

echo "NOTE: We should release RubyGems after Homebrew and MSYS2 packages are updated!!!"

echo "Checking Homebrew package..."
homebrew_version=$(
  curl \
    --fail \
    --no-progress-meter \
    https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/apache-arrow-glib.rb | \
    grep url | \
    grep -o "[0-9]*\.[0-9]*\.[0-9]*" | \
    head -n 1)
echo "Homebrew package version: ${homebrew_version}"
if [ "${version}" = "${homebrew_version}" ]; then
  echo "OK!"
else
  echo "Different!"
  exit 1
fi


echo "Checking MSYS2 package..."
msys2_version=$(
  curl \
    --fail \
    --no-progress-meter \
    https://packages.msys2.org/base/mingw-w64-arrow | \
    grep -A 1 ">Version:<" | \
    grep -o "[0-9]*\.[0-9]*\.[0-9]*")
echo "MSYS2 package version: ${msys2_version}"
if [ "${version}" = "${msys2_version}" ]; then
  echo "OK!"
else
  echo "Different!"
  exit 1
fi


rm -f ${tar_gz}
curl \
  --remote-name \
  --fail \
  https://downloads.apache.org/arrow/arrow-${version}/${tar_gz}
rm -rf ${archive_name}
tar xf ${tar_gz}
modules=()
for module in ${archive_name}/ruby/red-*; do
  pushd ${module}
  rake release
  modules+=($(basename ${module}))
  popd
done
rm -rf ${archive_name}
rm -f ${tar_gz}

echo "Success! The released RubyGems are available here:"
for module in ${modules[@]}; do
  echo "  https://rubygems.org/gems/${module}/versions/${version}"
done