Skip to content

Commit 90347bb

Browse files
udaykiritinarpfel
andauthored
support for building ruby 4.0 above releases (#2)
* support for building ruby 4.0 above releases - using tar Signed-off-by: udaykiriti <udaykiriti624@gmail.com> * tarball support for all versions. Signed-off-by: udaykiriti <udaykiriti624@gmail.com> * Update build.sh Co-authored-by: narpfel <narpfel@gmx.de> * Update build.sh Co-authored-by: narpfel <narpfel@gmx.de> * Update build.sh Co-authored-by: narpfel <narpfel@gmx.de> --------- Signed-off-by: udaykiriti <udaykiriti624@gmail.com> Co-authored-by: narpfel <narpfel@gmx.de>
1 parent e55a124 commit 90347bb

1 file changed

Lines changed: 18 additions & 38 deletions

File tree

build/build.sh

Lines changed: 18 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,65 +4,45 @@ set -ex
44

55
VERSION=$1
66

7-
URL=https://github.com/ruby/ruby.git
8-
97
case $VERSION in
108
trunk)
119
VERSION=trunk-$(date +%Y%m%d)
12-
BRANCH=master
10+
TARBALL_URL=https://cache.ruby-lang.org/pub/ruby/snapshot/snapshot-master.tar.gz
11+
SOURCE_DIR=${ROOT}/ruby-master
1312
;;
1413
*)
15-
TAG=v${VERSION//./_}
14+
RUBY_MINOR_VERSION=${VERSION%.*}
15+
TARBALL_URL=https://cache.ruby-lang.org/pub/ruby/${RUBY_MINOR_VERSION}/ruby-${VERSION}.tar.gz
16+
SOURCE_DIR=${ROOT}/ruby-${VERSION}
1617
;;
1718
esac
1819

19-
# use tag name as branch if otherwise unspecified
20-
BRANCH=${BRANCH-$TAG}
21-
22-
# some builds checkout a tag instead of a branch
23-
# these builds have a different prefix for ls-remote
24-
REF=refs/heads/${BRANCH}
25-
if [[ ! -z "${TAG}" ]]; then
26-
REF=refs/tags/${TAG}
27-
fi
28-
2920
FULLNAME=ruby-${VERSION}
3021
OUTPUT=$2/${FULLNAME}.tar.xz
22+
TARBALL_DOWNLOAD=/tmp/ruby-${VERSION}.tar.gz
23+
INSTALL_DIR=/opt/compiler-explorer/${FULLNAME}
3124

3225
# determine build revision
33-
REVISION=$(git ls-remote "${URL}" "${REF}" | cut -f 1)
26+
REVISION=$(curl -sI "${TARBALL_URL}" | grep -i last-modified | sha256sum | cut -d' ' -f1)
3427
LAST_REVISION="${3}"
3528

3629
echo "ce-build-revision:${REVISION}"
3730
echo "ce-build-output:${OUTPUT}"
3831

3932
if [[ "${REVISION}" == "${LAST_REVISION}" ]]; then
40-
echo "ce-build-status:SKIPPED"
41-
exit
33+
echo "ce-build-status:SKIPPED"
34+
exit
4235
fi
4336

44-
BUILD_DIR=${ROOT}/build
45-
STAGING_DIR=/opt/compiler-explorer/${FULLNAME}
46-
rm -rf "${STAGING_DIR}"
47-
mkdir -p "${STAGING_DIR}"
48-
mkdir -p "${BUILD_DIR}"
49-
50-
# Setup ruby checkout
51-
git clone --depth 1 --single-branch -b "${BRANCH}" "${URL}" "${ROOT}/ruby"
52-
53-
# Generate autoconf
54-
cd "${ROOT}/ruby"
55-
if [[ -f "./autogen.sh" ]]; then
56-
./autogen.sh
57-
else
58-
# older ruby doesn't have autogen.sh
59-
autoreconf --install
60-
fi
37+
rm -rf "${INSTALL_DIR}"
38+
mkdir -p "${INSTALL_DIR}"
39+
mkdir -p "${SOURCE_DIR}"
40+
curl -L "${TARBALL_URL}" | tar xzf - -C "${SOURCE_DIR}" --strip-components=1
41+
cd "${SOURCE_DIR}"
6142

6243
# Configure build
63-
cd "${BUILD_DIR}"
64-
../ruby/configure \
65-
--prefix="${STAGING_DIR}" \
44+
./configure \
45+
--prefix="${INSTALL_DIR}" \
6646
--disable-install-doc
6747

6848
# Build and install artifacts
@@ -72,6 +52,6 @@ make install
7252
# Don't try to compress the binaries as they don't like it
7353

7454
export XZ_DEFAULTS="-T 0"
75-
tar Jcf ${OUTPUT} --transform "s,^./,./${FULLNAME}/," -C ${STAGING_DIR} .
55+
tar Jcf "${OUTPUT}" --transform "s,^./,./${FULLNAME}/," -C "${INSTALL_DIR}" .
7656

7757
echo "ce-build-status:OK"

0 commit comments

Comments
 (0)