@@ -4,65 +4,45 @@ set -ex
44
55VERSION=$1
66
7- URL=https://github.com/ruby/ruby.git
8-
97case $VERSION in
108trunk)
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 ;;
1718esac
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-
2920FULLNAME=ruby-${VERSION}
3021OUTPUT=$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 )
3427LAST_REVISION=" ${3} "
3528
3629echo " ce-build-revision:${REVISION} "
3730echo " ce-build-output:${OUTPUT} "
3831
3932if [[ " ${REVISION} " == " ${LAST_REVISION} " ]]; then
40- echo " ce-build-status:SKIPPED"
41- exit
33+ echo " ce-build-status:SKIPPED"
34+ exit
4235fi
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
7454export 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
7757echo " ce-build-status:OK"
0 commit comments